Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (4,208)  
HandBrake Japanese Language Version  (3,353)  
CrystalDiskInfo  (1,743)  
CotEditor  (1,120)  
CrystalDiskMark  (866)  
Boookends  (788)  
SMPlayer  (642)  
えこでこツール  (599)  
Tera Term  (595)  
10  FFFTP  (579)  
11  Cabos  (530)  
12  BathyScaphe  (494)  
13  ffdshow  (481)  
14  MergeDoc  (464)  
15  ギコナビ  (438)  
More >>

最近ブックマークされた記事

OLS 2日目:カーネル開発、ファイルシステムについての講演

2007年07月04日 10:51 David-'cdlu'-Graham(2007年6月29日(金)) 1 2
 第9回年次Ottawa Linux Symposiumの2日目は、「Linuxカーネル開発――どのように、何を、どのようなスピードで、誰が?」と題されたGreg Kroah-Hartman氏による講演で始まった。講演は400人を越える聴衆で超満員の大部屋で行なわれた。

 Kroah-Hartman氏はセッション部屋後方の壁に大きなポスターを貼っていた。そのポスターには、現在の開発カーネルの開発者とパッチレビュアとの間の関係が線で結んで示されていて、ポスターに自分の名前を見つけたら是非そこに自筆のサインをして欲しいと書かれていた。

 Kroah-Hartman氏は、開発の組織階層図を示して講演を始めた。示された開発組織階層図は、本来そうなっているはずの階層であり、パッチを提出するカーネル開発者たちが最下位層にいて、その上にそれらのカーネル開発者たちからパッチを受け取る600人のドライバ/ファイル・メンテナがいて、さらにその上にドライバ/ファイル・メンテナからパッチを受け取るサブシステム・メンテナがいて、その上の最上位層にサブシステム・メンテナからパッチを受け取るAndrew Morton氏か、場合によっては直接Linus Torvalds氏がいる、ということが示されていた。

 Kroah-Hartman氏の説明によると、Andrew Morton氏はもともとTorvalds氏が開発版ツリーに取り掛かる間、安定版ツリーをメンテナンスする担当として選ばれたのだが、Morton氏はもともとMorton氏のサブツリーとなっている-mm(メモリ管理)という名前のツリーにあらゆる非安定パッチをマージしていて、事実上Torvalds氏が安定カーネルツリーをメンテナンスするようになっているという。Kroah-Hartman氏は、Torvalds氏もMorton氏も決してこの事実を認めないだろうが、現在のところは当初の意向とは正反対のこの状況は、非常にうまく働いていると述べた。

 パッチが前述したような組織階層を上に向かって提出されて行く際には、受け取ったパッチをレビューして上方に提出する人が必ず、各々の名前をパッチのsigned-off-byフィールドに付けるようになっている。Kroah-Hartman氏が印刷して張り出していた大きな図は、そのようなsigned-off-byフィールドの関係から作成されたものなのだが、その図を見ると組織階層内の実際のやり取りは必ずしも組織階層図通りに行なわれているわけではないことが分かる。

