Linuxカーネルの"依存関係地獄"解消目指す「Fast Kernel Headers」 - ZDNet Japan

Steven J. Vaughan-Nichols (Special to ZDNet.com) 翻訳校正: 村上雅章 野崎裕子

2022-01-12 08:30

  • Here's my content

  •  数十年にわたって修正が加えられ、乱雑さという垢が蓄積されたコードをきれいにするというのは気の弱い人がやる作業ではない。しかし、Linuxのカーネル開発における第一人者であるIngo Molnar氏は自らの持てる力を最大限に傾け、オープンソースのLinuxカーネルに秩序を取り戻そうとしている。

     Linuxのソースコードは2020年に2780万行に達した。それ以降もその規模は増大する一方だ。Linuxは、30年が経過している他のソフトウェアプロジェクトと同様に、その長い歴史の中でソースコード中にかなりの量の垢をため込んでいる。Linuxカーネルの上級開発者であるMolnar氏はこの問題を根本的なレベルで解決するための初撃となる数カ月におよぶ作業の成果として、「Fast Kernel Headers」(カーネルヘッダー高速化)プロジェクトをリリースした。

     その狙いは何だろうか。答えは、Linuxカーネルのヘッダー階層と、ヘッダーの依存関係を全体的に整理し、作り直すということに他ならない。Linuxには多くのヘッダー、すなわち.hファイルが存在している。厳密に述べるとLinuxカーネルのinclude/とarch/*/include/というファイル階層内におよそ1万の主要な.hヘッダーが存在している。Molnar氏は「過去30年強でこれらヘッダーは膨れ上がり、われわれが愛情を込めて『依存関係地獄』と呼んでいる、複雑で痛みを伴う相互依存性のかたまりになった」と説明した。

     こういった状況の中、Molnar氏は2200におよぶコード修正のコミットを提案している。これは大量のコミットだ!なぜこれほどまでに多いのだろうか。同氏によると、この整理整頓プロジェクトを立ち上げた2020年末には、これほど多くの混乱がコードに潜んでいるとは気付いていなかったのだという。同氏は次のように記している。

    次ページ以降の閲覧はCNET_IDへのログインが必要です。一度ログインし特別な設定をしない限りその後一定期間ログインせずに記事を閲覧することができます。CNET_IDの登録は約1分程度で簡単に登録でき、最新情報をメールマガジンとして受け取ることもできます。

    ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

    メールマガジン購読のお申し込み

    関連記事