私はディストリビューションの仕事をしているわけではありませんが、少なくとも 2 つの理由が考えられます:
- 一部のディストリビューションは、まだメインラインにマージされていないカーネルにカスタム パッチを適用します。これは、カーネルを更新するたびに、パッチによって問題が発生せず、適切に機能することを確認する必要があることを意味します。
- 最新の安定したカーネル リリースにもバグが含まれている可能性があります。信頼性を重視するディストリビューションでは、カーネルを顧客に提供する前に、いくつかのテスト手順/プロセスを経る必要があります。
Linux カーネルのシステム コール インターフェイスは非常に安定しています。しかし、カーネルには、常に互換性があるとは限らない他のインターフェースがあります。
/proc
はほぼ安定していますが、過去にいくつかの変更がありました (たとえば、一部のインターフェースが/sys
に移行しました)。/sys
からしばらくしてから 作成されました)- これまでに、多くのデバイス関連のインターフェースが削除されました。
/sys
いくつかの安定したインターフェースが含まれています (Documentation/ABI/stable
にリストされています) ) とそうでないものがあります。そうでないものを使用することは想定されていませんが、使用する人もいます。簡単なセキュリティと安定性のアップグレードで問題が発生することはありません。- かなり前のことだと思いますが、過去に modutils との非互換性がありました (新しいカーネルでは新しいバージョンの modutils が必要です)。
- 一部の通常とは異なる構成での起動プロセスに関しても、互換性がありません。カーネルのサイズを大きくしても、一部の組み込みシステムで問題が発生する可能性があります。
- カーネルの外部 インターフェースはかなり安定しており、内部 インターフェイスはそうではありません。内部インターフェースのルールは、内部使用を修正する限り、誰でもそれらを壊すことができるということですが、サードパーティのモジュールを修正することは、当該モジュールの作成者の責任です。全体的にかなりの数のインストールでサードパーティのモジュールが実行されています:カーネルでサポートされていないハードウェア用の追加ドライバー (ハードウェアが新しいカーネルでサポートされている場合は問題ありませんが、サポートされていない場合はどうでしょう)、独自のドライバー (すべてのドライバーがオープンソースであれば、世界はより良い場所になるでしょうが、そうではありません。たとえば、優れた 3D GPU パフォーマンスが必要な場合は、プロプライエタリ ドライバーでほとんど立ち往生しています)、など。
- カーネルやサードパーティのモジュールを再コンパイルする必要がある人もいます。最近のカーネルは、古いコンパイラではコンパイルできないことがよくあります。
全体として、より新しいカーネル バージョンに切り替えない主な理由は、サードパーティ モジュールです。
それにもかかわらず、一部のディストリビューションでは、最近のカーネルをオプションとして提供しています。たとえば、Debian はテスト版のカーネルを、バックポートを通じて安定版リリースのユーザーが利用できるようにします。同様に、Ubuntu LTS では、最近の Ubuntu リリースのカーネルを使用できますが、デフォルトでは使用されません。これは、ディストリビューションが完成した時点ではまだサポートされていなかったハードウェアへの新規インストールに最も役立ちます。