ols2-1-thumb.jpg

 Kroah-Hartman氏によると、安定カーネルのリリースは約2.5ヶ月ごとに行なわれているという。2.6.11カーネルのリリース以降のこの2.5年の間、カーネルに対する変更は平均して1時間に2.89パッチという速度で行なわれていて、そのペースはこの2年半の間ずっと維持されているとのことだ。また、2.6.19カーネルだけについて言えば、1時間に4つの変更が行なわれるというペースだったということをグラフで示した。

 また2.6.21カーネルには820万行のコードが含まれているが、毎日(休日なく)の平均で、1日に2,000行が追加され、1日に2,800行が変更されているのだという。なお数字の実際の値については議論の余地があるものの、同氏自身の印象としては比較的現実を正確に表わしている数字のように感じると付け加えた。

 このような数字はWindows Vistaと比較するとどうなのかという質問に対してKroah-Hartman氏は、VistaのカーネルはLinuxよりも小さいが、ドライバがまったく含まれていないため、正確に比較することは不可能だと答えた。また各マイナーリリースで行なわれた変更はLinux 2.4が2.6になった際のカーネルの変更と同じくらいではないだろうかという質問に対しては、同じではないとしたが、当時と同じ量の変更は今のペースであれば約6ヶ月で実現することができるだろうと答えた。

 Kroah-Hartman氏はいったんいくつかの質問に答えた後、再び講演に戻った。そして、カーネルの様々な部分(core/drivers/arch/net/fs/misc)を比較してみると、ファイルの数という観点からはarch(アーキテクチャ)ツリーがカーネルの中で最も大きいが、全体に対するサイズで見るとドライバがカーネルの52%を占めているとした。なおそのようなカーネルの6つの部分は、どれも概ね同じようなペースで変更されているようだとのことだ。

 またKroah-Hartman氏は、Linuxは既存のオペレーティングシステムのどれよりもスケーラブルだと誇らしげに言った。Linuxは、USBメモリから世界でトップのスーパーコンピュータの75%まで、ありとあらゆるものの上で稼動しているとのことだ。

 さらに、カーネルの各リリースに貢献した開発者の数についての調査の発表もあった。それによると、2.6.11カーネルには475人の開発者が貢献したという。そして2.6.21カーネルでは800人、まだリリースされていない2.6.22カーネルについては今の時点ですでに920人の開発者が貢献したとのことだ。ただし実際の数字は以上に示した数字よりも多少小さくなるかもしれないとした。その理由は、カーネル開発者は自分の名前のスペルを間違う傾向が高いためだという。とは言え、そのような間違いはできるだけ正すようにベストは尽くした結果の数字だとのことだ。

 カーネル開発コミュニティは急速に成長しているようだ。最初の2.6カーネルツリーでは700人の開発者しかいなかったのに対し、2.6.11から2.6.22-rc5までの2年半では、約3,200人の人々がカーネルにパッチを寄与したのだという。なおそのうち半分の人が1つのパッチを寄与し、1/4の人が2つのパッチ、1/8の人が3つのパッチ……という興味深い統計結果になっているとも指摘した。

 Kroah-Hartman氏は、質ではなく量について言えば、としたうえで、Linuxカーネルへの最大の貢献者はAl Viro氏で、この2.5年間に1,339個のパッチを寄与したのだという。次点はDavid S. Miller氏の1,279パッチ、そしてAdrian Bunk氏の1,150パッチ、Andrew Morton氏の1,071パッチが続くとした。トップ10も発表されたが、さらに長いリストはこのトピックを扱った同氏の白書に掲載されているとのことだ。また現在はカーネル開発者の上位30%が全作業の約30%を行なっていて、このことは、カーネル開発者の上位20%が全作業の約80%を行なっていた2.5年前の状況と比較すると非常に大きな状況改善を表わしていると述べた。

 Kroah-Hartman氏は矢継ぎ早に統計情報を紹介し続け、その次には、パッチを実際に書くのではなく、サインしたパッチの数が多い開発者を紹介した。トップはLinus Torvalds氏の19,890パッチで、次にAndrew Morton氏の18,622パッチ、David S. Miller氏の6,097パッチ、Greg Kroah-Hartman氏自身の4,046パッチ、Jeff Garzik氏の3,383パッチ、そして土曜日のOLS基調講演者でもあるJames Bottomley氏が9位で2,048パッチだった。Kroah-Hartman氏自身は、パッチを読むことが自分の生活のすべてだと感じることもあると告白した。

 次に、カーネル開発を資金的に支援している企業についての話題があった。企業に雇用されていることが知られている人々によって寄与されたパッチの数を元に、当該期間に転職した人を考慮せずに計算したところ、Red Hat社が2位で11.8%、Novell社が3位で9.7%、Linux Foundationが4位で8.1%、IBM社が5位で7.9%、Intel社が6位で4.3%、SGI社が8位で2.2%、MIPS社が9位で1.5%、HP社が10位で1.3%だったという。

 注意深い読者は1位と7位が抜けていることに気付いたことと思う。1位と7位は後から発表された。7位は、学生など、独自に開発を行なうアマチュア開発者として知られる人々で、3.9%の割合だった。そして1位は、各々の寄与は10パッチ以下である、所属のわからない人々であり、この2.5年間のカーネル開発全体の33.2%を占めていた。

 Kroah-Hartman氏は、Linuxを使っているがコントリビュータのリストに名前の入っていない企業は、Linuxの開発に関して何か不満があるなら、自ら開発プロセスに参加するべきだと述べた。また、自社でカーネル開発に貢献しないのであれば、AMD社のようにNovell社(Kroah-Hartman氏の雇用主)などのディストリビュータと下請け契約を結ぶか、より安く抑えるためには、自社のニーズを満たすために必要なカーネルの開発をしてもらうよう個人コンサルタントと契約することなどができると述べた。

 今回もKroah-Hartman氏の講演は、非常に楽しく活気があった。上記のような内容の要約ではそのような様子を伝えきれないのが残念だ。

最終更新:2007年09月03日 17:07