投稿者: | 2026年1月16日

誰かが古いLTS(長期サポート版)カーネルを採用していて、新バージョンのLinuxカーネルが登場してから2年後に新バージョンにアップグレードしたら、そのときまで2年前の登場時に変更されていた動作変更に気付けなかったということがあり得ます。

新しいカーネルは少しだけ動作が異なるだけだったため、あなたの特定のアプリケーションが壊れたことには他に誰も気付かなかったのです。そして登場からすでに2年が経過しているため、すでに他のアプリケーションがその新しいカーネルの動作に依存し始めているとすると、「ああ、もう古いリグレッションを修正することはできない。なぜならそうすると、すべての新しいプログラムでリグレッションが発生してしまうからだ」となります。

これを修正するのは困難です。つまり「リグレッションを起こさない」と言うのは簡単ですが、実際にそれを守り続けるのは難しいのです。

私たちは、それを守るために、あるプログラムはこの動作を期待しているが、他のプログラムは新しい動作を期待していると認識して、異なるプログラムに対して異なる動作をする、というような、常軌を逸したことさえ行ってきました。普通のソフトウェアエンジニアなら、そんなことはしたくないでしょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です