私は彼らが2つの異なる実体であることを知っています。 Rootfs は、データの保存とアクセス方法を説明するファイルシステムです。カーネルは実行される実際のコードです。
しかし、カーネルコードはRootfsに保存されていませんか?
では、なぜフラッシュメモリの別のパーティションに保存されますか?私はカーネル用のパーティションやRootfs用のパーティションなど、組み込みシステムのemmcデバイスのパーティションレイアウトを常に見ています。これは私を混乱させる。
ベストアンサー1
以前のブートローダはネイティブファイルシステムのみをマウントできるため、カーネルはブート状態に維持され、オペレーティングシステムはルート状態のままです。完全なファイルシステムに起因する特定のタイプのエラーを防止する1つの方法は、各エントリに独自のファイルシステムを提供することです。複数パーティションのもう1つの便利さは、個別に簡単にバックアップおよび復元できることです。一部のファイルシステムはZFS、BTRFS、LVMですか?デフォルトでは、Linuxカーネルを使用しないブートローダはサポートされていません。
このアイデアの問題は、ブートボリュームがいっぱいになり、使用可能な他のスペースが多いとカーネルの更新が失敗する可能性があることです。高速増分スナップショットは、高度なファイルシステムでのみ使用できます。
したがって、どのトレードオフが作成されるかを決定することは、オペレーティングシステムの展開に依存します。
ファイルシステムとは完全に独立して、カーネルをメモリにマップし、ハードウェアおよび/またはソフトウェアを使用してそのメモリへのアクセスを制限することで、権限を適用し、権限のエスカレーションを軽減する機能(セキュリティなど)があります。バラよりユーザーモードとカーネルモード。