7月25日、Linuxカーネル開発を中心に、日本のLinuxコミュニティの現状や課題について考えるシンポジウム『Linuxカーネルシンポジウム 2002 in Yokohama』が、OSDLジャパンラボで行なわれた。講師による講演だけでなく、後半にはすべての参加者によるディスカッションも行なわれ、仕事や趣味でLinux開発に携わっている多くの参加者からさまざまな意見が出された。
講演
10時半から開始されたシンポジウムでは、最初にOSDLジャパンラボ ラボディレクターの高澤真治氏が「本日のシンポジウムの目的は、最後に行なわれるディ スカッションです」と挨拶した。
OSDLジャパンラボ ラボディレクターの高澤真治氏 |
引き続き、独立行政法人産業技術総合研究所の新部裕氏による基調講演が行なわれた。
独立行政法人産業技術総合研究所の新部裕氏 |
新部氏によると、プログラミング作業は規模と作業量やコストが比例しない、足場になったものが障害となることがあるなど、「たての穴を掘る」という作業に似ているそうだ。いずれも深く掘るほど面白いが、穴の外側と信頼関係がないと危険であり、そのためプログラミングにも社会性が必要であるという。その上で、利用、修正、研究、再配布が自由なフリーソフトウェアは公正な競争と組織を越えた強調を生み出すものであり、経済ベースでははかることのできない社会的な価値を生み出しているのではないかという考えを示した。
新部氏のプレゼンテーションは、Dreamcast上でLinuxを動作させて行なわれた。 |
また、最近新部氏自身が関わっている、未踏ソフトウェア創造事業やフリーソフトウェアイニシアティブジャパン、Youngprogrammers.netなどを紹介。今後の展望として、国際的な競争力のある人材を育てること、ソフトウェア開発プロジェクトを持続可能なものにすることが必要であるとし、そのためにもソフトウェアの自由が重要であり「いいソフトウェアを作ろう、そのために自由というグランドルールを」と参加者に呼びかけた。
昼食を挟んで、ミラクル・リナックス(株)取締役の吉岡弘隆氏が、カーネル 2.5の紹介などを行なった。
ミラクル・リナックス(株)取締役の吉岡弘隆氏 |
カーネル 2.5に搭載された新機能は非常に多く、吉岡氏はその中から特に、スケーラビリティの向上に関わるスケジューラ、I/Oサブシステム、NAPIを取り上げ、具体的に紹介した。
従来のスケジューラは、RUNキューが1つしかなく、システム全体で線形走査していたため、SMPシステムでもRUNキュー走査のため並列処理ができない、タスクのCPU間移動によるキャッシュバウンスの発生、プロセスの多いシステムではスケジューラ自体のコストが高くなるなどの問題があった。カーネル 2.5で実装されたO(1)スケジューラは、CPUごとにactive/expiredキューを持つことで、キューをスピンロックするための待ちがなくなる、タスクのCPU移動がなくなるなど、プロセス増加に伴うコストを削減することが可能になっている。
O(1)スケジューラの動作。CPUごとにキューを持つため、プロセス増加によるコストを抑えることが可能になるという。 |
I/Oサブシステムでは、これまでI/Oリクエストロックが1つしかなく、I/Oリクエストが増加するとブロックI/O層でロック競合が発生し、I/O性能が低下するという問題があった。カーネル 2.5では、I/Oリクエストブロックを細分化し、複数デバイスを使用するときのスケーラビリティが拡張されている。また、デバイスの特性に合わせたブロックI/O層の処理変更なども行なわれ、DBなど独自のI/Oロックを持つアプリケーションに対してはエレベータアルゴリズムを使わないなどの拡張が行なわれているようだ。
新しいI/Oサブシステムの動作はこの図のようになる。リクエストブロックが細分化されて各デバイスに割り当てられているため、デバイスの特性に合わせた処理も可能。 |
ネットワークI/Oについては、帯域幅の増加やネットワークデバイスの高速化などにより、割り込み処理が増加してシステムに影響を及ぼすことがあった。カーネル 2.5で採用されたNAPIは、パケット処理方法を変更し、ネットワークカードからの割り込みを禁止することでそのほかの処理にもリソースを割くことを可能にする。
NAPIの動作。ネットワークカードからの割り込みを禁止することで、CPUのリソースをすべて割り込み処理にとられてしまうことを防ぐ。 |
カーネル開発の今後については、昨年の『Linux Kernel Summit』で議論された項目の多くがカーネル 2.5に取り込まれているといい、今年の『Linux KernelSummit 』で議論された項目は次期バージョンに取り込まれるのではないかという。また、開発者自身の目標設定やユーザーの意志決定のためにもロードマップを用意する必要があるのではないかという考えを示した。