ユーザーモードからカーネルモードに移行すると、どのレジスタが変更されますか?! カーネルモードに移行する理由は何ですか?
これらの理由がカーネル モードに移行しない理由:
- root で新しい管理者を作成 (スーパーユーザーまたは管理者)
- TLB ミスが発生した場合、カーネル モードに移行しない理由
- ページテーブルで変更されたビットページに書き込むとき
ユーザーモードからカーネルモードに移行すると、どのレジスタが変更されますか?! カーネルモードに移行する理由は何ですか?
これらの理由がカーネル モードに移行しない理由:
「ユーザーモードからカーネルモードに移行すると、どのレジスタが変更されますか?!」
Linux カーネルを実行する典型的な x86 ベースのアーキテクチャでは、次のようになります。
ご覧のとおり、すべてオペレーティング システムとアーキテクチャに依存します。
「そして、カーネルモードに移行する理由は何ですか?」
CPU はデフォルトでカーネル モードで動作します。質問は「ユーザー モードの必要性は何ですか?」ということです。ユーザー モードは、実行中のソフトウェアにすべてのアクセス許可を提供するわけではないため、必要です。ブラウザー/ファイル マネージャー/シェルをユーザー モードで問題なく実行できます。アプリケーション ソフトウェアに完全なアクセス許可が与えられると、カーネル データにアクセスして破損するだけでなく、ハードウェアにもアクセスして、たとえば、ハード ディスクに保存されているデータを破壊する可能性があります。
もちろん、カーネルはカーネル モードで動作する必要があります (少なくともカーネルのコア)。たとえば、アプリケーション ソフトウェアでは、ディスク上のファイルにデータを書き込む必要がある場合があります。アプリケーション ソフトウェアはディスクにアクセスできません (ユーザー モードで実行されているため)。これを実現する唯一の方法は、カーネル (カーネル モードで実行されている) を呼び出してジョブを実行することです。そのため、ユーザー モードからカーネル モードに、またはその逆に移行する必要があります。