1 :
login:Penguin :
2006/04/28(金) 23:52:43 ID:OSZilmdD
2 :
login:Penguin :2006/04/28(金) 23:57:01 ID:OSZilmdD
3 :
login:Penguin :2006/04/29(土) 00:00:54 ID:p1PAcw7f
4 :
login:Penguin :2006/04/29(土) 00:08:46 ID:p1PAcw7f
書き込みをもっと多くメモリにため込んでから行いたいのですが パッチ書いてください
前スレ、あっさり落ちたな。
>>5 /proc/sys/vm/dirty_ratio
/proc/sys/vm/dirty_background_ratio
環境によっては違う名前かもしれん。
8 :
login:Penguin :2006/04/30(日) 23:26:29 ID:JwoiwiQT
9 :
8 :2006/04/30(日) 23:29:28 ID:JwoiwiQT
書き忘れたけど、↑は Linux2.6.10 のドキュメント。
見て損した
カーネル2.6でcpufreqをapmオンacpiオフの状態で使うには どうすればいいのでしょうか? make menuconfigでapmオンacpiオフで cpufreqはモジュールで設定して、カーネル再構築したんですけど、 /proc/cpuinfoがないです。
再構築せんでも、acpi=off apm=onで起動すりゃいいのに
カーネル2.6でシリアルコンソールだけを利用しているんだけど、 2.6.15で表示されてたlinuxrcの中のechoが、2.6.16で表示されなくなっちゃった。 それ以外のカーネルdmesgは表示されているのに、なんでlinuxrcだけが???
14 :
11 :2006/05/03(水) 20:30:40 ID:XTeIXu/v
すいません。最後のところ
/proc/cpufreqがないの間違いです。
>>12 カーネル再構築しないとなぜかAPMでハイバネできませんでした。
>>11 speedstep_centrinoだとAPMにすると実質なんも機能しないはず。
frequency tableをACPIから取ってくるという仕様だから。
かなり昔のカーネルにAPMでも動くバージョンがあるんで、それ参考に
自分で直すしかないだろうな。
16 :
11 :2006/05/04(木) 03:07:15 ID:XBXZnCkJ
>>15 さっきうまくいきました。
カーネル組み込みで再構築して、
/sys/devices/system/cpu/cpu0/cpufreqが出てきました。
モジュールの場合は、
modprobe speedstep-centrino
としないといけなかったようです。
ACPIとcpufreqは別々になっているようで、問題ないようです。
>>17 やっぱり開発版と安定版は分けた方がいいんじゃ…
>>17 "If you're a company that employs a kernel maintainer, you don't have an interest
in working on a five-year-old peripheral that no one is selling any more.
I can understand that, but it is a problem as people are still using that hardware.
The presence of that bug affects the whole kernel process, and can hold up
the kernel ― as there are bugs, but no one is fixing them," said Morton.
結論:社畜が悪い
むしろ化石ハード使ってごねてる奴が悪いとしか思えないが?
クリティカルヒットした!!!!
じゃあ氏ねよ
↑お前が死ねよ
逆切れされたのでヘコんできます
そのうち日本語訳でる感じ。
reiserfsのBUGはreiserfs-listかSUSEのBTSに 突っ込まないと直らないと思うけどな。 それか自分でパッチを書くか。
27 :
login:Penguin :2006/05/13(土) 23:16:31 ID:Tx09vRMV
Linux ってソースのクリーンナップとかしないのか? Kernel のソースなのに汚すぎだぞ。
汚れてるのは君の心w
面白くない作業は誰もやりたがらない。
桟のとことかじゃね?ほら、指をつつっと…
33 :
login:Penguin :2006/05/14(日) 23:31:44 ID:5ia35dJ+
ttyはある程度汚いのはしょうがな・・・
36 :
login:Penguin :2006/05/21(日) 00:12:46 ID:aXszcIpZ
NICにTCP/IP checksum offload engine が載っているもの(Intel PRO/1000 MTとか) があり、カーネルソースを読むとそのEtherのデバドラでちゃんとchecksum offload の機能を使っているように見えるのですが、IP層やTCP層のスタックはEtherがoffload 機能を持っていたら、チェックサム計算をしないようになっているのでしょうか? 私がソースを見る限りそうはなっていないように見えたのですが。 せっかくEtherのドライバでoffload機能を実装していても、結局TCP/IPのスタックで Etherドライバがそういう機能を持っているかどうかチェックして、チェックサム計算 をスルーするように改造してあげないといけないのでしょうか?それとも私の認識 違いで、TCP/IPのスタックはすでにちゃんとoffload機能を有効に使っているのでしょうか? 私の読解力ではよくわかりませんでした。誰か詳しい人、教えてください。
CHECKSUM_HWじゃないの?
38 :
俺用メモ :2006/05/26(金) 11:41:23 ID:yayW2S/Q
arpテーブルからエントリが抹消される条件が知りたいです。
Kernel追ってみましたが、初心者ゆえ挫折しました。
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man7/arp.7.html base_reachable_timeが経過すると、そのARPエントリはstaleへ状態遷移。
/proc/net/arpをスクリプトで回しながらダンプして
arpテーブルから対象エントリが無くなるまでを計測してみましたが
ばらつきすぎて不明。
あるARPエントリが状態staleになってから完全抹消されるまでって
どういう処理で実装されてるんでしょうか?
各エントリ毎にタイマ張るはずないと思われるので、
周期的に監視してると思うのですが、その周期と仕組みがわからんとです。
どなたかご教授を。
Kernel2.4
40 :
login:Penguin :2006/06/01(木) 11:46:08 ID:qhHs8EIp
age
kernelのコンパイル時に最大CPU数を指定することができますが、 コンパイル時にその値を大きめにしておいて、ブート時などにCPU数を指定することは可能でしょうか。 可能な場合はどのように指定するのかを教えていただけないでしょうか。
>>41 起動時のカーネルパラメータに "maxcpus=nn" (CPUの最大数指定) を入れればよい。
43 :
41 :2006/06/05(月) 09:32:27 ID:Y3diW3HR
44 :
login:Penguin :2006/06/08(木) 11:20:47 ID:OFkOXniK
カーネルパラメータの一覧ってどこにある?
>>44 $ find /usr/src/linux/ -type f | grep Kconfig | xargs cat | grep ^config
とか。
>>44 カーネルソースの Documentation/kernel-parameters.txt とかはどうなの。
最新じゃないかも知れんけど
あれ、もしかしてカーネルの中だとdoubleって使えない?
一つで十分ですよ
51 :
login:Penguin :2006/06/17(土) 16:03:53 ID:m7kdnSSL
最近、linux2.6.16.20のカーネル読みにチャレンジしだしたんですが、 どこから読むのがいいのか分からないんですが、お勧めはどのあたりですか?
arch/*/boot/
教科書買って、その本にあるバージョンから読むのが一番いいよ。そんなに変わらん。
というか、教科書の目次をHPで見てどういう順に解説しているかを 参考にしてみるのはいかが
55 :
51 :2006/06/17(土) 23:39:24 ID:m7kdnSSL
thnx とりあえず、start_kernel()あたりから見てみます。 あと、Understanding The Linux Kernelを注文しました。2.6に対応してるみたいなので。
56 :
51 :2006/06/17(土) 23:42:27 ID:m7kdnSSL
あ、すいません! 教科書ってどれをさしてらっしゃるのですか?
オライリー本とか
>>57 あれは教科書にはならん。
あたりつける程度にしか使えん。
教科書って何か有名な本の相称じゃなくて?
あ、すごい!
私
>>51 なんですけど、IDがSSLとかSSHとか・・・
昨日今日はセキュアな日々がすごせそうだぁ
>>51 興味のあるところ。
頭から追っかけても初期化部分しかでてこないぞ。
51はID番長
2.6.17 has come!
>>63 うひょーーーー。ほんとに着てる。
でもreiser4のパッチが出てくれないと移行できないよ orz
2.6.17.1とか出たりしないよな?
出るまで待った方がいいんでないかい。
Linux Kernel Development 2nd と Understanding the LINUX KERNEL 3rd が届いた
not your diary
I'm sorry.
今度はDDRかよ…
All your base are belong to us.
english lesson ?
relay fs ってどんなの?
This is a pen.
Pan Yamazaki (1998-2003)
76 :
67 :2006/06/20(火) 22:28:54 ID:7KsdgZdf
やっぱ英語で書かれてると読みやすいな。 変に訳されてると読みにくくてたまらん。いや、コレマジな話。
Understanding the Linux Networkingっておもしろい?
日本語版よりはオモ
昔だと、特定のところに繋がらないとか、 その手の現象はECNが怪しかったけど、 TCP周りで最近更新あったのかな?
82 :
80 :2006/06/22(木) 08:34:05 ID:yy50XfQV
83 :
login:Penguin :2006/06/24(土) 22:25:18 ID:WG4DMXZt
2.6.16.22 が出たね。
GYAOのドキュメンタリーカテゴリで、REVOLUTION OSという ドキュメンタリーやってるよ、9月4日まで見られるそうです 興味ある人は暇なときでも、、、 リーナス、ストールマンなど出演してます
VMSPLIT無くなったのかと思った。 どうやってEMBED有効にするか分からなかったので、 .config書き換えてEMBED有効にしたら VMSPLITがmenuconfigに出てきた。
>>41 に関連することですが、OSが立ち上がった後に見せかけのCPU数を変更することは可能でしょうか?
>>87 CPUのホットプラグが出来るんだから、出来そうな気がする。
>>88 CPUのほっと☆プラグって、Linuxも対応してるの?
つ Documentation/cpu-hotplug.txt
92 :
87 :2006/07/15(土) 00:46:31 ID:70kg74So
>>88-91 有難う。特に
>>91 のデータは最高にわかりやすい説明書で大助かり。
こんなに簡単にCPUをオンオフできるんだね。
ベンチマークテストとかもやりやすくなる。
Linux/Linuxers 最高!
長文すみません。 カーネル2.6.17系 (2.6.17〜2.6.17.4)で、時々ネットワークが停止する症状が出るのですが 同じような症状が出た方っていますか? 現在、Fedora Core 5上でwww.kernel.orgから取得したカーネルソースを再構築して使用して います。NICはオンボードのMarvell Yukon 88E8053で、sky2ドライバで運用しています。 ネットワーク停止時、dmesgや /var/log/messagesで確認しても特にエラーメッセージ等は 記録されていません。localhostへのpingは通りますが他ホストへのpingはdestination unreacheableになります。service network restart等でネットワークを再起動してもNGで、 再起動することで復帰します。 なお、以前に使っていたカーネル (2.6.16.20)では特に問題は起きず安定してネットワークを 使用できていました。現在、2.6.20.24カーネルにて運用しています。 何か情報がありましたら、よろしくお願いします。
94 :
93 :2006/07/15(土) 15:32:24 ID:jcvREUsI
>>93 × 2.6.20.24カーネル
○ 2.6.16.24カーネル
です。誤記すみません。
ちなみに、Fedora Core 5純正カーネル (2.6.17-1.2145_FC5)でも同じ症状になりました。
2.6.17.5に入れ替えたらps系コマンドの出力結果に変化が。
>> 95 > 2.6.17.5に入れ替えたらps系コマンドの出力結果に変化が。 どう変わったの??
綺麗になった
ほんとだ、美しい
さすがにナニだったなので2.6.17.6で直したな。
おいお前ら、一年つけっぱなしだったカーネル2.4鯖のルートディスクが連日の暑さでぶっ壊れたから いま2.6のディストリ(Plamo)をCDからインストールして、カーネル再構築してるんだが、一体全体 make終わるまであとどんだけかかるんだよ!なんか流れるメッセージを見てると、menuconfigで選択しなかった ブツもコンパイルしてるみたいだし、ひょっとしてなんか間違えてます? マシンはPenVの733MHz駆動で、デュアルCPUなんだけど、最初のmakeが終わるまでシングル駆動。 こんなに時間がかかるんなら、ディストリに最初から入ってるカーネルを、そのまま使ったほうが利口みたいだな...
make -j3
どうして2CPUでコンパイルしない? Pentium III 0.73GHzでは、先が長いのは確かだ。他の高速マシンでコンパイルしたら?
PentiumIII 733ならカーネルのコンパイルぐらいすぐ終わるだろ? 15分もかかるまい。
>>104 ディストリ標準設定だと片っ端からモジュールコンパイルするのでえらいことになる。
101はそれなりにカスタムしているような感じだけど。
メモリ量、ディスク速度が終わってる可能性も否定できない。
その世代のマシンでも30分以内に終わるとは思うのだけど・・・
PIII 500MHz SDRAM192MBのノートPCでも20分ぐらいだった。1からmenuconfigした設定だけど
>>101 つ依存関係。
質問です.勉強と音を鳴らせるようになることを目的として, ソースからkernel-2.6.17.6をアップグレードしています. しかし,make gconfig -> (sudo) make -> make modules -> make modules_install -> make install まではうまくいく のですが,/sbin/mkinitrd initrd-2.6.17.6 2.6.17.6で,以下の メッセージが出ます. No module ata_piix found for kernel 2.6.17.6, aborting. ata_piixドライバはIDE,SCSI両方ともgconfigで組み込んだつもりです. 何かヒントなど教えていただけませんか?以下の環境です. Intel 915G Express/Pentium 4 3.2GHz/1024GB RAM/ [HD]Windows:Maxtor 6B200MO 200GB SATA Linux:HITACHI HDS728080PLA380 80GB SATA 何卒ご教授願います
カーネルに組み込んだ、ということなのであれば、 initrdに入れる必要はないような。
>>111 取り敢えずgrubを使い,initrdなしで起動してみたところ,
Kernel Panic : Attempted to kill init と表示されました.
もしかしてモジュールが組み込まれていないんでしょうか?
組込みなの?モジュールなの? なんで自分のカーネルコンフィグを確認しないの? あと、くだ質じゃね?
>>113 組み込みで考えています.カーネルコンフィグの確認については,その
方法がわかりませんでした.また,くだ質ではレスがつかなかったためこっちに
持ってきました.いただいたレスにを見ると自分の不勉強を思い知り,顔から火が
出る思いです.勉強して出直して来ます.スレ汚しで大変申し訳ありませんでした.
>>115 > 何気にGoogleってすごい人が集まってる気がする。
何を今更。
googlinuxマダー?
2.6.17.8 2006-08-07 05:05 2.6.18-rc4 2006-08-07 18:23
2.4.33 キタコレ
Googleはlinux出さないだろうな。GPLを嫌がって。きっとLinux互換のOSSでリリースするだろう。
だったら*BSDでいいんじゃね?
おまえマジ頭いいな
2.4.33.1 キタコレ
kernel-2.6.17.* でIPMI使えている人いますか? SMPマシン(dual core opteron)で使えるのかな?
何故に今頃2.4系カーネルが頻繁に更新されてるのかな?
2.4カーネルのバージョンアップ頻度だと細かい修正がたまっちゃうからなぁ 4つ目のナンバリングは歓迎かと。どれだけの人が使っているのかと言う話は抜きにしても
前任者も、「メンテなんて、やめんてやる!」と叫んだんだろうな
( ゚Д゚ )
そっちみんな
2.4.33.2 キタコレ
このまま4桁目増えて2.4.33.107とかにならないかなぁ・・・
IPアドレスみたいだ。
134 :
login:Penguin :2006/08/26(土) 00:03:13 ID:J6YB10hA
一気に2.6.17.11。
2.6.16.28まで逝ってるぜ。 いつまで保守してくれるのか。
ご存じの方ご教示ください。 ICH8パッチってどのバージョンから本家にマージされたんでしょうか。
これはもうだめかも知れんね
139 :
login:Penguin :2006/08/28(月) 03:22:58 ID:mmG3zD22
HighPoint RocketRAID 2220 用のドライバを組み込んでカーネルをビルドする場合は、 sata_mv ドライバ・モジュールをオフにする必要があることがようやく判明。 2週間近くかかった。
どうせなら、dtraceの方が良いなぁ。。
カーネル最新にアップしたらext3イメージのrawファイルを loopマウントしたら読み込みエラーがでるようになった?
Understanding the Linux Kernel 第三版って出す予定ないのかな
英語版は3rd edition出てるけどね
日本ででてる技術書の本ってだいたい翻訳ものばかりだもんな
148 :
login:Penguin :2006/09/10(日) 10:44:13 ID:ladbRUaW
現在のプロセスのthread_infoを取得したいのですが、 #include <asm/thread_info.h> g++ -O3 -Wall -g -I/usr/src/kernels/2.6.15-1.2054_FC5-smp-i686/include/ main.cpp -c profiler.h: In function ‘void handler(int, siginfo_t*, void*)’: profiler.h:27: error: ‘current_thread_info’ was not declared in this scope profiler.h:27: 警告: unused variable ‘thinfo’ make: *** [main.o] エラー 1 と出てきて current_thread_info が定義されていないとか言われてしまうのですが、 1) インクルードファイルは本当に asm/thread_info.h で良いのか? 2) なぜ current_thraed_info が定義されていないと出るのか? (thread_info.hにはある) 2点教えていただけないでしょうか?
いや、問題はC/C++ではなくLinuxカーネル
-Eで見てみればいいじゃん。 C++が分るなら何が不味いのか理解できるだろ。
152 :
login:Penguin :2006/09/10(日) 12:18:35 ID:ladbRUaW
それ(-E)は見た。その上で聞いている。 Linuxカーネルの開発経験があるわけではないので カーネル周りをいじるときの作法がわからん。
作法もなにもコンパイルすら通せないんじゃ、 言語とコンパイラの知識足りてないだろ。 C++相談室行けよ。
つまらない煽りは止めていただけますか? まじめに相手をして損した
>>152 何か前提からずれていないか?
カーネルを弄ってるわけじゃなくて、ユーザーランドのプログラムを作ってるんだよね?
直接カーネルをいじるわけではなく、 ユーザーランドからスタックの天井の thread_info を取得してその先の stack_struct をいじりたい。 なんとかならんでしょうか?
× stack_struct ○ task_struct
あほか、thread_infoはユーザランドにはねえっつうの
thread_info.h にはこう書いてありましたが、間違えてましたか? もし間違えているなら代案を教えてください。 /* how to get the thread information struct from C */ static inline struct thread_info *current_thread_info(void) { struct thread_info *ti; __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1))); return ti; }
>>159 /dev/kmem 経由で、自由に読み書きすればええやろ。
もちろん自己責任で。
/usr/include/linux/asm/thread_info.h: ... #ifdef __KERNEL__ ... #endif /* __KERNEL__ */ ... これに気付きもしないで、なんで-Eの結果を見たとか煽りをやめろとか でかい口を聞けるのか。
いや #define __KERNEL__ はやってみました それでもダメなので聞いてます カーネル周りのファイルをインクルードするには なにか作法があるのかなと
>>162 だから、そういうことじゃないってば。
構造体定義を取り込むことはできるだろうけど、ユーザーランドとカーネル内部では
そもそもアドレス空間が違うんだから。ユーザーランドからカーネル内部のアドレス
空間を読み書きするには、システムコールかデバイスドライバを経由しないと無理。
目的特化の仕掛けを用意したくなければ、ハイリスクではあるけど160で書いた汎用
デバイスドライバを利用すれば実現できる。
> 構造体定義を取り込むことはできるだろうけど できませんでした。 #define __KERNEL__ 以外にもなにか必要なおまじないはありますか? ユーザーランドだけでいいです。
$gcc --version gcc (GCC) 3.4.3 $cat main.c #include <linux/thread_info.h> int main(){struct thread_info *ti = current_thread_info();} $gcc -c -nostdinc -isystem $(gcc -print-file-name=include) \ -D__KERNEL__ \ -I/usr/src/linux-2.6.18-rc6/include \ -I/usr/src/linux-2.6.18-rc6/include2 \ -include /usr/src/linux-2.6.18-rc6/include/linux/autoconf.h main.c Cなら何もエラーでないんだけど。LinuxのヘッダーがC++のソースファイルからインクルードされること 想定してないだけなんだと思うけど。できないできないってソースもエラーメッセージも 貼らないで一体何がやりたいのか。エラーが出る最小限の部分取り出してC++相談室に行ってくれよ。 うざいからさ。
>>164 つまりさ、君は、自分が分からない、知らないことを、
分かる人、知っている人に聞こうとしているんだよね。
書き込みだけ読むと論理的思考ができてないし、
基本的な知識と知恵が足りなそうだからプログラミングに向いてないよ。
やめたほうがいい。
>
>>164 >つまりさ、君は、自分が分からない、知らないことを、
>分かる人、知っている人に聞こうとしているんだよね。
あたりまえやん。知らないから聞いてるんだよね
あとプログラムの腕前は一流と言ってさしつかえないので
心配しなくて良いです
ゴミ
最近はプログラムのバグではなく コンパイルを通すことすら出来ない人の事を一流と言うの?
一流くらいの自覚のある人は自ら一流って言わないんじゃないかな
自他共に認めるってあるじゃん 自分からはあえて公言しないけど 周りからはできる奴と思われてます
あいたたたたたた・・・
>>172 >>152 >Linuxカーネルの開発経験があるわけではないので
>カーネル周りをいじるときの作法がわからん。
すまんすまん。一流のプログラマなのね。
一流の人には何も言えませんわ。
じゃ頑張ってください。
>>165 ここに答えがかいてあるじゃないかwwwww
僕は一流じゃないから、これが答えだってことに気がつかないことが、できないや。
Linuxカーネルについて詳しく知りたいんですが ここの方はどういう本やwebページで勉強されたんでしょうか? 良書とか推薦して頂けませんか? オライリーの「Linuxカーネル」ぐらいしか見つからない… 予備知識はC++ぐらいです(´・ω・`)
>>176 ソースコードそのものと添付のドキュメントで勉強すればいいじゃないか。
最高の教材だぞ。
>>176 くらいって、オライリーのLinuxカーネルを読んだから言ってるのかな?
この本以上を知りたいのか、この本以前を知りたいのか、どっち?
まあ、カーネルの何を詳しく知りたいのかが問題だけどね。
全部なんて無理だよん。
>>176 Linuxの実装が知りたければ、オライリーの 詳解Linuxカーネル と Linuxデバイスドライバ
を読んどけば間違いない。UNIX USER誌の連載記事 <Linux 2.6 カーネル解読室>の単行
本が今月末に出るらしいから、これも買い。
あと、Linuxの実装に限らない一般教養として、以下も読んどけ。
UNIXカーネルの設計(共立出版)
UNIX4.3BSDの設計と実装(丸善)
UNIXカーネルの魔法(ピアソンエデュケーション)
>>172 こういうイタイ奴ってホントにいるんだな。
今までネタだとばっかり思っていたんだが…
タネンバウムのモダンオペレーティングシステムもおすすめ
>>183 C++相談室に誘導したり、無意味なコードを回答として示したり、
4月1日でもあるまいし(´・ω・`) 。
185 :
176 :2006/09/11(月) 16:28:58 ID:m7FzIkWo
>>スレの皆様 どうもありがとうございます。とても参考になりました。 まだオライリーのLinuxカーネルは読んでいません。これからです 何かわくわくしてきたです(;´Д`)
>>180 「UNIX USER誌の連載記事 <Linux 2.6 カーネル解読室>の単行本が今月末に出るらしい」
出版社とか書籍名とか分かれば詳しく
>>187 そんなことないと思うけど、昨夜そこのHPで新刊とか見てもなかったので
どこから出てきた話なのかなと思いましてね
189 :
180 :2006/09/15(金) 17:30:36 ID:qQWVXJ4U
>>188 ソースはOSM10月号の p.147 <Xen3.0解読室> の前書き。
著者本人のコメントだから信頼性は高いと思われ。
>>189 あそこの編集者、技術的検証は全く取らんので嘘書き放題。
なんて現実もある。
Xen関係でよく見る明らかな間違い ブートパラメータにinit 3
( ゚д゚)ポカーン ↑を書き忘れw
これはまあ、SONYのせいじゃないみたいだね。
で、カーネルソースはどれくらい失われたの?
蒼星のアクエリオン聞きながら 200ゲット
カーネルバグのレポートをあげたいと思うんですが どういう手順でどういうlogをどこに上げればいいとか レポート上げる際の注意点とか みたいなのを解説してるサイトってありませんか?
REPORTING-BUGS
203 :
180 :2006/10/05(木) 10:08:06 ID:cKbfbjRF
単行本鬼馬二
結構高価な感が。大幅加筆・修正されるのか
出版社: ソフトバンククリエイティブ (2006/10/18) イラネ オライリなら買う。
何をパケットしてんだよw
206はカワイソウな人か本当の天災。 ついでに西田さんのGCCプログラミング工房を全国販売してもらいたいものだorz
書店でって意味に決まってるだろうに
今度出るPS3でちょっとしたデバドラを書いてみたくなったんですが、 ブロックデバイスを勉強するのに適した、シンプルなソースって無いですか? PS3はグラフィックメモリを256MB積んでいるので、それの一部を ラムディスク化してみたいなと思ったんですけど、PS3-Linuxが出るまでに 少し時間もかかりそうなので、今のうちに勉強してみようかなと思っています。
>>214 そのものずばりラムディスクのドライバ本体ですね。
もっと簡単なサンプルが欲しかったのですがさすがにないですか。
関数名でぐぐると、読学のススメというサイトがひっかかったので、
そこを参考にしながらなんとか読んでみようかと思います。
お馬さんの本とか
>>216 文字通り骨しかないデバドラ本のサンプルプログラム(ネット配布されてる)、 sbull でしたっけ、
とrd.cとかほかのものを見比べたりすれば理解が早いんじゃないかな。
もうその程度はご存知でしたか
>>217 http://www.amazon.co.jp/gp/product/4873112532 これですか?なかなかいい値段しますね。
>>218 >文字通り骨しかないデバドラ本のサンプルプログラム(ネット配布されてる)、 sbull でしたっけ、
>とrd.cとかほかのものを見比べたりすれば理解が早いんじゃないかな。
すいませんが、そのサンプルプログラムってURLか
もう少し何らかのキーワードわかりますか?
sbullでぐぐるとLinuxとは関係なさそうなページがヒットしました。
>もうその程度はご存知でしたか
Linux自体にもさほど知識は無いので右も左もわからない状態です。
ただ、drivers/ で grep -nIRe ramdisk *を実行してみると、
そのソースがちょうど引っかかった所でした。
よくわからない関数や構造体が多いのでどうやって読み解けばいいのか、
片っ端からgrepしていくしか無いのかなと思っています。
とりあえず簡単にmodule_init/module_exitでprintkするような
サンプルのコンパイルと、insmod/rmmodに成功したような段階です。
>>219 英語OKなら、oreilly.com のオープンブック(open book)コーナーを見てください。
「いい値段」の本の英語版があります。
また、その本の紹介ページのExamplesリンクを辿ると、本に掲載されたサンプルの
ソースを置いたサイトに繋がります。
>>220 ありがとうございます。英語もあまり得意ではありませんが、
なんとか読んでみます。
PDFやサンプルを見ると、sbullというのがありますね。
>>218 さんのやり方で頑張ってみます。ありがとうございました。
1 volume 2TB+ に対応した SCSI, FC, USB, IEEE1394のカードって 何がある?
224 :
login:Penguin :2006/10/15(日) 19:22:11 ID:xAde072s
今年はLinuxカーネルカンファレンスはやらないのだろうか?
225 :
login:Penguin :2006/10/15(日) 19:39:29 ID:tudd7b1r
ext4 ktkr
レイザFSはどなった???wwwww
>>203 表紙写真キタ━━━━━(゚∀゚)━━━━━!!!!
>>203 今日、本屋行ったけど売ってなかった。
密林もまだっぽいし。伸びてる?
>>231 3件回ってなかったからたぶん延期。
目次だけでも見たい。
>>203 にあるじゃん。ページ数までは分からないけど
>>231 Amazon 11/8になってるし… orz
235 :
login:Penguin :2006/10/22(日) 16:28:05 ID:iL1ydxa2
質問です. カーネル内から,ファイルを指定して読み込む方法はありますでしょうか?
>>235 質問の仕方が悪いな。まずは何を目的としてるのか教えれ。
240 :
login:Penguin :2006/10/28(土) 23:06:58 ID:sAkKmqf5
最近のkernel2.4のprepatchって、kernelソースディレクトリの名前を一旦「a」に 変えないとパッチが当たらなくなってる? prepatchを解凍して出てきたパッチを見ると diff --git a/Documentation/Configure.help b/Documentation/Configure.help とかになってるんだが・・・
www
243 :
login:Penguin :2006/10/29(日) 00:36:54 ID:0q0Qi+P8
マジレスする人がいるとは思わなかった。もしくは最高に頭の悪そうな発言をして下さいスレに誘導とか
244 :
240 :2006/10/29(日) 01:14:26 ID:uwckknqj
patchの -pXが何を意味してるか分かってなかった。 これまではa,bの部分がlinux-2.4.33みたいになってたから-p0でパッチを当ててた。 スレ汚しして申し訳ないです。
俺はWindows XPタンに忠を尽くす。 お前達はどうだ?
246 :
login:Penguin :2006/10/30(月) 23:21:43 ID:db3LUnkf
Linuxのカーネルってバージョン間で差異が激しいのは仕様なの?
差異が無いならバージョン上げる意味無い
英数字を全角で打つ香具師は相手しない方が良い
>>245 やっぱりドジっ子のMeタンがいいなぁ。
251 :
login:Penguin :2006/11/03(金) 23:44:44 ID:zf4sSv/V
最近、Linuxのインストール本やサーバ解説の本はやたらと多いが、 Kernelのコンパイルについて解説してある本はメッキリ少なくなったな。
>>251 そんなもん誰でもできるし。
何が知りたいか逆に知りたい。
パッケージ入れておしまい、というrpm系の文化もあるし。
今更、Documentation/* を翻訳しただけの本なんて、必要ないだろう。
254 :
login:Penguin :2006/11/04(土) 00:50:11 ID:Gecghv+H
>>252 >そんなもん誰でもできるし。
ほーぉ、誰でもできるか!
そんなら、貴殿のkernelconfigとkernelのpatchを晒してみてくれ。
カイ・キデン
KernelのコンパイルはLPICの試験項目だから そのへんの資格本に書いてる
257 :
login:Penguin :2006/11/04(土) 07:51:45 ID:pgVdJPUo
>>256 >そのへんの資格本に書いてる
2.2.Xか2.4.Xの解説じゃないかな。
実際に、2.6.18.1をパッチ張って俺流カーネルをコンパイルしてみるとわかるよ。
昔とやりかたが違うなんてことは良くある。
kernelのコンパイルは、まだ簡単なほうで、X11R7.1のコンパイルはかなり難しい、
LInux使っていてもコンパイルできない香具師が多いと思う。
君、書いてよ
パッチ当てた程度で何をいきがってんだか
資格本なんて目的が違うから全然使えませんな
>>259 では、Fedora Core 6の kerner-2.6.18.1-2798.fc6のpatch、何があたってるか
解説してね。
262 :
login:Penguin :2006/11/04(土) 11:35:45 ID:xagG5+ry
kerner
263 :
261 :2006/11/04(土) 11:43:22 ID:xDH1kP7z
訂正 誤 kerner-2.6.18.1-2798.fc6 正 kernel-2.6.18.1-2798.fc6 すまそ。
>>261 .spec を読み解く技術とパッチをあてる技術は
また別物でしょ。
おい、なんか素人が紛れ混んでるぞ。
>>261 面倒だからx86だけ。
*2.6.18.1のpatch
*utrace patch
*AMD Geode対応
*agpgartのi965対応
*i686のcflags 変更
*boot時のinvalid mode IDの出力を削除
*__build_read_lock_constの削除 代わりに__build_write_lockを使用
*save_stack_trace関数の変更
*stracktraceでの未使用関数の削除
*spec内で使いやすくするためにmake noninitconfigでdont_askを追加
*#include <linux/config.h>の削除 rpm build対策?
*Exec-shield機能の追加
*GPGで署名をするmodsign機能の追加
*Tux(http accelerator)の追加
*Xenの追加
*debug情報出力機能追加
*/dev/memのアクセス制限
*/dev/crash(crash memory driver)の追加
*AdvansysのSCSIドライバのpcitableを追加
*iSCSIドライバを2.6.19-rc1相当に更新
*QLogic iSCSIドライバ qla4xxxに対応
*Aic94xx SAS/SATAドライバの更新
*nfsdのportbit機能追加
*IPSec xfrm lablingの対応
*CIPSO(Commercial IP Security Option)機能の追加
*squashfs 3.0の追加
*GFS2の追加
*inode diet(典型的にはinode->i_blksize情報の削除)
*NFS superblock sharing/CacheFSによる高速化
*NFSの64ビットinodeサポート
*ext3のinode count overflow対策
最近はずさんな管理が多いが 世の中にはちゃんと調べる人もいるんだなぁ …ほっとした
○最近はずさんな管理が多いが ×最近はずさんな管理をする人が多いが 語弊があったらスマソ
269 :
login:Penguin :2006/11/14(火) 06:41:22 ID:x34rpId5
SELinuxがある今となっては、capabilitiesっていらない?
Linuxカーネル2.6解読室が本屋に平積まれていたので、ちらと見た。 内容は道案内くらいか?お値段が・・・
grep -r "&& 0x"
273 :
login:Penguin :2006/12/01(金) 09:44:39 ID:wpaWTf0F
linux-2.6.19
今月は特集遅かったな…
いまさらext4利用方法公開って言われても遅すぎだろ。
277 :
login:Penguin :2006/12/01(金) 18:07:12 ID:91huQEIp
ext4のファイルシステムはどうやって作るの? mkfsで作れるの?
ext3で特に不満はないけどな
280 :
login:Penguin :2006/12/01(金) 18:52:41 ID:91huQEIp
>279 たいして不満はないですがシーケンシャルだけでも速くなるのはうれしいです
そんなもん、あれだ いままでの経験上 mkfs.ext4 にきまってるだろ、と読まない俺がいってみる
283 :
login:Penguin :2006/12/14(木) 21:35:59 ID:OngCFZyq
モジュールの質問ってここでOKでしょうか? kernel_threadを使ったせい?なのか、psすると 3635 pts/0 R 0:00 modprobe hoge と残るんですが、これは出ないようには出来ないものなんでしょうか? 勿論 rmmod hoge すると消えるんですけど。
285 :
login:Penguin :2006/12/18(月) 17:48:16 ID:CqDzl5wd
カーネルモジュールからカーネルに「擬似的に」IP パケットを 送り付けたいんだけど、いい方法ないかな? やりたいことを言うと、モジュールで生成したソケット (LISTEN 状態) に 擬似 SYN パケットを送りつけて(Handshake して)そのソケットを 無理やり TCP_CONNECTED の状態に持って行きたい。 netfilter いじればいけると思ってソースを軽く読んでるんだけど、 netfilter って、来たパケットを落としたり書き換えたりするだけで 何も無いところからパケットを生成することはできなかったりする? (読みが浅いだけかも。もうちょっとちゃんと読むか…)
>>285 ACKも投げないとね
とりあえず、そういうときは本当に接続してLANケーブルひっこぬく
287 :
login:Penguin :2006/12/19(火) 14:55:27 ID:CRmuTbew
>> 286 もちろん ACK も投げる。(記述を省略していた) 他のマシンと通信をしているソケットを(FIN を送らずに)一回破壊して、 通信相手に影響なく別のソケットを作り直して、 通信を継続させる、ということをやりたいのね。 (新たに接続したソケットの Seq. No. は無理やり書き換える)
288 :
285 :2006/12/19(火) 16:33:48 ID:CRmuTbew
divert_なんちゃら とかを使えばいいのだろうか。 (e.g. alloc_divert_blk(), divert_frame() とか) よくわからん。参考になるものが少ない…。
>>285 よくわからんけど
lo からコネクション張るんじゃだめ?
>>287 ユーザ空間のプログラムを呼び出して、
raw socket で投げつける。
291 :
285 :2006/12/20(水) 01:41:48 ID:jEZO7VCp
>>289 >>290 あ、それでいいのか。簡単なことに気づかなかった orz
「自分自身ではない IP を名乗る SYN パケット」を送る必要があって、
返ってくる SYN+ACK パケットをキャッチすることと併せて考えていたら
netfilter にこだわってしまった。
ユーザ空間から送って、キャッチだけ netfilter で行えばいいのか。感謝。
292 :
285 :2006/12/20(水) 21:33:26 ID:2S/S2PKO
自分自身(lo)に SYN パケットを送ってもはじかれて (SYN+ACK ではなくなぜか SYN が返ってきて)しまった…。 同じことを他のマシン (eth0 経由) に送ったら ちゃんと SYN+ACK が返ってきた。 lo を使った接続って、対応するソケット構造体が内部に存在しないと 受け付けてくれなかったりするっぽい。 netif_receive_skb() を直に呼び出す方法も考えているのだが、大変そうだ。
やってる事が卒論っぽいな
294 :
login:Penguin :2006/12/20(水) 23:22:53 ID:890WKn2e
ユーザ空間で動くPPPソフトを読んでみたら? 名前忘れたけど日本人が作ったユーザ空間で動くPPPソフトが あったな。kernel-2.0.*頃のソフトだから2.6.*で動くかしらんが。
295 :
285 :2006/12/21(木) 01:14:59 ID:M6sIOSie
>>293 部分的に正解。修論のごく一部の、本質とは関係のないはずのところ。
(しかしこの部分で一番時間を食っている)
>>294 確かにその辺の関連技術を使うのがいいっぽいなあ。
トンネルデバイスを使ってユーザ空間で Handshake だけ確立
→ルーティングテーブルを切り替えて物理ネットワークデバイスで続き
というのがよさそうだ。
ppxpかのう むかし使ってたなぁ
>>294 tap経由なら動くんでないかい。
userlinkはさすがに無理だろうな。
298 :
285 :2006/12/21(木) 13:46:36 ID:M6sIOSie
というか tap を使って同じことをするのは (FreeBSD だけど) やったことがあるのでうまくいくはず…。
299 :
285 :2006/12/22(金) 02:06:30 ID:viH4vQTl
tap 使って動いた。サンクス >> ALL
300 :
login:Penguin :2006/12/23(土) 00:30:22 ID:3YznN4mF
組み込みLINUXのカーネルは、PCLINUXのとどう違うの?
>>301 大文字と小文字が気になりだしたら重傷だな
てか、何とかしろ!
FreeBSD屋は 「Free BSD」 と単語をわけると怒るぞ。
何が違うかって質問にソースを提示したらこれか。 巣に帰れ。
あやちゅう先生ご苦労さまです。
307 :
login:Penguin :2006/12/23(土) 23:00:47 ID:3YznN4mF
XP上で、LINUXカーネル弄って遊んでみたいんだけど、 環境はVMWareとVirtualPCどっちが良い?
cygwinでいいんじゃない?
リアルの友達と遊べよwww
311 :
307 :2006/12/25(月) 00:11:09 ID:a7usFfYy
colinuxいいね。
313 :
login:Penguin :2006/12/29(金) 07:07:15 ID:hUXaGQkB
>>312 既に、仮想化ドライバがデバイスドライバ扱いで入っている<2.6.20-rc*
それより、2.6.20-rc*のFirewire(ieee1394)ドライバがSEGV起こして使いものにならないのはどうにかならないでせうか?
314 :
login:Penguin :2006/12/29(金) 11:12:38 ID:K72+0WHS
>313 2.6.19.1にしたら
315 :
login:Penguin :2007/01/05(金) 09:33:44 ID:39mtLgDd
Linux 2.6.18.のオプションにある Cryptographic API、それと Library routines というのは何でしょうか? OpenSSL を使用する つもりですが、適用すると何らかのメリットを享受できますか?
それはIPSecや暗号化ファイルシステムなどのドライバが使う暗号ライブラリ。 SSLやSSHとは関係ない。
なるほど。あくまでカーネル内部のためだけに 使用されるのですね。ありがとうございました。
318 :
login:Penguin :2007/01/12(金) 19:50:45 ID:yO8f+lHj
kernel2.6のソースをDLしてmake〜 make INSTALL したんですが、/sbin/init ができません。なぜですか? 初心者なものですみませんが教えてください。 よろしくお願いします m(_ _)m
initはカーネルの一部ではないから。
320 :
login:Penguin :2007/01/12(金) 20:10:04 ID:yO8f+lHj
>>319 さん、ありがとうございます。
世話焼けついでに教えてください。
initはどうやって生成すればいいんですか?
カーネルの初期化が終わった後最初に起動されるプロセスの実行ファイル。 起動するだけだったらhello worldでもいいよ、多分w 一般的なシステムじゃsysvinitってのが使われてるけど、 最近は高機能な奴が色々作られてるね。(initng, upstartとか)
そもそもこいつは何をしようとしているのだろう
323 :
login:Penguin :2007/01/12(金) 20:32:53 ID:yO8f+lHj
>>321 さん、ありがとうございました。
え〜と、やりたかったことはFedracore5を使って1CF Linuxを作ってみようかと^^;
H/Dにインストール済みのkernelより新しいver.でmakeして、initだけ古いverを
copyしたら動きませんでした。(kernel 2.6.18-1 → 2.6.18-37)
initもよく知らないで無謀なヤツと思いますよね。すみませんでした。
もっと勉強してきます。ごめんなさいでした。
kill 1
init=/bin/sh
か?
かんじって打ってるんじゃ
ハート様だ
SATAのHDDにシステムが入っている場合、 2.6.18.xから2.6.19.yに移行するにはどうしたらいいのでしょうか。 このバージョンアップによって、SATAがSCSIもどきでなくなったようですが、 カーネルにSATAドライバを組み込んでもブートでルートファイルシステムが見つからない というエラーでパニックになります。 lspciの出力は以下の通りです。 00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 02) 実際に調べているカーネルのバージョンは、2.6.18.6と2.6.19.2です。
BIOSの設定でAHCIにしているならCONFIG_SATA_AHCI IDEにしているならCONFIG_ATA_PIIXで使えるはず 俺はAHCIにして2.6.19.2で使ってるよ lspciの出力は以下の通り 00:1f.2 SATA controller: Intel Corporation SATA Controller AHCI (rev 02)
>>332 両方をYにしているけれど、それが問題なんですかね。AHCIのみをYにして試してみます。
2.6.18.x上でコンパイル・インストールして、起動できましたか?
2.6.20に上げたら、 # iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables: Invalid argument と言われるようになりました。 dmesgには can't load conntrack support for proto=2 と出力されています。 configは2.6.19.2で使用していたものをmake oldconfig(当然2.6.19.2では動いていた) 現在格闘中ですが、何か情報がありましたら教えて下さい。
UDP はコネクションレス方の通信だから、RELATED,ESTABLISHED は使えないと思う。 # iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -i eth0 -p udp -j ACCEPT proto=2 って UDP のことだっけ?
>>335 2.6.20-rcの頃の話だけど、menuconfigで表示される項目がかなり変わって、
IPFilter関連を自分でチェック入れたような気がする。
>>336 > proto=2 って UDP のことだっけ?
つ AF_INET
AF_*, PF_* の値を proto=%dで出してた。わかりにくいね。
339 :
336 :2007/02/06(火) 23:35:29 ID:SD2Ahymz
>>338 d
自分の無学をさらけ出してたわorz
340 :
login:Penguin :2007/02/11(日) 10:23:59 ID:suHu1kDw
詳解Linuxカーネル第3版キタ━━━━(゚∀゚)━━━━ッ!!?
そう言えば
>>203 の解読室買った人ここには居るのかな。評判を全然聞かないもんで
即予約だ!
次の週末くらいに神田か池袋あたりでフラゲできるかな、詳解カーネル第3版
普通オライリーは原書で読むだろ・・・常識的に考えて・・・・
当然原書も持ってるよ
確かに・・ 振り返ってみると、おいらも本は原書も和訳もけっこう両方とも持ってるな。こりゃ失礼した。
Syslet
>>343 今日の夕方新宿の大型書店見たけど、まだ無かった。
洋書の3rd ed.は平積まれていたけど、これを見ると2005/11とあるから変化の激しい2.6.xではもう古いね
slab, slob,....slub!?
353 :
login:Penguin :2007/02/23(金) 07:51:47 ID:jDyCKsjp
仕事帰りに詳解Linuxカーネル買いに行こう
354 :
353 :2007/02/23(金) 19:40:52 ID:UlY7jP0X
おいてなかった・・・ 明日、紀伊国屋にでも行くか
>Adrian Bunkは「2.6.16は、しばらくメンテナンスを続ける。新しいバージョンに >乗り換えるとしたら、2.6.25か2.6.30くらいからだ」と説明しました。 2.6.16にここまで拘るのは何故だろ?
仕事で使ってるからでしょ
>>357 ・SUSEが金を払ってる
・VineProjectが金を払ってる
.....
つか、2.6.15から2.6.20までの変化が凄い。変わりすぎ
361 :
login:Penguin :2007/02/28(水) 22:18:43 ID:1SsetZHG
詳解Linux第三版買った。読み応えありそうだけど、重いorz。 ソース調べるときの辞書代わりかなぁ。
362 :
login:Penguin :2007/03/01(木) 00:28:23 ID:Ofsm6sMc
>>360 WinVistaが頭がおかしいのかと思うほど大胆な仕様変更を行った。
だから多少おいたしても許してもらえると踏んだ。
にょろ〜ん
vgettimeofday()ってどうやって使うの?
vDSOにあるやつなら、libcの方でよろしくやってくれるはずだが。
368 :
login:Penguin :2007/03/04(日) 21:03:44 ID:Ag2s0lD6
age
369 :
login:Penguin :2007/03/05(月) 01:02:15 ID:aLTiBT/a
>>367 情報ありがd。さっそく申し込みました。あと少し空いてるよ。
370 :
login:Penguin :2007/03/05(月) 06:57:39 ID:ryFHyBOz
・・・平日か。休み取れるかな。
RSDL BSDな連中に受けがいいかも。
>>372 akpmよりも、関根さんgoogle行ってたのか、という方が気になった。
374 :
login:Penguin :2007/03/09(金) 21:50:37 ID:dQkn3s52
PS/2キーボードがささってないとリブートしないってどういう可能性? CentOS4の2.6.9でreboot=h、reboot=b試したがどっちもだめ。 FC6の2.6.18はOK(h,b両方)。 シャットダウンで電源OFFはOK。 EPIAのEK10000G。i386/kernel/reboot.cを読んでるのだがこれだという 違いが読めとれない。
PCMCIAについての質問はここでいいかな。 PCMCIAにつながったHDDを cardctl insert すると、 PCMCIAデバイスの電源は入ってdiskがまわりはじめるんだけど、 デバイスの初期化に時間がかかるせいか、 3秒後ぐらいに電源が落ちてしまい、dmesg的には cs: pcmcia_socket1: time out after reset. と言われて結局 no product info available の状態なままなんですね。 で、とりあえずPCMCIA insertのtime outの値を変えてみたいのだが、 どうすればいいですかね。
376 :
375 :2007/03/10(土) 01:26:06 ID:gLhoSUsu
すまんがageさせてもらうよ。よっこらせ。
fedora core 6 とかでカーネル再構築する方法を書いたサイトってありませんか? TL8の後から暫くカーネルを弄ってないので、もうさっぱりです。
>>378 英語なんでアレですが、情報サンクス。
なんだったっけ。昔と違って一般ユーザーのディレクトリ以下にカーネルソースを
展開してどうこう、というあたりから分らなくなってました。
>>379 不要モジュールの削除とスリム化のためですよ。
デスクトップPCじゃなくて、サーバにするから。
っていうか再構築しないで使う人が増えたのでしょうかね…?
特殊なハードウェア以外では必要無いからね。 君も本当に再構築が必要かどうか考え直してみたほうがいい。
>>380 そんなにチマチマ削らなきゃいけないマシンで
サーバ立てて大丈夫?
つーか Fedora でサーバ立てて大丈夫?
いいじゃんぃぃじゃん? 笑って送り出してやろうぜ
>>380 FCというかRedHatの配布カーネルは、
ほぼ全てモジュール化してあるから要らないモジュールは
使用時には組み込まれない。よって再構築は不要。
必要なのは使えないデバイスがある時だけ。
言うだけ無駄。
387 :
374 :2007/03/11(日) 12:47:06 ID:VaaUVNRm
include/asm-i386/machine-default/mach_reboot.hの以下の変更に気づき、 これを2.6.9にマージしたらキーボード抜きで再起動出来た。 static inline void mach_reboot(void) { int i; for (i = 0; i < 100; i++) { <<<<< ここから kb_wait(); udelay(50); outb(0x60, 0x64); /* write Controller Command Byte */ udelay(50); kb_wait(); udelay(50); outb(0x14, 0x60); /* set "System flag" */ udelay(50); <<<<< ここまで追加 kb_wait(); udelay(50); outb(0xfe, 0x64); /* pulse reset low */ udelay(50); } } しかしこのコードを全く通過しないはずのreboot=bでも挙動が違うのが理解出来ん。 出来ればカーネルのリビルドはしたくないのだが。
389 :
login:Penguin :2007/03/11(日) 17:32:24 ID:Jxz6xSqq
390 :
374 :2007/03/11(日) 19:40:33 ID:jnebAS/h
>>389 diffの出力を貼ったら"本文が長過ぎます"と怒られました。
age
お、もう分析結果でたんだ
今日のシンポジウム(昨日の読書会かも)でまさにその件で質問が出て、 あればユーザスペースコードのbad codingが原因だとかすぱっと 言い切られてた。
395 :
login:Penguin :2007/03/14(水) 02:07:05 ID:jacQ1oQj
kernel.orgのトップのペンギンが10周年記念になってるな。
地味だな もっと派手なロゴでも良いのに
カーネルについて詳しくなると、具体的にどのような仕事が行えるように なるのでしょうか?
数が多いのは障害解析やパフォーマンス分析じゃあないかな? どうだろ?よくわからん。
>>403 なるほど、そういった分野があるんですね。
ありがとうございます!!参考にさせてもらいます。
大抵の仕事はカーネルなんか読まないよ 俺が真面目にカーネル読んだのは組み込みの開発してたときくらいだな 教養として自力でコンパイルできる程度には知っといて損はないと思うが カーネル読む仕事はあんまり思いつかんなあ
まぁ直接仕事につながることはあんまりないだろうが いろんなことに興味持って調べるのはいいことだと思うよ。 がんがれ。
その前に病院で見てもらったほうがいいと思うけどね
>>402 カーネルに手を入れちゃうと、本家に取り込んで貰うか、
さもないと自分で永遠にメンテナンスしないといけないから、
かなりめんどうだぜ。
でも、ドライバ周りではたまにあるけどな。
前任者が居ないと全く分からないこともある。
>>405 自分もそう思ってたが、カーネルの挙動が理解出来ないときに(エラーの具体的な理由とか)ちょこちょこっ
とprintkでもはさんでどこを通ってきたか明快にするとユーザースペースの問題が早く解決する様に
なったのでLinuxは便利だなと思った。
>>391 FreeBSDはglibcではなくてlibcだったから回避できていた、ということ?
>>410 リンク先に書いてあるけど、sched_setschedulerで設定している
スケジューリングタイプが影響しててidol時間が増えなかった
から性能が落ちなかったようだ。
またgoogleのmallocライブラリも、別のCPUではスケールせずに
逆に性能が悪くなったともlkmlにポストされてた。
どちらにしても、MySQLのメモリ管理が腐っているのは確からしい。
413 :
login:Penguin :2007/03/18(日) 16:17:27 ID:3K8BAN6R
>>412 行かなくても、google videoで見ればいい。
keywordは、あのグループ名で検索しろ。
英語かよ!!!
ITproが腐ってることが分かった 赤松さんこんな変な関西弁使わない
>>400 いじれるようになれば仕事はそれなりにあるでよ。
どこぞのディストリがそういう人集めとるという噂をききますた。
>>400 カーネルとはまったく関係ないアプリとかを請負できます。
「Linux詳しいんだよね、よろしく」
>>414 Andrew Mortonが日本語しゃべるかよ(w
419 :
400 :2007/03/19(月) 10:09:51 ID:SsfmNppS
みなさん大変参考になる意見ありがとうございます。 最近はJavaが流行っているようだったので、一ヶ月ほどJavaの勉強をして いたのですが、方向転換してさっそくCとアセンブラの勉強からはじめて みようと思います。
Cはともかくアセンブラとはなんというか… 今時感心な若者ですね
まあアセンブラも教養として知っていた方がよろしいのではないかと思いますよ。 linux kernelのふか〜い所に行けば避けて通れないものだし。
プログラミングなどは、若者が圧倒的に有利 TopCoderに名を連ねてるのは、ほとんどが、20代前後の若者ばかり がんばれや
>>421 ふか〜く行かなくてもOopsとか読むときには必須の知識。ユーザー空間でもcoreを解析するとき等に
必須の知識。
x86環境gcc 4.1環境で swab32使いたいんだけど、コンパイルオプションとヘッダってどれいれればいいんだっけ? 忘れてしまって大変困ってる。
>>424 私のPCにはこんなファイルがありますが、これのお話?
/usr/src/linux/include/linux/byteorder/swab.h
>>425 そそ、それそれ
使いたいんだけど、swab()呼ぶと何故かコンパイルエラーでる
もちろん、x86Xeon使ってだから問題ないはずなんだよね
>>426 #define __KERNEL__
どうなっても知らんが。
430 :
login:Penguin :2007/03/25(日) 10:59:01 ID:oCvtz5cG
fedoraベースでKVM実施の人柱情報どっか無い? 英語でもいいんだが意外とニャイ
>>430 まだ良いレビューはないね。
でも、本家にマージされたので、これから一気に増える・・・かも。
Xenと共栄してくれればいいけどね。
しばらく別のディストリに浮気して再びGentooに戻って久々にmake menuconfig したらいつの間にかNTFSの項目がexperimentじゃ無くなってる… NTFSにも安全に書き込み可能になったの?
NTFS writeは安全じゃなかったような?
ntfs-3gで今のところ書き込み失敗等の経験なし。
>>436 それ以前に、リンク先が1月以上も前のできごとなのだが。
最近Linux Kernel Watchも遅れた情報が多いな。 時代がどんどん先へ進んでるせいだろうけど。 変更大杉
まぁ面白いからそれでもいいんだけど 上川さん愛してる
>>436 非同期システムコール機構の登場!
やっとVMSなみになるのか。
>>440 非同期システムコールの完了通知ってどうやって受け取るんすか?
VMSではどうやっていたんだっけ。
コールバックルーチンを定義したのだっけかな。
442 :
440 :2007/03/28(水) 09:59:11 ID:Ipgoo+W8
>>441 3通り。
1. イベント・フラグがセットされる ($WAITEFとかで待つ)
2. I/O status blockの完了ステータスがセットされる
(あんまり使った覚えないな。ポーリングするのかな?)
3. AST(Asynchronous System TRAP)が呼ばれる。
>>442 ASTっていうと別のものが頭に浮かぶな。
PowerPremiumでつか
>>445 callback(...) {
longjmp(buf, 1);
}
...
somefunc(...) {
...
if (setjmp(buf) == 0)
invoke_async_call(callback);
...非同期メソッドが返った後に実行する部分...
}
とするとソース上はシーケンシャルに処理を書ける・・・かも?(ライブラリ次第)
AST OS屋さん:アンドリュー・S・タネンバウム コンパイラ屋さん:抽象構文木
>>447 Linux(Linus)的にはタネンバウム先生との喧嘩だろう。
システムコールをフックした先でファイル操作ってどうにかしてできないもんですかね。 具体的には特定状況下でディスク上にログを書き出したいんですけど。 カーネル空間内でsys_open呼び出しても意味ないですし困っております。 何かいい方法がある方ご教授ください。
>>450 ふつうにprintk → klogd → syslogdじゃダメなんですか?
ど〜しても自力でファイル開きたければ、filp_openするとか。
452 :
450 :2007/04/05(木) 00:35:50 ID:fcY4jQfS
>>451 出来ればそのログだけ単独で書き出したいんです。
filp_openですか。ファイル構造体取得できればどうにかなりそうですね。
書き込みモードで取得できるかが肝ですが、頑張ってみます。
netlink か何かで専用のプロセスに投げる。 簡単かどうかは知らないけど。
”システムコールをフック”ってそのうち出来なくなるような気がするけど...
テーブル書き換えはもう出来なくなってたような気がするけど、 Kprobesとかでフックしてるんでは?
456 :
login:Penguin :2007/04/14(土) 09:50:47 ID:Kd8gEwli
カーネル=OSですか?
階層構造では、↓のようになると思うんですが、
OSとカーネルの違いがわかりません。
どう違うのでしょうか?
**************************************
アプリケーション
**************************************
ミドルウェア
**************************************
OS
**************************************
カーネル
**************************************
デバイスドライバ
**************************************
ハードウェア
**************************************
↓では、カーネルとは、カーネル型リアルタイムOS、汎用型OSというように
OSの種類というだけのようです。
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20050804/165882/?ST=ittrend
今1秒間に600MB/secでディスクに書き込みやってるんだけど writeするとメモリの使用量がはんぱなく増えていくんだけど解決策ないですか? メモリの総容量 32GB OSその他諸々の使用容量 300MBぐらい 最初のメモリの空き 31.7Gぐらい そんでwriteしてると10秒毎にメモリが60MBぐらいずつ増えていって、pdflush間に合ってないし freeがどんどん減っていって30分もしないで30GBぐらい使い果たしてmallocすら取れなくなります。Windowsで同じ事しても全然平気なんだけどなんでLinuxってこんな簡単な事もできないの?
笑っておままごとの人はすぐ、泣きがはいるの?
>>458 Direct I/O
raw device
大規模なシステムのようだが、素人が作ってて大丈夫なのか・・・?
>>458 mallocすら取れなくなるってのは異常だから、なんとかした方がいいな。
バグレポートした方がいいと思う。
ってかこういう時用のチューニングって何かないっけ?
思い当たらんのだけど
>>460 誰にでも初めてはあるから当人的にはいいんじゃね?
もっとも自社内に解決できる人員がいないその会社は心配だが。
>>460 直接メールでLinusにraw deviceは推奨しないし使うのは馬鹿げているって言われたから使わない方がいいと思うのですがどうなんでしょうか?
後、open時にO_DIRECと入れて書き込むのは512の倍数に揃えて書き込まないといけないようです。そのため端数出たときに極端に処理速度が落ちてボトルネックになる場合があって困ってます。
O_DIRECTを使った効率的なサンプルなんかはあるのでしょうか?
ちょwwwww
ベラボーなファイル書き込み速度だけど、いったい何に使うんだか気になる。 商用のDB製品じゃないよなあ。 ハイビジョンの映像をリアルタイムに非圧縮で流し込んでもそこまで行かないよなあ。 なんだろ。
>直接メールでLinusに...どうなんでしょうか? すげーな。
て言うかそらHDDへの書き込みなんて間に合わないんだから固まるかメモリなくなるか、どっちかだな。 リアルタイムカーネルならメモリが亡くなる方がはやそうだ。
>>467 FCをいくつも接続して同時並列に書き込んでるような構成を
勝手に想定してたんだが、違うかな。
>>468 そうだろうね。ファイルシステムもカーネルのバージョンも
システムの構成も秘密みたいだから想像で書くとすると、
ファイルシステムにXFSを使っててジャーナルログが
スワップアウト出来ないメモリをつかんでで、それが
どんどんと溜ってるからmallocできなくなるんと
違うかな。それかカーネルのメモリーリークのあるバージョン
を使っているとか。
あとは dirty_background_ratio を調整するとかあるけど
切り分けのできてない
>>458 にはさっぱりだろうな。
業者呼べよ。
syncして /proc/sys/vm/drop_cachesをクリアしてみたんですけど マシン今全部とまっちゃいました。困りました....
うーむ、O_DIRECT難しいです。マシン25台止まってしまって焦った。 休みでよかったw
マシン復旧シマスター またまた質問なんですけどO_DIRECTでデータを書き出す場合 char *data = (char *)malloc(512* 1024); posix_memalign( (void **)&data, 512, 512*1024); とりあえずこんな形で確保してその後writeすればいいみたいだけど 毎回そんな都合良く倍数ちょうどで書き出せるわけもなく、あまりが出た場合どうすればいいのですか?色々調べてみたのですが、Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。としか記述されていなくて困ってます。 端数でたらどないせっちゅうのか教えてください。
そしてスレの先にはさりげなくグサッと刺すコメントが: > If these issues aren't fixed, you're going to stuck with the same > kind of creeping elitism that has gradually killed the FreeBSD > project and other BSDs. 勝手に殺すなー(ウワワァン
477 :
login:Penguin :2007/04/18(水) 23:35:59 ID:luJV3V3d
----------------------- mm_segment_t fs; : fs = get_fs(); set_fs(KERNEL_DS); : [命令] : set_fs(fs); ----------------------- set_fs()、set_fs()って何のために使うの? どういう[命令]の時に必要なの? わかる人教えて。
>>477 g新部氏のblogに解説があった希ガス
479 :
login:Penguin :2007/04/18(水) 23:52:01 ID:luJV3V3d
481 :
login:Penguin :2007/04/19(木) 00:29:35 ID:17XiKx+z
>>480 そこも読んだけど、結局sock_sendmsg()がset_fs(KERNEL_DS)を必要とする関数であることはどうやって判断するの?
「どういう[命令]の時に必要なの?」かが結局わからない。
メールで聞いてみたら
483 :
login:Penguin :2007/04/19(木) 00:34:15 ID:17XiKx+z
だれに?
g新部さんに。
485 :
login:Penguin :2007/04/19(木) 00:40:03 ID:17XiKx+z
答えてくれるかな。
じゃ、LKMLにヨロ
487 :
login:Penguin :2007/04/19(木) 00:49:43 ID:17XiKx+z
えー、ここで答えてよ。
ま、それはいいとして。
http://hira.main.jp/wiki/pukiwiki.php?put_user ()%2Flinux2.6
に
* Context: User context only. This function may sleep.
ってかいてあるけど、
ユーザアプリからioctl()でカーネルモジュールを呼び出したときも「User context」なの?
コンテキストには、ユーザコンテキストと割り込みコンテキストがあるという認識で正しい?
>>487 ITRONじゃねーんだからその名前はなかろう。
ここで言う所のコンテキストはメモリ空間という意味ですかねえ。
490 :
login:Penguin :2007/04/19(木) 20:46:30 ID:x+OTiJML
>>489 え、どういう意味?LinuxでもITRONでもコンテキストは実行コンテキストのことでしょ?
それはともかく、
コンテキストには、ユーザコンテキストと割り込みコンテキストがあるという認識で正しい?他にもある?
492 :
login:Penguin :2007/04/19(木) 22:15:02 ID:x+OTiJML
493 :
login:Penguin :2007/04/20(金) 10:59:28 ID:/xbU1Fxb
494 :
login:Penguin :2007/04/20(金) 23:42:59 ID:qvG9BAN7
オブテロンで8CPU SMPにするとカーネルが起動途中で飛ぶのだけど、なぜでしょうか? ログは当然拾えませんが、どうも5つめのコアを認識した瞬間に飛ぶようなのです。 同じコンフィグでもCPU数だけ4に押さえると正常起動します。 カーネルバージョンはいろいろ試しましたがどれでも症状は同じでした。 よろしくお願いします。
>>494 Andiに電話すればよくね?この時間仕事してるはずー
>>494 | カーネルバージョンはいろいろ試しましたがどれでも症状は同じでした。
もっと色々試したら? ぐらいしかアドバイスできないな。
とりあえずディス鳥に報告したら? それともヴぁにらカーネル?
まさかCPU最大数4にコンフィグして作ったカーネルとかじゃないでしょうねw
Opteron dual core 4CPU のとき似たようなことがあったと聞きました。 直接さわっていないので詳細はわからないのですが、OpenSuSE はだめで、 SuSE Enterprise Linux なら OK でした。いまはそのまま SuSE Enterprise Linux で稼働中です。
それでは、マザーボードに載ってるチップセットやBIOSの制限ではないみたいだな。
andiにbigironカーネル入れろとか言われなかったっけ? なんか機嫌わりーぞ?
>>500 あ、DualCore 4CPUです。
MAX_CPU_NR を8以上にする必要があるのですが、5以上を指定すると飛びます。
ただ、GentooのインストーラCDはなぜか8CPUがすべて認識されているので
できないはずはないのですが・・・
もうちょっとがんばってみます。
>499に1票
はい次の方どうぞー。
>>499 , 504
じゃなくて、最大CPU数を4にすれば起動します。
同じ設定で最大CPU数を8にすると5つ目のCPUを認識した瞬間(のように見える)再起動するのです。
ほんとに瞬間的なので、表示されているログをきちんと見ることもできません。
最大CPU4のときの認識の様子は次のとおりです。
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x02] enabled)
Processor #2 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
Processor #3 15:1 APIC version 16
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x04] enabled)
Processor #4 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x05] enabled)
Processor #5 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.
ACPI: LAPIC (acpi_id[0x07] lapic_id[0x06] enabled)
Processor #6 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.
ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] enabled)
Processor #7 15:1 APIC version 16
WARNING: NR_CPUS limit of 4 reached. Processor ignored.
アチャ
過ぎたマシンだということだな。
opteron 8 core 持ってるなんて、動かしたらさぞやファンの音が 大きくて、夜は眠れないだろうに。
>>509 電源は1200Wだし、ファンは6基就いているので、確かに凄まじい音です。
しかし家ではないので、大丈夫です。
>>508 そういうことですね・・面独裁のでインストールCDのカーネルそのままコピーしようかなあ・・
まさかNR_CPUSの意味を調べていないとかじゃないでしょうねw
NR_CPUSってSMP時の最大CPU数(総コア数)でしょ。 こう書いてありますよ。 CONFIG_NR_CPUS: │ │ │ │ This allows you to specify the maximum number of CPUs which this │ │ kernel will support. Current maximum is 255 CPUs due to │ │ APIC addressing limits. Less depending on the hardware. │ │ │ │ This is purely to save memory - each supported CPU requires │ │ memory in the static kernel configuration. │ │
バカ発見(藁
515 :
login:Penguin :2007/04/23(月) 23:40:41 ID:TqECVpvs
516 :
login:Penguin :2007/04/25(水) 09:53:24 ID:NL98Ha60
LKMLでは相変わらず「俺のほうがおまえのよりデカイ」議論が延々続いているようですが それはさておき、各種デバイス(USBメモリ等含む)のLINUXドライバ開発を 1600人あまりの精鋭プラス予備軍のカーネル開発者たちが無償で請け負うとの案内が出ていました。 必要な情報は製品の外部仕様と挙動だそうです。 開発されたドライバは公開されるので、製品に「LINUX対応」と銘打つことができるそうです。 周辺・関連機器メーカーの方は検討してみてはいかがでしょうか。 連絡先アドレスは……あとで調べてレスします。
おいおい、いつの話題だよ。
遅れてきたルーキー
522 :
login:Penguin :2007/04/25(水) 22:41:50 ID:NL98Ha60
ハーフライフ一週間のとこに出てたので新しいかと思っていたら 一月の記事でしたOrz
>>522 だから、いつも言ってるだろう!
おまえは、頭でっかちすぎる。
524 :
login:Penguin :2007/04/26(木) 09:52:33 ID:+Has5Xzx
いわれてたっけ●rz
STR,STD... kdump並のウルトラCが必要なのかな。
どっちかてーとkexecじゃないすかねえ。 APMならBIOSに丸投げできたけど、ACPIはそういうわけにいかんからのう。
527 :
login:Penguin :2007/04/27(金) 21:53:32 ID:8003YhUG
ちょっと質問なんですがinotifyを利用しようとちょこちょこっとサンプルを書いてみたのですが、 動作仕様がどうにも理解に苦しみます。下のように、ループでreadしてブロッキングすると、最初の一回だけはreadするのですが、2回目以降無反応になってしまいます。 /* size of the event structure, not counting name */ #define EVENT_SIZE (sizeof (struct inotify_event)) /* reasonable guess as to size of 1024 events */ #define BUF_LEN (1024 * (EVENT_SIZE + 16) char buf[BUF_LEN]; int len, i = 0; int fd = inotify_init(); int wd = inotify_add_watch(fd, "/usr/local/hoge", IN_ACCESS | IN_MODIFY); while(1){ len = read (fd, buf, BUF_LEN); }
>>527 とりあえずすべてのシステムコールで返り値チェックしてerrnoをしらべろ
そもそも /usr/local/hoge はファイル?ディレクトリ?
/usr/local/hoge にどんなアクセスをした?
こういうファイルに
こんなアクセスをしたら
こうなると思ったけど
こんな結果になった
くらいの情報は必要
530 :
login:Penguin :2007/04/29(日) 21:04:08 ID:pBG0iRqZ
>>529 それは解かるのですが、
while(1){
read(...)
}
としたときになんらかのアクションがあると上記のコードでは、
1.リードでブロッキング
2.イベントが発生
3.ブロッキングしていたreadからinofify_event構造隊のデータが返されます。
4.読めた情報を適切に処理します。
5.1へ戻る
流れとしては上記のようになると思います。問題となるのは初回の動作とn(n>=2)の時で挙動が違います。
・初回は、イベントが発生するとそのまま2以降のシーケンスに流れていきます。
・2回目以降はイベント発生してもずっとブロッキングした状態になります。つまりイベントを関知できていないということです。
それでどうしたらいいもんかなぁと思ってます。
532 :
login:Penguin :2007/04/29(日) 22:32:30 ID:pBG0iRqZ
>>531 どんなファイルでもなるからやってみろよボケ
さっさとやれ。プログラム書いて動かせよ?しらねーなら
すいませんって言えよボケ
なんかひどい言われようだが… ==== program #include <stdio.h> #include <sys/inotify.h> int main(void) { /* size of the event structure, not counting name */ #define EVENT_SIZE sizeof(struct inotify_event) /* reasonable guess as to size of 1024 events */ #define BUF_LEN (1024 * (EVENT_SIZE + 16)) char buf[BUF_LEN]; int len, i = 0; int fd = inotify_init(); printf("fd=%d.\n", fd);
int wd = inotify_add_watch(fd, "/tmp/foo", IN_ACCESS | IN_MODIFY); printf("wd=%d.\n", wd); while (1) { struct inotify_event *ev; len = read(fd, buf, BUF_LEN); printf("len=%d.\n", len); ev = (struct inotify_event *) buf; printf("%d, %08x, %08x, %d, %s\n", ev->wd, ev->mask, ev->cookie, ev->len, ev->name); } return 0; }
====片方の端末 % cc -o test test.c % ./test fd=3. wd=1. len=16. 1, 00000002, 00000000, 0, len=16. 1, 00000002, 00000000, 0, ====もう片方の端末 % echo > /tmp/foo % echo > /tmp/foo ==== 私のところでは問題ない。 linux kernel 2.6.21.1 glibc 2.5
536 :
login:Penguin :2007/04/30(月) 00:17:45 ID:XIwj/Z1t
IN_MODIFY入れるとなんか変だな...
537 :
login:Penguin :2007/04/30(月) 11:46:20 ID:mlJ1TH1o
541 :
login:Penguin :2007/04/30(月) 12:56:29 ID:XIwj/Z1t
ubuntu7.04だとまともに動作しないらしい...
FedoraCore2(i386)、FedoraCore5(x86_64)でも動かん。ダメポ
ARM/Debian Etch (2.6.15.4) MIPS/Debian Etch (2.6.17.13) x86_64/RedHat EL4 (2.6.18) x86/Gentoo (2.6.21) で動作確認してるよ。 カーネルで inotify support の組み込み忘れてない?
>>542 のどっちも
% grep -i inotify .config
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
(´・ω・`)
FC5(i686)でも動かない。 CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y になってるけど。
DynTickは急激に負荷がかかるとだめぽだな。 まるで2.4系に退化したみたいだ。
548 :
login:Penguin :2007/04/30(月) 21:20:31 ID:XIwj/Z1t
ubuntuが腐っているようですね。どうもお騒がせしました。 一度目はどんなファイル開いてもうまく行くのですが。その後2度目以降は 無反応になってしまうようです。 FedoraとGentooで試したら問題なかったです。どうもすいませんでした。
すいませんって言 ったな
550 :
login:Penguin :2007/05/01(火) 04:35:25 ID:g0swsIWn
UbuntuとFCの両方ともだめなのか? もしそうなら何でそうなってるんだろうね?
552 :
login:Penguin :2007/05/01(火) 23:18:23 ID:mq8aRVBi
ubuntuがダメだFCはうまく行くときもある。よくわからん。 調査中
553 :
login:Penguin :2007/05/08(火) 10:58:27 ID:XKFA94h5
バニラとmmカーネルの関係ってどんな? mmのが先行してると思っていが いまはバージョン番号が同じでmmはRCになってるので逆転したの?
アッシュとナタリアの関係とおなじかんじ
555 :
login:Penguin :2007/05/08(火) 23:03:30 ID:tKtnVwyW
ねね、ユーザの行動完全に監視できるようなモジュールとかないですかね? しかもrootkit的に隠れて監視しちゃう系のやつないですかね?
557 :
login:Penguin :2007/05/08(火) 23:38:29 ID:tKtnVwyW
>>556 auditdすげー遅くないですか?1秒間にsyscall 1万回ぐらい出したぐらいで
ハングしたかと勘違いする程遅くなります。使いものになりそうもないのですが...
559 :
login:Penguin :2007/05/09(水) 07:38:44 ID:JBFllK/7
良い使い方は?
userファイルの中に何もないんですが、 どうすれば見れるようになりますか?
くだ質へ逝け
Debianスレで質問をしたのですが、こちらに誘導されてきました。 自分で色々試してみたのですが、どうしても解決できないので、分かる方がいましたらアドバイスお願いします。 Debian etchをインストールしたCore 2 Duo T5500マシーンでacpi-cpufreqとcpufreq-ondemandモジュールをロードして、 cpufreq-setコマンドでそれぞれのコアのgovonerをondemandにすると下記のエラーが頻繁に出るようになります。 kernel: rateup[24408]: segfault at 0000000000000000 rip 0000000000000000 rsp 00007fff36e84320 error 14 あとXも不安定になり、Xが勝手に再起動します。 試してみた事は以下の通りです。 M/B(Asus N4L-VM DH)のBIOSを最新にする。 kernel.orgから2.6.21.1を取ってきてインストール。 ondemandの代わりにpowersaveを使う。
564 :
login:Penguin :2007/05/10(木) 07:02:47 ID:0+0Fk0Ga
状況がさっぱりわからないが cpufreqを使うのをやめたら?
>>564 ありがとうございます。cpufreqを使わなければ何も問題は起きません。
ただPCがアイドル状態の時の消費電力をできるだけ落とすためにCPUの周波数を最低にしたいんです。
cpufreqの他に同じような機能を持つものがあるんでしょうか?
566 :
login:Penguin :2007/05/10(木) 22:46:42 ID:BLWHqLav
プロセス間で共有メモリ使う時一般的にLinux回りだとPOSIXとSystemVどっちが高速? また、POSIXのMUXTEXとSsystemVのセマフォどっちが高速(Mutexはオプション付けて)
567 :
login:Penguin :2007/05/11(金) 09:14:27 ID:DFDvgY5e
>>565 以前は問題があったようだけど最近は報告されていないようなので、ほかのモジュールとの相性の問題かも。
今のバージョンのカーネルでは、タイミング制御の仕組みの大幅変更を行なったようなので、不整合を起こしているモジュールがあっても不思議はない。
CPU速度をどうしても落としたいというのなら他の方法はないと思う。
ただ、アイドル時の消費電力は比較的少ないので、ファン回転数や画面のスタンバイだけでもそこそこ効果あるでしょう。
>>567 分かりました。ありがとうございます。
experimentalなモジュールを色々使ってるのでしょうがないのかもしれません。
experimentalwwwwww
570 :
login:Penguin :2007/05/12(土) 03:49:04 ID:TnK7ZUzi
ハングしているシステムをSysRqのタスクリストで解析しょうと試みているのですが、 プロセスのスタックの読み方が解りません。 SysRqの出力はだいたい0xf7******を 指し示してるのですが、gdbで見るとコードは0xb7******というところにあるので 一致しません。 ちなみにx86です。
571 :
570 :2007/05/12(土) 04:21:06 ID:TnK7ZUzi
>>570 あり、思いっきり勘違いしてたかな。これってスタックフレームの頭のアドレスを垂れ流してる
だけだから、コール情報なんて全然含まれてないような。 何の役にも立たないような...
573 :
login:Penguin :2007/05/14(月) 16:16:21 ID:/FwcnY38
起動しないカーネルの、起動しない理由を調べる方法ってありますか? 具体的にはNR_CPUSが4以下なら正常動作なパラメータセットで、NR_CPUSを8に増やすと起動しなくなるので、原因を探りたいのです。
またおまえか。 dmesgは何といってるのかね。 ちゃんとコンパイルしたカーネルを使っているか。 NR_CUPSはデフォで8なのに増やすとはどういうことかね?
>>573 kernel compileする際に early printkをon にすれば?
それに加えて、serial consoleでログ取り
576 :
login:Penguin :2007/05/15(火) 09:15:55 ID:KfdCmbZ9
>>575 アドバイスありがとうございます。
やってみます。
>>574 dmesgがとれないから苦労してます。
NR_CPUSのデフォルトはこちらでは32でした。
4なら起動するカーネルがビルドされるのに、他の設定はそのままでNR_CPUSを8以上にすると
起動後、ログが表示されるまえに画面がちらちらしてまもなく再起動します。
コンバイルエラーはありません。
577 :
login:Penguin :2007/05/15(火) 09:48:00 ID:BmorM/Rb
これがチョン 情報を出せ ↓ 出した(もしくはガキでもわかる自明) ↓ しーん・・・・ 出さないなら出さないといってダダをこね 出したら出したで何も解決せず こういうバカは放っとくに限る。 情報出せ 環境書け こういうバカが有益な情報を提出することは120%ない。
579 :
login:Penguin :2007/05/15(火) 10:04:03 ID:BmorM/Rb
最終的には、 情報なんざなくても自分でやってみれば容易に再現できた だろ 頼むから頭の悪いイチャモンつける前に 本当にそれが必要なのか不可欠なのか 自分の考え整理してからモノしゃべれと
>>579 上げてる香具師は例外なく放置対象だが、
誰に怒ってるんだ、喪前は?
581 :
login:Penguin :2007/05/15(火) 10:54:51 ID:BmorM/Rb
自分にもそういう経験があったことを思い出しただけだが
582 :
login:Penguin :2007/05/15(火) 10:55:08 ID:KfdCmbZ9
>>578 2.6.21のgentooとmm-r2です。
なぜかここの掲示板は書き込み拒否されるので
携帯から書き込んでいます。
なので詳しいことがなかなかかけなくてすみません。
キミは放置しないの? 君は魔術士?
>>582 全然いろいろちゃうやん。
Gentoo以外にメジャーな最近の鳥はどうなのさ。
2.6.21はバニラ? 2.6.21.1もでてるし。
2.6.20以前はどうなの?
587 :
login:Penguin :2007/05/15(火) 11:24:36 ID:BmorM/Rb
単に本当のことを言ってるだけなんだよな。 情報出せ環境書け こういうバカが有益な情報を提出することは120%ない。 最終的には、情報なんざなくても自分でやってみれば容易に再現できた つまり環境とかまったく関係がないのにあると思い込んでバカ披露してる 必要であるか否かの判断ができないバカに有益な解決策を出せというほうが無理ということだろうが、 それならバカは最初から黙ってろ、ということしかできない
>>584 了解。kitty guyは放置に限る。
590 :
login:Penguin :2007/05/15(火) 12:49:02 ID:BmorM/Rb
よほど悔しかったらしいw 惨め惨め
素人ながらカーネルコンパイルをしてみました。初めは上手くいきました、パッチをあてたらmakeの 最中エラーがでます。何がconfigOPTでもおかしいのでしょうか?ググっても英語の内容の記事は あったのですがなんかよく解りませんでした。 ubuntu 7.04 i386 現在2.6.21.1パッチなしで稼働中。 CPU athlon64*2 4200 チップ nforce4 ネットワークカード 内蔵mervelを現在sky2ドライバーで可動 2.6.21.1カーネルソースへpatch-2.6.22-rc1.bz2をあてた所下記のエラーでmake中断 CC [M] net/ipv6/tcp_ipv6.o CC [M] net/ipv6/exthdrs.o net/ipv6/exthdrs.c: In function ‘ipv6_rthdr_rcv’: net/ipv6/exthdrs.c:390: error: ‘struct sk_buff’ has no member named ‘h’ net/ipv6/exthdrs.c:391: error: ‘struct sk_buff’ has no member named ‘h’ net/ipv6/exthdrs.c:391: error: ‘struct sk_buff’ has no member named ‘h’ net/ipv6/exthdrs.c:398: error: ‘struct sk_buff’ has no member named ‘h’ make[3]: *** [net/ipv6/exthdrs.o] エラー 1 make[2]: *** [net/ipv6] エラー 2 make[1]: *** [net] エラー 2 make[1]: ディレクトリ `/usr/src/linux-2.6.21.1' から出ます make: *** [debian/stamp-build-kernel] エラー 2
>>591 patch-2.6.22-rc1.bz2は2.6.21に対するパッチですよ?
>>592 おかげさまで成功しました^^ ありがとうございました。
でもVMwareのインストールでなんかまた上記と似たようなエラーが。。。
Building the vmnet module.
Using 2.6.x kernel build system.
make: ディレクトリ `/tmp/vmware-config0/vmnet-only' に入ります
make -C /lib/modules/2.6.22-rc1/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: ディレクトリ `/opt/kernel/linux-2.6.21' に入ります
CC [M] /tmp/vmware-config0/vmnet-only/driver.o
CC [M] /tmp/vmware-config0/vmnet-only/hub.o
CC [M] /tmp/vmware-config0/vmnet-only/userif.o
/tmp/vmware-config0/vmnet-only/userif.c: In function ‘VNetCopyDatagramToUser’:
/tmp/vmware-config0/vmnet-only/userif.c:630: error: ‘const struct sk_buff’ has no member named ‘h’
/tmp/vmware-config0/vmnet-only/userif.c:630: error: ‘const struct sk_buff’ has no member named ‘nh’
/tmp/vmware-config0/vmnet-only/userif.c:636: error: ‘const struct sk_buff’ has no member named ‘h’
make[2]: *** [/tmp/vmware-config0/vmnet-only/userif.o] エラー 1
make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] エラー 2
make[1]: ディレクトリ `/opt/kernel/linux-2.6.21' から出ます
make: *** [vmnet.ko] エラー 2
make: ディレクトリ `/tmp/vmware-config0/vmnet-only' から出ます
Unable to build the vmnet module.
vmware が対応するのを待つ、かな。
596 :
login:Penguin :2007/05/23(水) 10:02:48 ID:qa+Xme1v
いまのカーネルの目標ってなに? たいして重要な課題がないなら、ちゃっちゃとReiser4を入れてほしい mmカーネルにはsquashfsが入ってなくて愕然としてる
>>596 誰もupstreamにpushしてないから。
lkmlで誰もレビューに手を上げないから。
upstreamで誰もメンテする人がいないから。
598 :
login:Penguin :2007/05/23(水) 13:28:30 ID:qa+Xme1v
どうすればpushできますか
ちなみにsquashfsがなぜバニラに入っていないかnewbieが質問したときの lkmlでの反応がコレ。 > So Fedora uses squashfs, Ubuntu uses, squashfs, Gentoo uses squashfs... It > seems like the only place I can get a kernel _without_ squashfs is > kernel.org. > > Is there a reason for this? Has anyone tried to merge it upstream? Do the squashfs developers want to merge it?
601 :
login:Penguin :2007/05/23(水) 13:40:36 ID:qa+Xme1v
希望すれば誰でもなれますか?
開発者のフリはやめろって言われました(^^;
604 :
login:Penguin :2007/05/23(水) 22:48:11 ID:qa+Xme1v
希望しても開発者になれないなら、「やるやつがいない」というのは「ゃなこった」というのと同義ですね? つまり、問題はどういう基準をみたせば開発者になれるかです。
著作権を主張しない開発者が知り合いに一人いれば誰でも
英語できなくてもなれますか?
どうやったらなれるか人に聞かないとわからない人は なれないと思います。
608 :
login:Penguin :2007/05/24(木) 22:26:56 ID:dB9Mz0Qb
つまり、「ゃなこった」ですね?
>>608 マジレスすれば、意味のあるLinux開発者になるということは他の開発者の信頼を得るという事。
なお、信頼を得る人間というのは1を聞いたら100を自分で調べる人間。よって
>>607 。
ちなみにコミュニケーション能力の無い人間は信頼されない。Linux開発者の共通言語は
英語。よって
>>606 への回答は「なれません」。
610 :
login:Penguin :2007/05/25(金) 13:27:54 ID:frHjCPX+
英語ができないやつは技術者じゃない。開発者の世界に存在してない。
開発者でもっとも大事なのは、コミュニケーション能力っていうからな 特にオープンソースで開発していく場合
>>613 GPLなら顧客に対しては公開する必要あるはず。
>>613 内部で使う分には公開する必要はない。
バイナリ配る場合にソースも請求できる。
617 :
login:Penguin :2007/05/27(日) 10:37:25 ID:HBEPqukp
>>614 顧客が請求しなかったら必要ないんじゃない?
俺が顧客なら、んなもん見たくない。トラぶった時はそっちで調査しろ と思う。
>>617 GPLv2 3-c の話なら商用利用には適用できない。
なので、3-a か 3-b の内容が実行される必要がある。
「メーカー」ってのはハードウェアベンダのことかしらん。 Itanium方面のことは全然知らないが、当然ベンダが直接手を入れているものだと 考えるべき事情があるんだろうか。 特になければ、適当なディストリビュータが出しているものをそのまま載せてしまった ほうがベンダとしては楽で、商売のうまみがあると思うんだが。
>>565 既出かもしれないけど、cpufreq_ondemandだと動きが過激過ぎてママンとCPUと電源の組み合わせによってはママンがキレてSEGVが多発したり、最悪電源が落ちたりカーネルパニックしたりします。
こーいう場合はcpufreq_conservative の方が動きが緩やかな分ママンがキレる可能性が激減しますので、
/etc/cpufreqd.conf の
> performance = ondemand
ってなってる行を
> performance = conservative
としてみてcpufreqdを再起動して負荷を上下させてみそ。クロックが上下する時間はかなりかかるけど、手堅いです。
あれをlkmlに投げるのはどうなん? つかマジでmergeするんつもりなんすかね、いくらGregが言ったって。 アラビア語訳が投稿されたらどうするよ?
>>624 > Please also note that the page is written in Japanese, but you can see
> a lot of results there.
何言ってるのか解らん。 こういう英語を書く人の和訳は読む気がせんな。
>>625 あれ投げた人と和訳した人は別ですがな。
入口だけ日本語にしてもねえ…最後は英語で議論せにゃいけないわけで。
ハァ?
628 :
login:Penguin :2007/06/12(火) 11:48:47 ID:LQVE/txE
ハァ?
ハァ!
クショーン!
631 :
login:Penguin :2007/06/12(火) 16:24:08 ID:EbV01dGO
ダイマオー!
クッシャミヒトツデ
あの世逝き
NATでルータ組む場合のIPフィルタリングの例で、よくWAN>LANにポート135,137-139,445を破棄する フィルタを入れる例が載ってますが、これって意味あるんですか? LAN>WANなら理解できるのですが・・・。
そこにアタックしてくる人が結構いたりするんですよ。
INPUT DROPをしてるから、"あえて"それをする必要があるの? ってことが言いたいのかな?
悪質というか多いのは外からのDOSアタックなどでしょう。 中からわざわざ外へ出て行く悪質な物はPC内に仕掛けられたトロイとか キーボード読み取りとか外にいる誰かさんの為に送信する。 外からくるのは開いているポートがあるか探したり、先程のファイル共有の ポートなどに片っ端から色んなパスワードを連チャンして送ってくる。 繋がればラッキー状態でねw だから外からのアタックに運悪く狙われた場合大量のパケットを受け取るハメになり 各PCの速度低下、ネット内のDHCP,DNSのパンクしたり、下手に変なセキュリティーホール を突かれて入られた日には中にトロい系のバックドアや遠隔捜査プログラムを置いていか れたり。。。要は怖いのはあくまでも外からですってことかな。
よく分からずにホイホイとクリックして 結果的に自殺する羽目に・・・ なんてのまでは面倒見切れないしな
>>636 いや、だからNATしてるからわざわざ通さない限りはデフォでDROPされるんだから、
なぜわざわざ冗長なDROPをするのか? と
>>634 は聞いているのじゃまいか?
ありでしょう。NATだから恐らくは外の人はプライベート内のアドレスを参照出来ない (P2Pとかやってれば別だけど)と思いますがそのポートをマスクしてないとルーターが その都度NATのテーブルを見てルーター自体の速度や安定性には影響がでるかも。。
フールプルーフとかフェイルセーフということで。 本に書いてあるルールを良く考えずに設定して それを試行錯誤していじり回す人がいることを想定しているのでしょう。 たとえば、traceroute が使えるように、ってことで iptables -A -p udp ACCEPT
642 :
sage :2007/06/13(水) 19:09:51 ID:PmHFMywj
task_pt_regs (include/asm-i386/processor.h/2.6.22-rc4) についての質問です. __regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8); となっていますが,コメントを読んでも-8の意図が分かりません. 同特権レベルの際のハードウェア割り込み時には確かにss/eipはスタックに 退避されませんが,__regs__ - 1; により,(ss/eipを含む)pt_regsの領域が確保されるため, わざわざ余分に(ss/eipのための)8バイトを確保する意味はあるのでしょうか.
643 :
634 :2007/06/13(水) 21:05:09 ID:7nqPtZAt
色々な意見ありがとうございます。
>>639 さんの仰る通りの疑問だったのですが、言葉足らずで申し訳ありませんでした。
自宅での使用なので、P2Pは全く使う気ないので、考慮していません。
Web鯖1台とPC4台で使っているのですが、Web鯖で使うポートだけスタティックで組んで
後は全て破棄にしています。
どうせNATで破棄されるのなら、わざわざフィルターにごちゃごちゃ入れるのはどうかなぁと
疑問に思ったもので。
フィルターでハジくのと、NATで弾くのでは、どちらが動作軽いんだろう。
softdogって使ってる人いる? ちょっと実験してみたのだが再起動しない。 modprobe softdogって したら、/dev/watchdogに何も書かなければデフォでは1分後には再起動するはずだよね? Software Watchdog Timer: 0.07 initialized. soft_noboot=0 soft_margin=60 sec (nowayout= 0) CentOS 4.4の2.6.9とCentOS 5.0の2.6.18で試してみた。
>>644 ソース読んだら原因わかりマスタ。 /dev/watchdogを開いてないとtickしないのね。
>>642 entry.Sになんか書いてないか?
たぶん深入りしない方が無難。
>>646 レス,どもです.
解決しました.
割り込み/例外時に,カーネルスタックに積まれるレジスタについて
ring3からring0への場合)
内容: ss/esp,eflags/cs/eip+SAVE_ALLマクロで積まれるレジスタ
サイズ: sizeof(pt_regs)
ring0からring0への場合)
内容: eflags/cs/eip+SAVE_ALLマクロで積まれるレジスタ
サイズ: sizeof(pt_regs)-8
ここで,copy_thread()内では *childregs = *regs; (//struct pt_regs *childregs, *regs)
と親プロセスが退避したレジスタを子プロセスのカーネルスタックにコピーしており,
その際のサイズがsizeof(pt_regs)であるため,ring0からring0への場合,8バイト分足りません.
そこで,__regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8); としてカーネルスタックの
底を,確保したものより8バイト分底上げしてthread_struct->esp0に保存しておくことで
この8バイト分を補っているものと考えられます.
fedora FC1 で 最新2.6.21.5のカーネルをコンパイルするとエラーになります。 2.6.20.2までこんなことにならなかったのですが。 もうFC1の環境ではダメなのでしょうか? [root@colinux linux-2.6.21.5]# make /bin/sh: -c: line 1: unexpected EOF while looking for matching ``' /bin/sh: -c: line 2: syntax error: unexpected end of file make: *** [include/config/kernel.release] エラー 2
Fedoraならまだ大丈夫だろう。 一回distcleanしてみるとか。 どうでもいいことだがそんなんでrootになるなよ。
>>647 ring3 -> ring0 のときは -8 するような参照(即ち task_pt_regs か)は使われることは
ないんだっけ?
あるいはこの場合も -8 しておいてオッケー?
copy_thread()はcopy_porocess()から、すなわちforkのときに呼ばれるようだけど。
Linux Kernel Watch終わっちゃったの?
>>650 全てのプロセスはinitの子孫としてfork経由で生成されるはずなので,どのプロセスもカーネルスタックの
底上げ(-8)はされると思います.(自信ないですが)
>allocateしたページにPG_slabを付ける必要があるのでは無いでしょうか。 なんか混じってる(w
>>653 あーやっちまったか。
いまいち自信がなくて日本語で下書きしたのを英訳してたんで、
日本語の方を消し損ねましたわ。
655 :
login:Penguin :2007/06/23(土) 00:25:46 ID:rQGYJWZW
657 :
655 :2007/06/23(土) 00:58:39 ID:rQGYJWZW
あらら、「固定」の説明をまちがった。スマソ。 Linuxの場合、RWINは5000あたりから自動的に増えていく仕組みだが、 Windowsの場合、レジストリいじって最初から65535とかからはじまる。 カーネルパラメータかソースいじってWindowsのようにしたい。
馬鹿には教えない
俺はアホやった
カーネル全部読破した人って何人くらいいるんだろう。
>>660 Andrew Mortonくらいじゃね?
Alan Coxでも無理だと思う。
>>660 ものすげー努力すれば全部読めるとは思うが…読み終わったころには
別物になっていて、無駄な努力に終わると思うわけです。
>>661 レビューで目を通す位じゃないかのう。
来年から某大手Linux企業に就職するんだけど… カーネルのコード弄る事も多々あるって言われて。 学生の内に、カーネルのソース読んでおいた方が良いですか?
必要に応じていじるだけだから、読むのはごく一部分だよ。 独自ハードウェアに合わせてドライバを修正したりとか、 癖のある相手に合わせてネットワーク周りをチューニングしたりとか。
>>663 全体像くらいは把握しておいた方がいいのではないかと。
どこに何が入ってるかくらい。
>>663 gccを使い込みなさい。さすれば、道は開けるでしょう。
>>663 Linuxが正解かは?だけど、時間が取れるうちにOSがどう実装されているか
一度は触れてみるのも良い経験と自信に繋がるのでは。
IA-32アーキテクチャなら詳細な仕様書も手に入るしね、学生さんなら英語でも無問題でしょ
669 :
663 :2007/06/25(月) 22:38:51 ID:QYahHa12
>>664-668 レス、ありがとうございます。
ディレクトリ構造とMakeファイルくらいしか、見てないので
夏休みにゆっくり取り組んでみようと思います。
>>663 大手Linux企業ってどこだよ(笑
まさに数えるほどで、名前バレする日は近いと見た
ガンガレ〜(なんかドライバ一つ書いてみれば)
Redhat / Hitachi / Fujitsu / Unisys / Novel NRI / NRI / SIOS / IBM / Turbo 他にあったっけ?
NECとかNTTとか
ぜったいTurboだ TurboはバンバンkernelをハックしてLinuxに貢献してくれている。
ああ、ぜったいTurboだ TurboはバンバンkernelをハックしてLinuxに貢献してくれている。
>>671 NEC(ext3),VA(NFS), NTT-DATA(Tomoyo),Miracle,SRA(Postgre)
へー、慶應義塾ってつかってんのか
>>677 Usagi (ipv6)プロジェクトだろ
うわ、意外。家電屋の東芝とか、メインフレーム屋と 思ってたFujitsuが300もパッチ投げてるなんて。 Redhatと仲良さげな日立の方が、もっと上かと思ってた。 TURBOはlivedoor傘下から抜け出そうとガンガッてるみたいだけど、 あそこの製品はイマイチ好きじゃないし。 お抱えLinuxハッカー数 NEC 12人 富士通 12人 NTT 8人 東芝 5人 パッチ数と比べてどこが一番クオリティータカス?
ふじつう:memory hotplugなのでメインフレームやさんつながり ひたち:kprobe関係なのでそんなに投げるネタがない
ないすともがんばっとるのね
>>667 binutilsも使い込んでみるのもいいかも
rawhideにはちょっと前からCFSが入った。 メインストリームに入る準備が整ったか?
CFSって昔のNFSサーバのふりする暗号化ファイルシステムとは違うの?
buslogicとpcnet32のドライバをデフォルトでオンにしてくれないかな これをよく忘れてvmwareで起動できなくて困る。
mptとe1000を使え
>>667 >>682 gccやbinutilsの知識ってそんなに要るかね?
普通にプログラムを書くのに必要な程度では。すくなくとも日本の会社でやりそうな
ことに関しては。
>>689 普通のプログラムならそのとおりだが、ここは「カーネル総合」だぞ。
>>690 てゆうか「Linuxのカーネルに関する仕事をするかも」っていう話の場合、実際には
「カーネル総合」ではなくだいぶ限られることがほとんどだろ。
デバドラとか、カーネルのパラメータをいじったりするとか。
そもそも「gccやbinutilsの知識」というのもいろんなレベルがあるんで具体的に
何のことか書いてもらわないとアドバイスの意味がないような。
例えばコンパイラの最適化でハマる話、なんてのは入るんだろうか。
>>691 マイナーなアーキテクチャだと結構落とし穴があったり。
armで頑張ってます。
なんという…
仮想NICドライバ開発ってLinuxの場合どうすればいいのですか? Windowsだとそれっぽいサンプルがちらほら散見してるので 集めれば解かったのですがLinuxはどうすればいいのか見当がつきません。
デバドラ本見たら?
>>702 3版の2章だけでは仮想NIC作るには不十分なので質問をしてみました。
何が不十分なんだろうねぇ
705 :
login:Penguin :2007/07/12(木) 05:08:00 ID:VaAvkZ4F
サンプルも何も、kernelの適当なNICのドライバソース見ればいいじゃない。 これ以上のお手本はないでしょ?
Linux DDKダウンロードしたら デバドラ3rd入ってるんだな。
今さLTTとSystemTapってどっち使ってるケース多いのですか? モンタがSystemTapのマニュアルとかサンプルこっそり リリースしてるけどあいつらは乗り換えた口なのか?
>あいつらは乗り換えた口なのか これは、社員じゃないからわからんが、 カーネルメンテナおよび富士通、日立、HP、IBM、Intel、 NEC、Novell、NTT、RedHat、VA Linuxtoitta といった企業はSystemTapを支持してるみたいだよ
SystemTapの日本語開設サイトない?
>こっそり 人聞きの悪いw
Proccessor type and featuresの、Proccessor familyとGeneric x86 supportは、 同時に設定しても問題ないですよね? 例えばProccessor familyを"Athlon/Duron/K7、Generic"にした上で、 x86 supportも有効にした場合、それぞれのオプションは有効になるのでしょうか?
>Instead of just including optimizations for the selected >x86 variant (e.g. PII, Crusoe or Athlon), include some more >generic optimizations as well. This will make the kernel >perform better on x86 CPUs other than that selected. x86 support入れたら最適化の度合が緩くなるってことだから同時に設定しても問題ないと思う。
その英文からは「x86 support入れたら最適化の度合が緩くなる」とは読み取れないが?
>>715 しょうがないから訳そう。
選択されたx86互換CPUのための最適化の代わりに、
もう少し汎用的な最適化を含めます。
これにより、選択外のCPUでの性能が少し良くなります。
K7特化の最適化は少し弱くなるかもしれないけど、
他のCPUで動かしたときの性能がよくなる、と解釈
できなくもない。
単にMakefile.cpuで-mtune=i686がつくかどうか、みたいな感じだけど。
選択されたx86互換CPUのための最適化だけを含める代わりに、 もう少し汎用的な最適化も含めます。 というように読める。
>>717 最適化オプションの指定が
-march=athlon
から
-march=athlon -mtune=i686
に変わるので、若干落ちる。
git3,git4は駄目だったけど、2.6.22-git5でXが起動するようになった。
じっとがまんするといいんだ
> Instead of just including ..., include some more だから、「それ(指定プロセッサで十分な部分)だけでなく、追加(他の x86互換プロセッサで役立つような)最適化*も*します」でFA。
FAwwwこんなことでなに熱くなってるんだか
FC6 2.20カーネルから2.22カーネルへ、そのまんま基本通りにビルドしたのみ。 動作が軽快になった。yum じゃなくて手動でやってみるもんだね。
ubuntuパッチあてるのうぜぇw 2.22にするの面倒w ヤメ
>>723 DJは2.6.21はスキップするといってたから、
そのうちF7,FC6にも2.6.22が落ちてくるよ。
>>727 ロマンがないからダメw
でもめんどうだw
729 :
login:Penguin :2007/07/19(木) 10:47:20 ID:oc8hKgJl
>>729 make menuconfig
それともお前は自分が見つけたobsoleteなページの校正を
無料でやらせようとしているのか?
731 :
729 :2007/07/19(木) 11:55:31 ID:oc8hKgJl
いや、その menu config 最中なんですよ。 分からないカーネルの項目がある為、知っておきたいのです。 知らずにYesにするのは気持ち悪いので。 ここの人ならどこかの解説サイト知ってるかなと。 ないのならでいいです。
>>731 項目を選択すると説明文出るけどそれじゃあダメなの?
733 :
729 :2007/07/19(木) 12:02:27 ID:oc8hKgJl
ITproのは古くて項目が変わっているみたいなんですよ。
ちなみに 2.6.20 を make menuconfig してまふ。
>>731 英語なので初心者の私には理解しづらいです。
みなさんは全ての項目を把握してます?
>>733 最新情報は日本語じゃ得られないよ。
つーか、ほんとにカーネル再構築する必要あるの?
>>733 >英語なので初心者の私には理解しづらいです。
日本語で書いてあってもどのみち理解できんよ。
736 :
729 :2007/07/19(木) 12:33:49 ID:ymvYObqM
> 最新情報は日本語じゃ得られないよ。 そうでしたか、残念。 とりあえず make oldconfig を行い、分からない部分はデフォ にします。 > つーか、ほんとにカーネル再構築する必要あるの? はい、必要があるのですよ。 > 日本語で書いてあってもどのみち理解できんよ。 そうですね。本でも一冊買ってきます。 しかし、OSを自分好みに makeできるなんてすごい事ですね。 windowsでは考えられない。 これぞLinuxの醍醐味ですね。素晴らしい。 (現在make中)
insmodしたとき irq関連のsymbolが見付からないって言われる原因探る場合って straceしかないですよね?
modprobeすれ
modprobeしてもだめsymbolないって カーちゃん怒ってきます。熱くてイライラしていたので メモリ3枚外して帰ってきました。
symbolがソースのどこにあるか検索するとかじゃ駄目なの?
/linux/irq.hにあって読んでるはずなんだが なぜか読みにいかない。 もう、マシンにかかと落としかましたくなってきた
symbolが外部定義されてないからとかじゃないの?
エラーメッセージも書かず、ただ愚痴るなら 雑談スレか日記すれでやれ。
メッセかけねーよw NDAなんだよーたすけてよぉ
>>741 おおかたドライバーのバージョンとカーネルのバージョンが合ってないんだろ。
あと、この場合、straceで何をどうやって見るつもりなんだ?
>>749 ヘッダーじゃなくて、Cのソースの方で外部定義されてるか確認してみたら?
だまされたと思って、ソースに次の1行を加えてみれ。(w MODULE_LICENSE("GPL");
754 :
login:Penguin :2007/07/20(金) 03:55:51 ID:rhLYCtzt
-mmとかxenとか、lguest、reiser4とか、さまざまな最新のパッチを一まとめにして配布してくれるところはないでしょうか?
>>745 ソースコードに定義されていてもしょうがない。
その瞬間に動いているカーネルの中にシンボルが無いと。
>>745 そのsymbolって/proc/kallsymsにあるのか?
なんかでかいのが来たな。arch/x86
変えるのは自由だが、メジャーバージョン番号変えてほしいな。 ただ、それをやると、開発者が新しいバージョンに群がって 古いバージョンのバグフィックスが行われなくなるから、 リーナスは今のやり方をやっているんだろうけど。
商業プログラマとユーザが古いバージョンにしがみつき、 開発者は新しいバージョンに群がって、 両者が隔離されてしまうからな。
>>761 実際のところユーザーはそれでいいんだけどね。
ユーザーが必要と思った機能は、ユーザが金を出したディストリ屋が
バックポートすればいい。カーネルハッカーの価値とユーザの価値は
違うこともあるので、間のバッファ役がいてもいいかなと思う。
現実にそれが上手くいかなかった過去をふまえての今のやり方なわけだから。 この状況は囚人のジレンマに似ている。
この世界の全ての囚人たちへ
世界は巨大な牢獄なので、男同士でヤっちゃうのは必然
>>759 今のところ
反対
Andi (i386/x86_64メンテナ), Jeff
賛成
仮想化の連中、ppc,s390でマージを経験してる連中、RH関係者(w
767 :
login:Penguin :2007/07/22(日) 15:31:46 ID:QRS5eOF5
2.6.23-rc1-git1でやっとビルドと起動に成功した。
>>769 暇だったから読んだけど、これって苛められたんだな。可哀想に。
>>771 いやコミュニケーション不足。
インタビューで愚痴ってるぐらいが関の山。
要するにプラッガブルなスケジューラフレームワークとデスクトップ向け スケジューラ書いたが「プラッガブルにするのは望ましくない」とリジェクトされて、 そのしばらく後のスケジューラ議論で結局別個に(ほとんど)同じものを 書かれて「お前こないだ言ったとの180度違うじゃん」とガクーリきたと。 いまは日本語の勉強するのがカーネルいじりに変わる新しい知的遊戯だとか。
CFSはplugableじゃないですよ? 4月の議論読んでこいや。
ちなみに今度はswap-prefetchがマージに足るかの議論をやってる。 ここでもCKは出てこない。 つまりはコミュニケーションの問題だよ。
>>773 | そのしばらく後のスケジューラ議論で結局別個に(ほとんど)同じものを
| 書かれて「お前こないだ言ったとの180度違うじゃん」とガクーリきたと。
そこで一言、「このインゴーオヤジめ!」と叫んだとか、叫ばなかったとか。
>>776 そうそうついでに「もう二度とコン!」って怒っちゃったんだよね
>>773 まさか、amelがckとか言うオチではあるまいか。
いや、ないか。暑さで脳が機能してない・・・。
kernel2.4.20でepollって使えないよね? pollとselectで引き回すしかないんだよね....?
sendto()システムコールを利用しないでraw socketを送信する方法 ってないのでしょうかね? システムコールの発生が重いからなんとか改善したいのですが 諦めた方がいいのでしょうか?
Packet socket: mmapped IOってあるけど これのサンプルが見付からない
af_packet.cを見るしかないんじゃない? ちょっとみた限りだと、外からどうこうするものではない気がするけど。
>>784 Documentation/networking/packet_mmap.txt
は見たかい。
>>787 それ自分のディレクトリにないのですが
どこにあるのですか?
うーんあったごめんなさい。w
packet_mmapって受信だけしか 説明かいてないじゃーん 俺は送信したいのぉ
> I personally think that it's much better to find a setup that works 'well enough' for people, without having modal behaviour. 賛成だけど、結局どこまでが骨組み(交換不可能)で、どこからが 肉付け(=肉襦袢の付け替えはOK)なのかっていうだけの話のような。 そうは言ってもファイルシステムやデバイスドライバをWindowsのように フィルタドライバ入れられるようにしてくれたっていいじゃないか(サード パーティによる機能拡張の広がりがでるし)と思いつつも、上の信念も わからんでもないというか。
遅ばせながらlibataのPATAサポートを試したのだが。 IDEのmasterに繋いでるHDドライブは認識されるけど slaveに繋いでるCD-ROMドライブを認識してくれない。 PIIX_IDEでは無問題だったのだが、ata_piixでは未対応なんじゃろか? 繋がってるのはLGのCRN-8241Bとかいう化石。
>>793 さて、試したkernelのバージョンを聞こうか。
795 :
793 :2007/08/10(金) 19:02:57 ID:yrQXPUg5
>>794 えーと、今んとこ
2.6.21.{3,4,5}
2.6.22-rc{4,5,6,7}
2.6.22
2.6.23-rc{1,2}
>>795 君のいるべきところはここではないと思う。
linux-2.6.git
2.6.23-rc2-mm2
を試したのち、Tejun, Alan にコンタクトをとりたまえ。
void smp_wmb(void)ってカーネル空間のAPIだから 普通のユーザ空間のプログラムじゃコールしないほうが いいの?
>>796 みたいなアホって、どうしてこう黙っていられないのかね。
分からないことに一々レスすんなって。マジで。
つか、何も分かんねえ癖して、知ったかでレスを止めんなよ。
大体
>>793 も
>>793 だ。どう考えたって情報不足だろ。
その手のことを聞きたいのなら、まず最初に
・チップセット
・ハードウェア構成
・試したこと
した上で、何でも質問スレにでも書き込むべきだ。
因みに俺は、PATAは、915Gのプライマリマスタのみに、
松下製DVD-RAMドライブを繋いで運用しているが何の問題もなく認識している。
[PATCH] [xxx/2many] MAINTAINERS
kernel: [206652.240000] EIP: 0060:[resume_userspace+16/32] Tainted: P V これどうゆう意味?エラーなのかな?
>>804 そこから得られる情報は、
* カーネル内部で何らかのエラーまたはパニック(続行不可能)が発生した。
発生位置は resume_userspace 関数内。
* プロプライエタリ(ソースコードが非公開)なモジュールがロードされている
("Tainted: P")
あんま人数いない過疎になる悪寒だが、とりあえずROMることにした
なんかすごく初歩的な話かもしれないんだけど、クラッシュダンプをデバッガに かけるとローダブルモジュールの所のシンボルがごっそり落ちるのってどうやって 対応するんでしょう? $ gdb vmlinux vmcore.kdump warning: Couldn't read module name Cannot access memory at address 0xc4813424 #0 crash_kexec (regs=<value optimized out>) at kernel/kexec.c:1064 1064 machine_crash_shutdown(&fixed_regs); (gdb) bt #0 crash_kexec (regs=<value optimized out>) at kernel/kexec.c:1064 #1 0xc010effc in panic (fmt=0xc481305a <Address 0xc481305a out of bounds>) at kernel/panic.c:88 #2 0xc4813032 in ?? () #3 0xc481305a in ?? () #4 0xc238dfb0 in ?? () #5 0xc0125ce0 in sys_init_module (umod=0x0, len=0, uargs=0x0) at kernel/module.c:2066 #6 0xc0125ce0 in sys_init_module (umod=0x804b018, len=62401, uargs=0x804b008 <Address 0x804b008 out of bounds>) at kernel/module.c:2066 #7 0xc0103ba4 in syscall_call () at bitops.h:246 と、#5でモジュールをロードして、その結果 #1 で panic() したことまでは 判るものの、#2, 3, 4 の肝心のモジュール内アドレスがデコードできません。 これはわざと panic() するモジュールを使ってやったダンプ解析のテストなので 喫緊の問題というわけではないんですが、こういう場合、抜けてるアドレス部分の シンボルってどうやって別供給できるんでしょうか? ちなみにkgdbで実行中の上記カーネルをブレークして止めた場合はきっちり シンボルデバッグできています。なのでクラッシュダンプでも見れるものと 思っていたのですが・・・
810 :
809 :2007/08/29(水) 10:26:09 ID:E1JDVS03
すみません、事故解決しました。crashのmodで〜終了〜でした。 gdbだとloadなのかな? お騒がせしました。粘りがちょっと足りない・・・
CentOS4, (2.6.9-42.0.10.EL, i386) のシステムがハングしました。 pingには応答するのですが 既存のシェルはフリーズ、ssh、コンソールからも入れません。 SysRqでShow Regs を何回もやるとこのshプロセスではまっているようです。 SysRq : Show Regs Pid: 11210, comm: sh EIP: 0060:[<c0114934>] CPU: 0 EIP is at delay_pmtmr+0x7/0x13 EFLAGS: 00000287 Not tainted (2.6.9-42.0.10.EL) EAX: 0001ffdd EBX: 000f4611 ECX: ead9bb04 EDX: 000045c9 ESI: e3dc81d0 EDI: 00000202 EBP: f59d3fbc DS: 007b ES: 007b CR0: 8005003b CR2: b7f43ec4 CR3: 23861000 CR4: 00000690 [<c01ea881>] __delay+0x9/0xa [<c0123f0b>] panic+0x140/0x142 [<c014a375>] kprobe_flush_task+0xce/0x11a [<c031670b>] schedule+0x4cf/0x5f1 [<c0318f8a>] work_resched+0x5/0x16 このコールスタックは arch/i386/kernel/entry.S: work_resched kernel/sched.c: schedule -> finish_task_switch (inline) kernel/kprobes.c: kprobe_flush_task までは終えたのですが、そこからは深くインラインが絡み込んでて どこから"panic"が呼ばれているのかが見つかりません。 どこなんでしょう? ちなみにこれだけ見てどういう状況か分かるでしょうか?
panicしたときの見ないとわからん。
いやいや、次は extremely だね
815 :
login:Penguin :2007/08/31(金) 18:23:26 ID:hKeLi/9d
>811 /boot/ にある System.map でc0123f0bあるいはc014a375の近傍を探してみればどでしょう? 少なくともどこでpanicが呼ばれているかわかるから、その界隈のソースをここにコピペ。
818 :
login:Penguin :2007/09/04(火) 02:04:28 ID:Vaa7cgue
やはりarch/x86はマージされる方向で。 Andiはi386/x86_64のメンテナのままで、arch/x86は メンテしないって。 ソースはKS2007
bsdのsocketのzero-copyに相当する ものってありますか? SIOCDEVPRIVATEも呼べないドライバで 困ってる助けてくだされ
I/OAT DMA driverてどうやって使うの?
全然困ってなさそうだな。ggrカス。
bsdのsocketのzero-copyに相当する ものってありますか?
以下の状況では ECP は有効と考えてよいのでしょうか: /usr/src/linux/.config: # # Parallel port support # CONFIG_PARPORT=y CONFIG_PARPORT_PC=y CONFIG_PARPORT_PC_FIFO=y CONFIG_PARPORT_PC_SUPERIO=y # CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y `dmesg`: parport0: PC-style at 0x3bc (0x7bc) [PCSPP,TRISTATE] parport0: irq 7 detected lp0: using parport0 (polling). どうかご教授願います。
bsdのsocketのzero-copyに相当する どうかご教授願いま
bsdのsocketのzero-copyに相当する どうかご教授願いま
828 :
login:Penguin :2007/09/21(金) 06:57:04 ID:toIDirde
>>828 調べてみたところ、確かにそちらの方が相応しいようです。
大変為になりました。わざわざ御指摘戴きありがとうございます。
はいはい自演乙自演乙
おいこら
futexの使いかた教えてください おねがいしましる
rc8か 難産だな
836 :
login:Penguin :2007/09/26(水) 20:24:49 ID:TA/ZfTZG
2.8っていつでるんですか?
まだ開発系統の2.7も出てないでしょ
838 :
809 :2007/09/26(水) 22:55:51 ID:o1EHMGqN
次のバージョンは「Linux8」になる予定
カーネル空間で初期値として 初期時間と待ち時間を与えると 以後、初期時間+待ち時間になると イベントが上がってくるような処理を 作りたいのですがどうしたらいいのですか?
waitqueueにつっこめ
841 :
login:Penguin :2007/10/01(月) 10:59:23 ID:ZKMiy0d7
IA-32 上で動いている Linux で Segmentation Fault が出る時って、 いわゆる 386 プロテクトモードにおけるセレクタによって指定 されたセグメントの境界からはみ出た、あるいはその他のアクセス 制限に違反したという理由で例外が発生しているのでしょうか? もはやフラットメモリモデルだと base/limit による セグメント境界の指定などは一切使っていないのでしょうか?
使ってるけど、フラットじゃほぼ意味ないですな。 not presentなページさわって落ちる方が多いと思ふ。
843 :
login:Penguin :2007/10/02(火) 10:46:08 ID:7GBwepEb
なるほど、セグメントの base/limit や読み書き実行属性による 例外を期待しているわけじゃなくて、プロセスごとに用意されている ページテーブルの読み書き属性や非存在を示すフラグが例外を 発生させているのか。 ページテーブルには読み書き可能属性は設定できるけど 実行可能か否かは設定できないからこれがバッファオーバーフロー などの脆弱性の根本ということ?NXビットってその解決のため? せっかく IA-32 にはセグメントという保護機構があるのに 使ってないのかなぁ。セグメントディスクリプタテーブル (グローバル&ローカル)を参照するコストが高い?
>>843 セグメントの機能を使わなくても、ページングの機能だけで
仮想メモリの管理ができて、冗長だからじゃね?
・他のプラットフォームへの移植性の問題 ・あまり使われてないのでCPUのチューニングがされてないから遅い? とかその辺?詳しく知らないけど。 まーNXビット使った方がスマートなんだろ。
847 :
login:Penguin :2007/10/02(火) 18:29:08 ID:6SMDhQAK
イヤッホーウ よしきた! で,何が?
>>846 we've had more changes since -rc8 than we had in -rc8
相変わらずこんな状態なのか。
>>841 「セグメント」って言ってもIA-32の機能のことじゃなくて、
Linuxが管理しているメモリ領域って意味の「セグメント」だと思う。
そこからはみだしてフォールトと。
セグメント機能を持つCPUの方が珍しいからOSでは余り活用されてない。
セグメントは、スピードが速い、セキュリティが柔軟とかのメリットは
あるけど、断片化にとても弱い、スワップで不利なのもある。
結局、x86-64ではセグメントは廃止されてる。
セグメントにあってページングにない実行属性、それがNXビット。
851 :
login:Penguin :2007/10/05(金) 14:53:48 ID:KCCYxeL5
でも結局、NXビットもページエントリに用意されているんだよね? 今じゃページングでも実行可否を制御できるってことでおk?
852 :
厨房 :2007/10/06(土) 02:22:42 ID:lPh+IpLg
mprotect()とか
まだまだrc9にマージが進行してるね。 rc10も出すのかな?
>>854 MySQL/sysbenchが糞で話はついているが。< glibcのスケールの問題
過去ログ嫁や。
いや最近の記事だし。
>>857 過去ログはおろか、引用した記事すらよんでねーだろ。
なんで切れてるんだこの人w 追加の話としては22-rc7では問題なくなったらしい、と書いてあるけど。 libc回りの話は関係なしにね。
>>859 jeffr_tech journal読んでるんなら、無理解なFUDを垂れ流す前に、
事の起こりから経緯を追ってはどうかね?
ユーザースペースが糞だからカーネル自体とは関係ないつーことであんま興味ないらしいね。 他のスレでやったほうがよかったのか。
NetBSDスレで悦に入っていればよかったものを。
866 :
:2007/10/10(水) 22:10:21 ID:iLVVEy3m
ディスオリビュータにとっちゃ、どっちが手間になるんだろうな
ディスオリビュータ に一致するページは見つかりませんでした。
>>868 ここで言ってるbinary blobって何の事? デバイスのファームウェアの事ではなさそうな
感じなんだけど良く分からん。
>>870 多分out-of-treeのベンダードライバーのことじゃないかな。
デバイスのファームのことかもしれないけど。
>>870 ドライバがデバイス側に流し込むファーム。
>>872 そういうのって前からありませんでしたっけ? ちょっとKconfigを"firmware"でgrepすると
こんな感じなのが色々と散在しているようにみられますが。
config ATM_FORE200E_PCA_DEFAULT_FW
bool "Use default PCA-200E firmware (normally enabled)"
depends on ATM_FORE200E_PCA
help
Use the default PCA-200E firmware data shipped with the driver.
Normal users do not have to deal with the firmware stuff, so
they should say Y here.
>>873 もうちょっと Linusの発言とかKernelTrapの記事読もうな
lshwのcapabilitiesに出てくるemulatedってハードの機能? それともソフトの機能?
pci expressの既存ソフトウェアのためのエミュレーション機能ぽいことを書いてあったけど、 pci-eついてないからよく分からんw
sparse-0.4ってのが出てた。
intel の4ポートNIC用のigb-1.0.8.tar.gz って普通のe1000と何が違うの?よーわからない
Linuxで Intel I/O Acceleration Technology 利用するための必要十分条件ってなんですか? 5xxx系のママン? Core2 Xeon? あと何?
なんか、ピカってきたのかな
ようやく24-rc1付いたけど、23-git17くらいまで行ったのは何だったんだ。 かなりでかいパッチセットになってるね。
Linux 2.6.22 で dirty なページキャッシュの生成が速いプロセスがいると システム全体のレスポンスがもっさりする感じがするのだが、2.6.22 で入った vm.dirty_ratio, vm.dirty_background_ratio のデフォルト値の変更って 関係あるかな?
886 :
login:Penguin :2007/11/01(木) 11:39:17 ID:4wsMLrWY
吹いたw
やーーーーっと終結したのか ほんと妨害工作しまくるRed Hatの馬鹿共は氏ね
「セキュリティをやってるやつらは狂っている?! 」の記事読んで思ったが、やっぱりLinuxはLinus頼みの所が大きいな。 今回の話しも、普通ならもっともらしい理論でLSMが排除され、SELinuxがOnlyOneWayとして採用されるシナリオも十分有り得た。 そうなれば、SELinux陣営の影響力は増し、例え間違った方向性に進んだとしても、あるいはSELinuxに代わる新たなより優れた 技術が現れたとしても、Linuxに組み込むことが難しくなる。デファクトスタンダードによる、暗黙の支配を排除するというのは Linuxのテーマの一つでもあるわけだから、Linusとしては譲歩できないところだろうな。
もし、そんなことしたら、Linuxの存在意義がなくなる SELinuxやAppArmarの件では、Linusの言うことに概ね同意だな、俺個人としては
kmallocについての質問です。 普通のプログラムをカーネルモジュール等を使ってカーネル内で 動作するように変換したいのですが、その場合mallocをkmallocに 置換すればそのまま動くものでしょうか? unable to handle kernel NULL pointer…や、 unable to handle kernel paging request…が出てしまって 動かないのです…。 チェックすべきところがありましたらご指摘ください。
892 :
891 :2007/11/09(金) 01:40:46 ID:Aq/ZR00i
っと、スレ違いでしたかね。 申し訳ないです。 質問スレ行ってきます。
キツイ言い方になってゴメン 正直なところ、 unable to handle kernel NULL pointer このあたりのエラーをハンドリング出来ない人は、カーネル空間をさわるべきではないと思うよ
>>893 いや、もっともです。
ただ、出来る出来ないに関わらずやらなくてはならないので…。
まぁさすがにエラーの意味はわかっているつもりなのですが、
置き換えただけなのにエラーが出る(しかも実行ごとに変わる)のは
システム領域では何か特別なメモリ処理が行われてるのかなと思いまして。
ユーザー空間で動いているコードを #define malloc(x) kmalloc(x,GFP_hoge) #define printf(x,...) printk(x,__VA_ARGS__) : とかやってモジュールにしようなんてのが間違っていると思うわけですが。
>>886 真に重要なのはその記事での紹介の直後の部分で、定量的かつ追試験での
検証可能性がないものは単なる信条の相違の枠を抜けることができないので
単一ポリシで固めることは絶対にありえない、という宣言ジャマイカ?
>>891 まず、その「普通のプログラム」がきちんと動くようにします。
unable to handle kernel NULL pointer…や、
unable to handle kernel paging request…が出ているようでは
まともには動いていないように思えます。
>>891 今の2.6系のLinuxカーネルで、ユーザスペースで動かすレベルのプログラムをカーネルモードに移植するメリットって、あるの?
ConnectorとかUserlinkとか使えばリアルタイム性などで多少制約が付くとはいえハードウェアをユーザスペースから叩けないことはないんだけど。
逆に言えばPCIなどのMPU直結のバスや物理メモリを直接叩いたりカーネルにある割り込みハンドラではやれないようなシビアな割り込み処理とか言った
泥臭いあたりのカーネルモードドライバを直接呼び出す必然性がある処理だけカーネルモードにして他の部分はユーザモードで動かすと言う方法自体現実的になりはじめてるんですけど。
2.4系はここ数年コードすら見ていないからどうなってるか分からないけど、2.6系についてはドライバ自体を強く抽象化出来るインフラが出来上がってるから、「ITRONやVxWorksでもないのになんでそんな真似を今更?」と素朴に疑問視するんですが(^^;
廃人になりたいから、質問してるんだよ。
Linuxカーネルの移植性ってどーなのよ
901 :
891 :2007/11/10(土) 19:57:38 ID:rcUAcD25
>>895 問題があるというのは承知しているのですが、動かない理由が見つけられなくて。
やはり単純に置換できる類のものではないのですね?
>>897 ユーザ空間では正常に動作しています。
>>898 今パケットを扱っているのですが、iptablesのようなことをする場合、
カーネルモジュールを用いて直接バッファにアクセスするメリットはあると
思うのですが・・・。
この場合、検査もカーネル内で行わなければ結局バッファのコピーが発生して
しまうので、結局全てのプログラムをカーネル空間で動かすことになると
考えています。
>>900 $ ls linux-2.6.24-rc1/arch
alpha avr32 cris h8300 ia64 m68k mips powerpc s390 sh64 sparc64 v850 x86_64
arm blackfin frv i386 m32r m68knommu parisc ppc sh sparc um x86 xtensa
>>902 おぉ、カーネル自体は結構portされてるのねん
d
>>901 さすがに kmalloc が NULL を返してるかぐらいはちゃんと調べてるのかな。
kmalloc はあまりでかいサイズを確保するようにはできてない。
ちなみに割当可能なサイズ自体もとびとび。スラブアロケータって聞いたことある?
最近のカーネルには、危険ながらもカーネルを動的に変更(他のカーネルに切り替える)機能があったような気がするのですが、、 気のせいでしょうか? 気のせいでなければその機能名とか、何で検索すれば良いか教えていただければと思います。
kexec? 切り替えっつーより高速リブートだが
907 :
905 :2007/11/12(月) 10:43:52 ID:m7aFvUL1
>>906 あぁ、それです。(kから始まることしか覚えてなかった..orz)
ありがとうございました。
kexecってakmemとどう違うの?
対応アーキテクチャが違う
910 :
891 :2007/11/12(月) 21:38:56 ID:5oNK0r5U
>>904 チェックはしています。
kmallocも2.6は32MBまで確保できるようで、とりあえず十分です。
スラブアロケータは今回の事で調べなおしました。
素人目に見て問題無く確保できていそうなので、動かない原因は別にあるのかと思い始めています。
と、ここで更に謎な現象が発生しました。
途中までは正常なのですが、ある場所を過ぎるとprintkが同じ値しか出力しなくなります。
その「ある場所」でprintk("hoge\n");を実行しているとその後はプログラム中のどこでprintkを
してもhogeが出力され、printkをしていないと常に一定の謎のバイナリが出力されます。
メモリ破壊が起きるとこんな現象が現れるものなのでしょうか…?
カーネルとは関係ないかもしれませんが・・・ このスレは強者揃いと見たので質問させていただきます。 Redhat ES3で/etc/security/limits.confを編集して ファイルディスクリプタの数を増やしたのですが、rootのみ初期値の1024に制限されてしまいます。 どこか他の設定ファイルで制御されているのでしょうか。 pamの設定ファイルなどを調べましたがどうしても解りません。 ご教授宜しくお願い致します。 # /etc/security/limits.conf --- 中略 --- #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 * soft nofile 11000 * hard nofile 11000
limit?
>>897 ||| || |
||| || |
ガッ h
∧冊冊冊冊
( `Д´)つ
/ _ノ⌒⌒⌒`〜、_
( ̄⊂人 //⌒ ノ ヽ)
⊂ニニニニニニニニニニニニニニ⊃
IPパケットを受信したときにルーティングできなかったパケットを取り出したいのですが、簡単な方法があるでしょうか? 今まではNF_IP_LOCAL_INでパケットを見て自分宛でなければルーティングできなかったと判断するつもりだったのですが、自分宛しか入ってこないことが実験してわかりました。 NF_IP_PRE_ROUTINGで全てのパケットについて自前でルーティングテーブルを検索してヒットするかを見るのはあまりやりたくないのですが、、、
916 :
login:Penguin :2007/11/13(火) 21:43:13 ID:kR4e7lYd
再構築したカーネルで起動すると lsmodにそれらしいものがなく、 ネットワークや音が鳴らないのはどうして? menuconfigでそのあたりは初期設定のままビルドしたんだが・・
moduleにしてないから?
919 :
login:Penguin :2007/11/13(火) 22:04:48 ID:kR4e7lYd
$ sudo apt-get install linux-source $ cd /usr/src $ sudo tar jxvf linux-source-2.6.20.tar.bz2 $ sudo ln -s linux-source-2.6.20 linux $ cd /usr/src/linux $ sudo cp /boot/config-2.6.20-15-generic .config $ sudo make oldconfig $ sudo make menuconfig $ sudo make-kpkg clean $ sudo make-kpkg -initrd --revision=test1 kernel_image kernel_headers $ cd .. $ sudo dpkg --install *.deb これでmenuconfigでは初期設定のまま(ubuntuデフォルト)ビルド。 GRUBでビルドしたカーネルを選んで起動したものの、 ネットワークとサウンドが認識せず。
ネットワークとサウンドのドライバを選ぶ。
>>910 >スラブアロケータは今回の事で調べなおしました。
すごく簡単に書いてあるが、単にググっただけか?
>メモリ破壊が起きるとこんな現象が現れるものなのでしょうか…?
起こりうるね。printkで無茶なことしてんじゃねえの。
gdgdなやり取りは無駄だから、コード晒してみ。
>>910 仕事だったら、さっさとやめたほうがいいよ。
泥沼が見える。
趣味なら、がんばれ!
923 :
915 :2007/11/14(水) 01:03:17 ID:/U9s+6Wf
>>918 ほぼルータなんだけど自分がルーティングできなかったパケットは別のルータに渡したい。
が、そのままじゃなく加工して渡す必要がある。
>>923 ipコマンドでip rule とか ip route tableとかで出来るような気がする
tcコマンドも必要かな
iptableもごにょごにょいるかな
もっと簡単にできるかな?
>>923 IPネットワークの仕組み上「自分がルーティングできなかったものをありのまま
他人に転送する」のは望ましくないよ。データリンク層のアドレス(今回の場合は
PCのEthernetアドレス)とネットワーク層のアドレス(ソースIPアドレス)が食い違う
ことになるので、実質偽装パケットを送信しているのと同じ意味になってしまうため。
ICMP net unreachableをPC側に返してPC側に別のルータを使うよう指示するのが適切。
(というかほとんどのルータにはこの仕組みが備わっているが)
926 :
915 :2007/11/14(水) 09:06:44 ID:S7Fe9j2F
>>924 ありがとう。調べてみます。
>>925 言ってることは間違ってないけど、そんなレスは欲しくない。
別の言い方をするとデフォルトルートに渡す時はパケットを加工(例えばIPカプセル化)したいという趣旨。
あるセグメントを出るにはそのルータを使うしかなく送信元のPCにICMPを送ってもどうしようもないという場面を想像してください。
>>926 加工が具体的になんなのか知らんが、それをその経路とは関係のないルータ側で
やらせようというのであればますますおかしな話だぞ。
ネットワークまわりを大きく誤解してると思われ。
928 :
915 :2007/11/14(水) 09:31:38 ID:S7Fe9j2F
>>927 俺の文章が悪いのか?
加工するのは経路上のルータ。
同じセグメント内の別のルータに中継するのではない。
>>926 普通そういうことやるときはそういうtunnel end pointの仮想インターフェース(例えばipsecのインターフェース)
を作ってそこにデフォルトルートを指しておくってしないか? っていうか、他のルーターに投げるのだったら
ルーターがサポートする標準的なカプセル化をするんでないの? それは既にLinuxで実装されてない?
930 :
login:Penguin :2007/11/15(木) 14:44:44 ID:3X1sLgjt
質問です。 カーネル内で任意のユーザプロセスのメモリ空間を読み書きするにはどうすればよいのでしょうか。 自分なりに調べてみた結果、__copy_from_user関数や__copy_to_user関数ではそれを呼び出した時点 でプロセッサを握っているプロセスのメモリしか触れないようでした。 まったくとんでもな質問をしているかもしれませんが、どなたかご教授下さい。 よろしくおねがいします。
xご教授 ○ご教示
何を作るつもりなのかな?
>>933 ユーザプロセスのメモリを壊してどうなるか観察したいのです
そういうことはひっそりとやりなよ。足つくぞ。
>>935 いや別に悪いことをするためではないですw
>>ID:3X1sLgjt 教授してもらいたいなら授業料払ってもらおうか。 前期12回後期12回で授業組むぞ。 ということになるが、よろしいのかな?
>>930 /proc配下を扱っているコードを参考にすればいいと思う。
なんでこう「教授する」という言葉を知らないで 自分が正しいと思い込んでる厨が未だに沸くんだ? しかも質問にも答えないで誤った揚げ足取りとは 頭がおかしいとしか思えん
自演乙
普通に、知ってる方いたら教えてください、でいいだろ 教授だの教示だのとw
>知ってる方いたら教えてください
>ご教授ください
>ご教示ください (等)
↑各個人の好みで好きなの使えばいいだけだろ。
>>943 みたく主観押し付けは見ていてアホなだけ
ああいう場面では教授は間違い。「教え授ける」のだからまさに前期12回後期12回だ。 教示の方がまし。「教え示す」程度の指導をさす。 しかし「知ってる方いたら教えてください」でいいと思うがな。 意味も分かっていない言葉をなんとなく使うよりは。
や、なんか「ご教授」が間違ってると思ってる人が 最近増えてるみたい
>>932 に全部書いてあるだろ。
そんなひっぱるネタじゃない。
つーか、
>>932 は本当にリンク先を読んだのか、頭が悪いのか、何かの冗談なのか
ヒント:今夜も大漁
同じハードに刺さってるNIC間で kernel内でパケットコピーしたんだけど どうやってsk_buff取ってくればいいのかな?
64bitLinuxでページサイズ変更を変更する場合どっちがいいの? (kernel 2.6.19以降限定) huge page カーネル再構築 どっちだろう?
2.6.26.1 で apache 2.2.6 が oom-killer くらって 死ぬことが一週間で二度あったんだけど、これ 2.6.26.2...8 で直ったんだろか?changelog 真面目 に読まないで質問ごめそす。
もう26まで行っているのか!
2.6.23.x の間違いでありんす。
吉原でもLinuxが使われているとは!
45478794 Nov 16 16:22 linux-2.6.23.2.tar.bz2 45478886 Nov 16 16:28 linux-2.6.23.3.tar.bz2 45476064 Nov 16 16:41 linux-2.6.23.4.tar.bz2 45475400 Nov 16 17:29 linux-2.6.23.5.tar.bz2 45477413 Nov 16 17:35 linux-2.6.23.6.tar.bz2 45477172 Nov 16 17:45 linux-2.6.23.7.tar.bz2 45480538 Nov 16 18:16 linux-2.6.23.8.tar.bz2
>>955 鳥はGNU OIRAN/LINUXですか
>957 確かに驚いた。 2.6.23.1から2.6.23.8まで一度に上がったからね。
なんか2.6.22.14らしいが、.13あったっけ? 適当にまとめて出すようになるのかねえ。
>>957 開発陣営のあせりが伺える...............
きっと、いいことがあったんだよ。
>964氏 情報ありがとうございます。
2.6.23.xは目に見えてデスクトップの応答性が劣化してるよな 昔みたいに裏でmakeしてるだけでカクカクしやがる 2.6.24ムァダー?
Linus発狂したかとオモタ>2.6.23.[2-8]
Linus沸点低いからあんまり苛めるな
次は素直に2.6.23.9らしい。
>>966 CFSのせいかな?
.24(年末あたり?)でグループスケジューリングがマージされても、グループをちゃんと設定しないとだめな気はする。
ページサイズってどうやって大きくするぉ?
gitの追っかけやってたら、radeonのDRIが効かなくなってしまった。
>>974 fedoraのrawhideのdrmのパッチがよくなかったみたい。
1coreのcpu使ってる場合って、smpのサポートはずして再構築したほうがいいの?
趣味の問題じゃないかい。 SMP用のコードがなくなるので微妙に速くなるはず。 そろそろ次スレを用意したほうがいいのかな?
>>977 、
>>978 レスサンクス!
となると、CPUの数によって再構築する意味ってあんまり無いってことか。
ありがとう、勉強になった!!