SVX日記
2005-11-10(Thu) Linux Kernel Conference 2005
今日はLinux Kernel Conference 2005の日である。青山でLinuxのカーネルに対する講義みたいなのを聴講しに行く。本来は1セッション8,000円という御大臣な講義なのだが、オイラの会社はスポンサー。モロに仕事の一部なので、個人負担はなしである。我ながら、なんとウラやましい。
第1セッションは「Linuxカーネル入門−ブロックI/OとI/Oスケジューラ」。前半は軽くカーネルの役割に触れた後、後半ではブロックI/Oをスケジュールする機構についてのネットリした解説だ。簡単に言えば、ランダムに発生する読み書き要求を、ハードディスクのヘッドが効率よく読み書きできるように並べ替えるのがI/Oスケジューラである、という話。4タイプほどの方式を次々と説明し、なるほどと納得しながら聴き入っていたが、最後の最後で「フラッシュメモリや高度なRAIDなどでは、デバイスに任せたほうが効率がいい」なんて説明が入ってゲンナリ。そんなん言い始めたら、最近はIDEのハードディスクでもたんまりとキャッシュが載っているじゃん。なんだか、すべてが無駄な努力のような気がしてきた。
第2セッションは「組込みLinuxにおけるカーネル2.6の開発とデバッグ」。Linuxは各種のCPUに対応するマルチプラットフォームOSである、なんていう話から始まって、ICEなどを使ったデバッグ方法の話なんかを聞く。ところが、このセッションの後半になって、カーネルソースに含まれているMips用などのIA-32用以外のコードは、まともにコンパイルすらできないということを言い出してガックシ。本人すら「カーネルパッケージに含まれているコードはトカゲのシッポ程度の意味しかない」なんて言い出してズッコケてしまった。つまり、組み込み用途に使われるような、小規模のCPU向けのカーネルコードは、手を入れずにはマトモに動かないってコトだ。なんてこったい。
第3セッションは「Xenによる仮想マシン環境構築」。Xenという仮想OSプラットホームについての特徴説明から始まるが、何しろ話が冗長だ。インストール方法なんてイチイチ説明する必要なんてないだろ。だいたい、coLinuxにハマっているオイラにはLinux on Linuxの意図がいまいち理解できない。特長として1台のマシンを複数台にみせたり、メモリやCPUを効率的に割り当てるなどの流動的な運用が可能であることはわかるが、デモの時に「あー、うまくいってよかった、よくコケるんだね」なんていわれた日には、これまたひっくり返ってしまう。いくら流動的な運用ができても、そんなもん使い物になるかよ!! まぁ、未来に期待するのは悪いことじゃないから、それは否定しないけどさ。
第4セッションは「スピンロックから始めるLinuxカーネル入門」。若手向けのセッションであるため、オイラには参加権がない。ココだけは無料セッションだし、内容がかなりオモシロそうなだけに、参加したい……というか、参加できるものと思って、会場に資料を置いてきてしまった。席に戻る段になって気がついたので「会場に忘れ物をしまして……」なんていいつつ、そのまま聴講してしまった。あひゃひゃ。でも、内容は一番有意義だったかな。CPUのキャッシュの話から始まって、CPU間のロックの例を交えつつ、カーネルのスピンロックのコードをその場で仕上げていくかのような構成。ロックをトイレの個室のカギに例えたりして笑いを取りつつ、この構成力には舌を巻いた。すげぇ、オモシロかった。しかし、複数のCPUのキャッシュって、ハード的に排他機能が付いているのね。今まで、他のCPUのキャッシュの内容を知らずにどうやってマルチCPUで動いているのかとても不思議だったんだよね。そりゃ、ハード的な排他機構が必要だよな。もしかしたら、排他機構が付いている=マルチプロセッサ対応CPUというコトなのかな。別途、最近になって知ったMMUのページングの仕組みと合わせて、ちょっと近代CPUに詳しくなって嬉しいぞ。なにせ、この仕事を始めるまで、オイラの中の最新CPUはMC680EC30だったからねぇ……。