質問: カーネル空間とユーザー空間の違いは何ですか? カーネル空間とユーザー空間の違いは何ですか?カーネルスペース、カーネルスレッド、カーネルプロセス、カーネルスタックは同じものですか?また、なぜこの差別化が必要なのでしょうか?
回答: really簡略化された答えは、カーネルはカーネル空間で実行され、通常のプログラムはユーザー空間で実行されるということです。ユーザースペースは基本的にサンドボックス化の形式です-ユーザープログラムを制限するため、他のプログラムまたはosカーネルが所有するメモリ(およびその他のリソース)を混乱させることはできません。これは、マシンをクラッシュさせるなどの悪いことをする能力を制限します(通常は完全に排除しません)。カーネルはオペレーティングシステムの中核です。通常、すべてのメモリとマシンのハードウェア(およびマシン上のその他すべて)にフルアクセスできます。マシンをできるだけ安定に保つために、通常は最も信頼できる、十分にテストされたコードのみをカーネルモード/カーネルスペースで実行する必要があります。スタックはメモリの別の一部にすぎないため、当然、残りのメモリと一緒に分離されます。