AI駆動の検査がLinuxから27,646行を削り始めた
AIとファジングが30年前のドライバにバグ報告を量産し、維持コストが跳ね上がっている。アンドリュー・ランが18ドライバ・27,646行を削るパッチを提出した。「残せるから残す」をやめた判断だ。
AIとファジングが30年前のドライバにバグ報告を量産し、維持コストが跳ね上がっている。アンドリュー・ランが18ドライバ・27,646行を削るパッチを提出した。「残せるから残す」をやめた判断だ。
27,646行が一気に落ちる
Linuxカーネルのネットワークメンテナ、アンドリュー・ラン(Andrew Lunn)が4月21日、ISAバスおよびPCMCIA時代のイーサネットドライバ18本をまとめて削除するパッチシリーズ(pull request前段の提案群)をnet-nextメーリングリストに投じた。
対象は3com、AMD、SMSC、Cirrus、Fujitsu、Xircom、8390系列の各ドライバで、合計40ファイルが書き換わり、27,646行 が削除される。追加は1行もない、純粋な「引き算」のパッチだ。
ランは投稿の冒頭でこう説明している。
「これらの古いドライバは、最近までメンテナンスの負担になっていなかった。だが今は、AIやファザーを使う新参者が増え、問題を見つけてくるようになった。その結果、メンテナの仕事が増えている。これらの古いドライバを直すことは、ユーザーがいるのかも明確でない以上、ほとんど意味がない」
誰も使っていないコードに、AIが見つけた欠陥だけが積み上がっていく。これが、30年近く惰性で維持されてきたコードをついに外す理由になった。Linux側から「残せるから残す」という前提が降りたのは、静かだが相当に大きい変化だ。
問題は「バグ」ではなく「検査の経済性」
今回の話の本質は、ドライバにバグがあるかどうかではない。AIとファジングという検査手段の経済性が、ここに来て別物に変わった。
ファジング(fuzzing)は、ランダム化された入力を大量にぶつけて異常挙動をあぶり出す自動テスト手法で、以前から存在していた。だが、ここにLLMベースのバグ検出やパッチ生成が加わり、さらに「AIを手に持った新規コミッタ」が流入し始めたことで、結果的に古いコードが割を食う構造になっている。
古いコードは仕様のあいまいさや境界処理の甘さを抱えがちで、自動検査から見れば「入れ食い」になる。現役ユーザーがいないドライバでも、検査器にとってはただのC言語コードだ。AIは遠慮しない。
現役メンテナのグレッグ・クロア=ハートマンも、3月の取材で「AIが本物のバグを見つけ始めている」「無視できない道具になった」と認めていた。その流入量が、カーネルという大規模プロジェクトでも吸収しきれない領域に波及し始めたのが今回の件だと考えていい。
ランが今回外そうとしているのは、大半が「前世紀のハードウェア」向けドライバだ。投稿では「ほとんどが前世紀、いくつかは2001年か2002年あたりのものだ。まだ使われているとは考えにくい」と書かれている。ISA・PCMCIAという接続規格そのものが、現代のPCではほぼ見かけなくなっている。
「まだ使っている人がいたら、戻せるようにしておく」
興味深いのは、ランが「一気に全削除」を避けている点だ。
「ただし、1ドライバあたり1パッチずつに分けて削除する。もし誰かがまだそのハードウェアを持っていて、最新カーネルで動かしたいと思い、ドライバのMaintainer役を引き受ける気があれば、戻せるようにしておくためだ」
Linuxカーネル開発の典型的な作法だが、AIによる検査圧力とセットで見ると意味合いが変わる。削除はドライバを葬る行為ではなく、ユーザーの顕在化を促す仕掛けでもある。声を上げた人がいれば、その人が次のメンテナとして戻す。声が上がらなければ、このまま静かに役目を終える。
誰かの沈黙は「もう要らない」のサインになる。使われているかどうかが最後まで分からないコードを抱え続けるコストを、Linux側がAI時代の物差しで再計算し始めたわけだ。
サブシステムへの波及
ネットワーク以外のサブシステムでも同じ判断が出てくる可能性はある。SCSI、サウンド、古いビデオ周り──「たぶん現役ユーザーがほぼいない」領域は複数ある。AI駆動の検査は仕組み上、対象サブシステムを選ばない。
ここにはトレードオフがある。古いハードウェアでLinuxを動かすユースケース(産業機器のレガシー運用、ホビー用途、博物館的な環境)は、小さいが確実に存在する。彼らにとって「新しいカーネルでも古い機械が動く」というのは、Linuxが長年提供してきた静かな約束の一つだった。
その約束が、AI時代の「検査の経済性」という新しい変数によって引き直されている。今まで「なんとなく残っていた」コードが、明示的に「残す判断」を迫られる時代に入った。
誰も使っていないものは、見えない
Linuxカーネルが34年間蓄積してきたコードには、「もう誰も触っていないが、誰も消していない」層が確実に存在する。これまでその層は、ディスク上で静かに眠っていれば問題がなかった。
AIとファザーは、その層を起こす。起こされた以上、誰かが対応しなければならない。だが対応する価値が、もう残っていないかもしれない。ランの18パッチは、その判断を初めて正面から降ろした事例として記録されるはずだ。
AIがコードを読むようになった世界で、読まれるに値しないコードは、存在を許されなくなる。それは効率だが、同時にLinuxの「長い互換性の尻尾」を切ることでもある。どちらを取るかの選択が、これから他のサブシステムにも順番に回ってくる。
参照元