システムの残りの部分は変更せずにLinuxカーネルを更新します。

システムの残りの部分は変更せずにLinuxカーネルを更新します。

私はOpenBSDユーザーです。存在するOpenBSD FAQそれは言う:

OpenBSDは同期を維持するように設計された完全なシステムです。互いに独立してアップグレードできるカーネルとユーティリティではありません。

システムをアップグレードすると、カーネルと基本システムの両方が交換されます。それから行って更新してください。第三者パッケージ。もしソースコードからコンパイル、カーネルを再コンパイルして起動します。次に、メインシステムを再構築し、インストールされたパッケージを再構築します。すべてを最後に再構築してから数週間/月が経過したら、まずスナップショットをインストールしてそこから再構築します(最新のCVSブランチに従う場合)。

同期されていないカーネル、基本システム、および/またはサードパーティのパッケージは問題の潜在的な原因であり、公式メーリングリストから深刻な援助を受ける資格をある程度奪い取ることになります。

私はそれに満足しています。実際、これが私がOpenBSDを使用している理由の1つです。これにより、システムを一貫した単位にし、システムの精神的な概要を簡単に形成することができます。

Linuxではどのような姿ですか?私が知る限り、ほとんどのLinuxにはBSDと同じ意味の「基本システム」がなく、ディストリビューションプロバイダが組み立てたパッケージのコレクションがあります。その後、ローカル管理者はより多くのソフトウェアを追加するので、最初からあったソフトウェアと後で追加されたソフトウェアとの間の境界はせいぜいあいまいになります。

Linuxは(一般的に)カーネルとユーザー空間の組み合わせが強力ではありませんか? 私が知る限り、カーネルは他のパッケージと同様に更新されたので、これが可能かどうかは少し混乱しています。これに加えて、一部はカスタムカーネル(OpenBSDでは推奨されません)をコンパイルし、ブートメニューにいくつかの異なるカーネルバージョンがリストされています。

Linuxシステムのさまざまなサブシステムが互いに独立して更新されても、互いに機能できることを誰か、または何が保証しますか?

私が尋ねる理由は、このサイトの他のユーザーが要求したからです。Linuxシステムのカーネルを最新バージョンに置き換えることは「可能」ですか? OpenBSD側ではそうは言えません。保証するシステムの損傷を防ぐために。


私は上記の「Linux」を「Linuxディストリビューション」、カーネル+ユーティリティの略語として使用します。

ベストアンサー1

リヌス・トバルズはとても強いユーザー空間回帰を引き起こすカーネルの変更に関するコメント(質問」を参照)Linuxカーネル:ユーザースペースが壊れている「もっと学ぶ)。

ユーザ空間とカーネルの間のインタフェースは、システムコールによって提供されます。最新のカーネルはより多くのシステムコールを持つことができ、変更によって既存のアプリケーションが中断されない限り、既存のシステムコールを変更できます。システムコールインターフェイスにフラグパラメータがある場合、新しいカーネルは新しい機能を公開するために新しいビットフラグを使用することがよくあります。このようにして、カーネルは以前のアプリケーションの以前のバージョンとの互換性を維持します。

ユーザースペースを壊さずに既存のインターフェースを変更できない場合は、拡張機能を提供するために追加のシステムコールが追加されます。だからバージョンは3つになります。dupそして2つのバージョンumountシステムコール。

信頼性の高いユーザースペースを確保するための戦略は、カーネルの更新がユーザースペースアプリケーションにほとんど問題を引き起こさず、通常カーネルをアップグレードした後に問題が発生しない理由です。

ただし、同じAPIの信頼性は保証されません。コアインタフェースおよびその他の実装の詳細システムファイルシステム(上記/sys)とプロセスファイルシステム(トップ/proc/)低レベルアプリケーションで使用されるランタイム構成、ハードウェア、ネットワーク、プロセスなどのカーネル実装の詳細を公開します。正当な理由から、これらのインタフェースはカーネルバージョン間で互換性のない方法で変更される可能性があります。変更は可能であれば、非互換性を最小限に抑えるよう努め続けます。ルールアプリケーションが問題を引き起こす可能性が最も低い方法でインターフェイスを使用する方法を理解します。低レベルではないアプリケーションでは、これらのインターフェイスを使用しないでください。影響も制限されます。

@petercordes変更が発生したかどうかを表示プロセスファイルシステムまたはシステムファイルシステムディストリビューションのinitスクリプトで使用されているアプリケーションを停止すると、問題が発生する可能性があります。

これは、ディストリビューションがカーネルを更新する方法(長期サポートまたはメインライン)によって多少異なり、ディストリビューションは通常更新されたツールを同時にリリースするため、比較的問題が少なくなります。

スティーブンキットアップグレードされたユーザースペースには最新バージョンのカーネルが必要な場合があります。この場合、システムは以前のカーネルから起動しない可能性があり、リリースノートでは該当する場合はこれについて言及します。

おすすめ記事