私は、カーネルがすべてのH/Wに無制限にアクセスできる特権モードで動作することが記載されているLinuxのデバイスドライバについて読んでいます。このモードでは、ユーザプログラムはどのようにCPUを設定できませんか?プロセッサのモード、CPUの状態、CPUの特権レベルを変更するにはどうすればよいですか?
5
A
答えて
6
このようなことを理解したい場合は、コードを使ってLinuxブートプロセスKernel Boot Processに従うことをお勧めします。たとえば、Linuxをx86アーキテクチャ上で実行しているとします。起動時に起こることは、BIOSがブートローダに制御権を与えることです。 ternのブートローダはカーネルを制御します。
その後、カーネルはブートプロセスを実行します。最初はほとんどのものがアセンブリ言語で書かれています - /arch/x86/boot/header.Sを参照してください。
次に、/arch/x86/boot/main.cに行きます。右のメイン関数の最後に、あなたは、あなたがカーネルをブート一度あなたが、
ので/arch/x86/boot/pm.cでその機能を見ることができ、それをgo_to_protected_mode()
への呼び出しが表示されますCPUのゲートウェイになり、コードはカーネルが提供する仮想マシンで実行されます。ユーザプログラムは、この仮想マシンを介してすべてを実行しなければならないという事実によって、他のモードで実行することはできません。
1
ユーザモードでは、何らかの割り込みを発生させるだけで特権モードを変更できます。割り込みの目的は、プログラムの特権モードを変更することです。結論:自分自身を中断することで、ユーザモードプログラムは特権を昇格させることができず、独自のコードを実行し続けることができません....これは、この素晴らしいセキュリティ機構が作動する。
ビリミック
関連する問題
- 1. CPUの丸めモードはいつ変更できますか?
- 2. RadioButton:IsChecked状態を変更するにはどうすればよいですか?
- 3. Javaを使用してVMWare VMのRAM/CPUを変更するにはどうすればよいですか?
- 4. ブラウザの更新時に状態を変更するにはどうすればよいですか?
- 5. スレッドが実行されているCPUを特定するにはどうすればよいですか?
- 6. UISwitchが状態を変更しないようにするにはどうすればよいですか?
- 7. Androidのソースコードからデバイスのネットワーク状態を変更するにはどうすればよいですか?
- 8. 32ビットCPUプロセッサでのメモリリークと64ビットプロセッサCPUでのリークなし
- 9. トグルボタンの状態をプログラムで変更するにはどうすればよいですか?
- 10. WinFormsでToolStripItemのチェック状態を変更するにはどうすればよいですか?
- 11. プロセッサ(CPU)とマイクロプロセッサの違いは何ですか?
- 12. マルチプロセッサ用のCPUがアイドル状態で安定しています
- 13. CPUがアイドル状態のときにだけC#のスレッドを実行するにはどうすればよいですか?
- 14. インテルCPUカウンターにアクセスするにはどうすればいいですか?
- 15. enum値を状態図の状態として使用するにはどうすればよいですか?
- 16. x86プロセッサでハードウェア特権レベルを操作する方法
- 17. 状態に応じてビューを変更するにはどうすればよいですか?
- 18. Android Marshmallow - 権限の状態の変更
- 19. Javaコードの最適化を開始するにはどうすればよいですか? - CPUが100%です
- 20. MDIアプリケーションがアイドル状態で100%CPUを消費する
- 21. Javaプロセスが実行状態にあり、CPUを消費する
- 22. セッション状態を保存するにはどうすればよいですか?
- 23. C#でマザーボードとCPUの電圧情報を取得するにはどうすればよいですか?
- 24. PythonプロセスのCPU時間を正確に測定するにはどうすればよいですか?
- 25. 実行時にサーバーの「JVM/CPU/Memory」を確認するにはどうすればよいですか?
- 26. RRDデータベースにCPUとMEMの使用データを設定するにはどうすればよいですか?
- 27. iphoneアプリの状態の変化を検出するにはどうすればよいですか?
- 28. SELECT権限なしで特定のレコードを更新するにはどうすればよいですか?
- 29. KubernetesのNodeからCPU経由でCPU使用量を取得するにはどうすればよいですか?
- 30. 異なるレベルのWPFツリービューのスタイルを変更するにはどうすればよいですか?