現地時間9月19日からスペインのビルバオで開催されていた「Open Source Summit Europe」で、Linuxカーネル開発者であり、LWN.netの編集責任者を務めているJonathan Corbet氏が、Linuxカーネル関連の新しい点や今後の動きについて発表した。
提供:Photo taken by Bong Grit/Getty Images
ここではその中から、今後の大きな変更点の1つを紹介したい。それは、Linuxカーネルの長期サポート(LTS)が6年から2年に短縮されるということだ。
LinuxカーネルのLTS版には現在のところ、6.1と5.15、5.10、5.4、4.19、4.14の6つがある。これまでであれば、4.14は2024年1月にサポートが終了し、別のカーネルが追加されていた。しかし今後は、4.14とその次の2つのバージョンのサポートが終了しても、別のカーネルがそれに取って代わることはない。
なぜだろうか。Corbet氏は単純なことだと述べた上で、「実際のところそれほど長くメンテナンスする意味がないのだ。というのも使っている人がいないためだ」と続けた。筆者もその点に同意する。Linuxカーネル4.14をどこかの実稼働環境で使用しているのは確かだろうが、その数はさほど多くないはずだ。
しかし他にも理由がある。それは同氏によると、LTSを単にメンテナンスするよりもずっと大きな問題だという。それはLinuxのコードのメンテナーらがバーンアウト(燃え尽き症候群)に陥っているという問題だ。開発者不足が問題というわけではない。実際のところ最近リリースされた複数のLinuxに関与しているプログラマーの数は、新たに加わった開発者約200人を含め、各リリースで平均2000人を超える規模になっている。しかし、コードが適切で、きちんと動作するかをチェックするメンテナーの数となると話は変わってくる。
メンテナーは、作業を遂行する上で数々の障害に直面している。まず、多くのメンテナーはメンテナンス作業に対する報酬を受け取っておらず、日々の仕事をこなしながらメンテナンス作業を遂行している。また、人手不足に加え、バグを見つけるためのファジングツールの採用により、メンテナンスに要する時間が増大している。ファジングツールは便利だが、軽微な不整合も数多く見つけ出してしまうため、それらを検証し、問題がないことを確認していくという作業が必要になってくる。
その結果、どうなるか。Linuxカーネルのファイルシステム開発者であり、メンテナーでもあるJosef Bacik氏の言葉を引用すると、「メンテナンス担当者はバーンアウトに陥っている。(というのも)その数を増やせないためだ」。また、LinuxカーネルのシニアメンテナーであるDarrick Wong氏も、「このままでは立ち行かなくなる。われわれは助けを必要としている」と付け加えた。
メンテナーはどうすれば支援を得られるだろうか。Corbet氏によれば、1つの方法は、メンテナーが自分の雇用主との間で、メンテナーの仕事に報酬を支払ってくれるよう交渉することだという。Wong氏はこんなことを言っていた。「私には、小さな会社や、非営利団体、地方自治体で働いている友人がたくさんいる。友人らは、ここと同じような過労や、蔓延する恐怖や怒り、新しい考えを理解し適応することの難しさといった問題を抱えており、その直接的な原因は、所属組織の売上不足やリソース不足だと考えている。そうした友人たちには、何千億ドルもの売上高を誇る企業で働いている私や職場の仲間に、なぜ自分たちと同じことが起きるのか理解できないようだ」
これは非常にいい質問だ。企業は、Linuxの恩恵を受け続けたいのであれば、Linuxへの恩返しが必要であることを理解する必要がある。
またこれに関連する問題に、Linuxが現在、試験的に「Rust」を取り込もうとしているということがある。これは、さまざまな意味でいいニュースだ。Rustを使えば、Linuxのメイン言語である「C」言語で発生しがちな、あらゆるエラーを排除できるからだ。しかし、メンテナーにとっては負担でもある。30年間C言語で仕事をしてきたメンテナーに、Rustのエキスパートになれというのは無理難題だと言ってもいい。
それに加え、Rustはまだ進化中の言語でもある。Linuxの深いレベルでこの言語を利用するには、Rustに多くのパッチを当てる必要がある。これは、LinuxでRustをうまく使えるようにするためには、その間をつなぐためのコードが大量に必要になることを意味している。
また、Rustを好まないLinuxカーネル開発者もいる。中には、「(Linuxカーネルの中でも)しっかり設計され、しっかりと書かれた部分には、何年もの間メモリー安全性の問題が発生していないものがあっても不思議ではない。そうした大変な仕事をしてきた人たちに、改善策としてRustを提示するのは侮辱だ」と話す人もいた。
それでもCorbet氏は、RustをLinuxカーネルの中心的な存在の1つに位置付けることを決断する日は近づいていると考えている。同氏は、「最初にユーザーが依存する機能をマージしたとき」がその日になるだろうと述べた。
その日は近づいている。Corbet氏によれば、Linuxカーネルのコードに対するRustベースの重要な追加機能が3件控えているという。「PuzzleFS」の実装、読み書きが可能な「Plan 9」のファイルシステムサーバー、そしてニュースの見出しを飾るであろう、Appleの「M1」チップ用GPUドライバーだ。実際、「OpenGL ES 3.1」に準拠した、AppleのM1/「M2」チップシリーズのGPU向けに作られた最初のLinuxドライバーが2023年8月下旬に登場している。こうした作業が順調に進んでいるため、もしRustが恒久的にLinuxに採用されなければ、非常に驚くだろうとCorbet氏は言う。