2

プロセスには、ユーザー モードとスーパーバイザー モードの 2 つのモードがあります。また、CPU にはさまざまな実行権限レベルがあります。これら2つの概念は同じですか?Linux Kernel Projects By Gary Nutt では、システム コールを行うには、プロセスが最初に監視モードを取得する必要があると述べられています。このモードは、起動時に CPU が特権モードで実行されるとき (POST や MBR のロードなどの BIOS 手順が実行されるとき) や、低レベルの BIOS ルーチンを呼び出すときと同じですか? または、これらのシステム コールが発生したとき、CPU はまだユーザー モードで実行されていますか? また、2番目が真の場合、ユーザーがCPUを特権モードで実行する方法はありますか... int 0x80がそれを行うと聞きましたが、OSを特権モードで実行するかどうかについても同じ疑問に思いますモードまたはCPU...

同じことに関連するリンクも大歓迎です...どれが本当か教えてください。前もって感謝します...

4

2 に答える 2

0

OS モードは、ハードウェア モードを備えたマシンでモデル化されており、ハードウェア サポートを適切に使用できますが、必ずしもそうとは限りません。問題は、一部の CPU には「スーパーバイザー」モードがないため、OS が何らかの方法でシミュレートする必要があることです。

このウィキペディアの記事はかなり良いです。

アップデート

厳密に言えば、Linux には「スーパーバイザー モード」などというものはありません。あるのはカーネル モードです。はい、少なくとも割り込みハンドラーの一部とシステム コールはカーネル モードになります。

これは、それがどのように起こるかについての良い記事です。そして、これは良い情報が含まれている別の SO の質問です。

用語の問題に直面していると思います。オペレーティング システムのカーネル モードがあり、x80 システムでは割り込み x80 で入力されます (偶然の一致です)。ただし、ハードウェア スーパーバイザ モードでなければならない特権操作もあります。 これは、x86 でそれがどのように行われるかについての長い説明です。

于 2011-02-26T16:35:53.727 に答える
0

それらは同じです。「カーネル モード」はプロセッサの「スーパーバイザ モード」(x86 のリング 0) と同じであり、「ユーザー モード」は最小権限を持つプロセッサのモード (x86 のリング 3) です。x86 では、2 つの追加の特権レベル (リング 1 と 2) が存在しますが、Windows と Linux のどちらも使用しないことに注意してください。

ウィキペディアの「リング」に関する記事を参照してください。

メモリ保護、プロセス間の分離などは、ハードウェア サポート、つまりこれらの「特権レベル」(リング) のおかげで達成されます。たとえば、カーネルとは異なり、ユーザー プロセスはメモリ ページ テーブルを変更しない場合があります。

于 2011-02-26T16:36:44.507 に答える