1

私は自分のオペレーティング システムの最終試験に向けて勉強していますが、システム コールのために OS がカーネル モードに切り替える必要がある理由を誰か教えてもらえないだろうかと思っていました。

4

2 に答える 2

3

セキュリティ上の理由から、通常のユーザー コードではこれを実行できないため、syscall は特にカーネル モードで動作を実行するために使用されます。

たとえば、メモリを割り当てたい場合、オペレーティング システムにはそれを実行する特権があります (ページ テーブルを認識しており、他のプロセスのメモリにアクセスできるため)。他のプロセスの記憶。それはあなたをサンドボックス化する方法です。したがって、オペレーティング システムにメモリの割り当てを要求する syscall を送信すると、カーネル レベルで発生します。

編集:ウィキペディアの記事がこれに関して驚くほど役立つことがわかりました

于 2009-05-04T19:57:43.657 に答える
1

これは「宿題」とタグ付けされているので、答えだけではなくヒントを提供します。

カーネルは、コンピューターのハードウェアにアクセスし、アプリケーションが互いに踏み込まないようにする役割を果たします。アプリケーションがカーネルの協力なしにハードウェア デバイス (ハード ドライブなど) にアクセスできたらどうなるでしょうか?

于 2009-05-04T19:57:56.183 に答える