Ottawa Linux Symposium 10:初日の報告
カーネル:10年間を振り返る
今年の基調講演は、ここ数年に渡って担当してOLSの定番講演者となっていたLinux Weekly NewsのJonathan Corbet氏に代わって、Matthew Wilcox氏が担当した。Wilcox氏の自己紹介によると同氏は1998年以来のカーネルハッカーで、Genedata、Linuxcareを経て現在Intelに勤務しているとのことだ。
Wilcox氏は部屋のOHPや音声システムと数分間格闘した後に講演を開始して、Linuxカーネル開発の歴史について簡単な説明をした。Linuxを常用しているユーザであればほとんどの人が知っている通り、2.6カーネルツリーの開発は相当の年数に渡って行われてきた。これは以前とは異なっていて、以前は、2.0.x、2.2.x、2.4.xというように偶数で示されるのが安定リリース、2.1.x、2.3.x、2.5.xというように奇数で示されるのが開発リリースとなっていて、カーネルのマイナーリリースはほぼ毎週、新しい安定リリースは約3年ごとというペースでリリースが行われていた。一方2.6.xカーネルでは、各バージョン自体がそれぞれ安定リリースになっていて、約3ヶ月ごとにリリースされるようになり、各バージョンは以前のメジャーリリースの各バージョンと比べれば劇的な変更は比較的少なめになった。
開発の歴史についての説明の後は、カーネル開発自体が行われる方法についての説明があった。カーネルの各バージョンには短いマージ期間があって、その期間中に何万という数のパッチがgit経由で提出される。gitとはLinus Torvalds氏が特にLinuxカーネルのために作成した大規模でスケーラブルなソースコード管理ユーティリティだ。gitを使用する主な理由は、全員が同じツールを使用するということだとWilcox氏は説明した。類似ツールとしては他にMercurialもあるが、統一性という点でgitの方が好ましく、またCVSはカーネル開発のためにはスケーラビリティが十分でないとのことだ。
「そもそもなぜカーネルを変更する必要があるのだろうか?」とWilcox氏は問いかけて、新機能が必要になること、新しいハードウェアが生まれること、新しいバグが見つかることをその理由に挙げた。そのため変更の必要性は常にあるのだという。また、10年前にはマルチプロセッサシステムはまだ高価でLinuxでのサポートも不十分だったが、今では複数のプロセッサコアを搭載していないコンピュータを入手する方がむしろ困難なくらいだと指摘した。さらに現在Linuxは、世界のスーパーコンピュータ「トップ500」のうちの427のシステムからIBM製の腕時計に至るまでで使用されていて、この10年間でカーネルが2.3から2.6.26になるにともなってLinuxがサポートしているハードウェアアーキテクチャは約6種類から約25種類にまで増えたのだという。
Linuxのこの10年間に行われた変更の具体例として、カーネル1.2ではSMP(Symmetric Multi Processing)がまったくサポートされていなかったことがある。SMPのサポートはカーネル2.0で始まった。カーネル2.2でスピンロックが導入されて複数のプロセッサが同じデータ構造を効率よく扱うことが可能になった。カーネル2.4では改良されたスピンロックがさらに多く導入されて、カーネル2.6では別のプロセッサによる使用に影響を与えることなくプロセッサがデータ構造に書き込むことができるようになった。
ワイヤレスネットワークから、SATAハードディスクのサポート、ファイルシステムの変更、セキュリティ、仮想化に至るまでLinuxカーネルの向上点を詳しく議論した後、最近のカーネルリリースでの変更点や近い将来に期待できることの概要を説明しているときに時間が来たので、Wilcox氏は講演を締めくくった。
昨年のCorbet氏による講演以来の変更点としては、2.6.23でコマンドの長さが無制限になったこと、2.6.24でメモリ断片化抑制機構が搭載されたこと、2.6.25で割り込みできないスリープ状態のプロセスをkillできるようにするためのTASK_KILLABLEが追加されたこと(ただしこれについてWilcox氏はまだ不完全なので協力を募集しているとした)、2.6.26で読み取りのみ可能なbind mountが追加されたことがあるという。
Wilcox氏によると9月に開催予定のKernel Summitでは非同期操作についての議論が行われるようだ。また今後は特に、Btrfs、SSDのサポートの向上、SystemTapなどの開発が注目されるだろうとのことだ。
Linuxでのワイヤレスネットワークのサポート
次に出席したのはRed HatのJohn Linville氏による「Tux On The Air: The State Of Linux Wireless Networking(Tux On The Air:Linuxワイヤレスネットワークの現状)」というセッションだ。Linville氏は自身をワイヤレスLAN担当Linuxカーネルメンテナだと紹介した。講演の冒頭でJeff Garzik氏の「ユーザはハードウェアがちゃんと動いて欲しいだけだ」という言葉を引用して、ワイヤレスがLinuxの弱点であることを認めた。
Linuxのワイヤレスドライバは概してワイヤレスネットワークスタックをドライバの中に直接構築しているため、ドライバ間でかなりの量の重複部分があり、そのためLinville氏が「完全MACハードウェア」と呼ぶものがカーネルには通常のEthernetデバイスのように見えているのだという。「完全MACハードウェア」とはLinville氏の説明によればオンボードのファームウェアを持つワイヤレスハードウェアのことだ。一方、最近のワイヤレスデバイスの多くはWinmodemsに習って送受信のための基本的なハードウェアだけを提供していて、実際の作業はすべてカーネル内のドライバが行うようになっているのだが、それらについては「SoftMAC」と呼んでいるのだという。
SoftMACのワイヤレスデバイスドライバは、2つの別のアプローチが試された後、mac80211という共通のスタックを使用するようになった。 このアプローチは開発者の間で人気が高く、大量の重複コードをなくすことができた。今ではLinux用の新しいワイヤレスドライバはほとんどがmac80211を使用しているそうだ。mac80211は2.6.22 Linuxカーネルツリーに統合された。またmac80211を使用している特定のデバイスドライバも、それに続くバージョンのカーネルに統合された。
Linville氏はいくつかのワイヤレスドライバとそれらがmac80211を使用しているかどうかを示した表を見せて、各ベンダのハードウェア用ドライバをLinuxコミュニティが開発するための協力関係という観点から、行儀の良いベンダと行儀の悪いベンダとを指摘した。善良な企業市民としてIntelやAtherosなどの名前を挙げた一方で、Broadcomはハードウェアについての情報公開に関して規制問題を懸念してコミュニティとの協力を一切拒絶していると指摘した。そして、Linuxのサポートに取り組むワイヤレスデバイスベンダを支援するために、善良な市民のベンダからハードウェアを購入することで意思表示をしようと何度も繰り返し呼び掛けた。
とは言え残念ながら規制問題については、Linville氏によれば「まったく根拠がないわけでもない」のだという。規制の内容は司法管轄区域によって異なるが、主な懸念事項は、ベンダが特定の規則の下で意図していた以外のデバイス操作を許可するかどうかという点だ。ベンダは廃業をかけて規制に確実に準拠することを求められている。Linville氏は、それにも関わらずいくつかのベンダは、Linuxを率先してサポートしようとしてくれているのだとした。
Linville氏によると規制当局の懸念事項は、ワイヤレスデバイスの通常の利用範囲を少し越えてしまったところでの利用などではなく、例えば軍用航空機システムなどの他のシステムを妨害するような形でのワイヤレスデバイスの利用なのだという。通常のベンダは、そのような妨害行為を行いにくくすれば規制に準拠することになるという考えの下に、ドライバをクローズドソースにして「隠蔽によるセキュリティ」を実施することが規制への準拠につながると考えているのだという。
Linville氏は、ワイヤレスドライバ開発はLinuxカーネル開発の中でも非常に活発な部分だとした。パッチのsign-off-byにLinville氏の名前があれば、カーネルの中でもワイヤレス開発に関するものだと考えることができるが、2.6.24カーネルに統合されたパッチのうちLinville氏がサインしたものは4.3%にあたり、Linville氏がサインしたパッチ数の多さは全体で5位だったのだという。2.6.25カーネルではこの比率は5.0%になり、2.6.26カーネルになる頃にはさらにカーネルの全統合パッチの5.6%に伸びて、全体の4位に該当するとのことだ。
Linuxのワイヤレスサポートについてより詳しい情報はlinuxwireless.orgで得ることができる。
4日間に渡って開催される第10回Ottawa Linux Symposium初日のハイライトをいくらか紹介した。明日もさらに報告する。