1

最近、シンプルなOSを書こうとしています。これは大きなプロジェクトです。
コードを書いているとき、プロテクトモードで最新のOSがハードウェアに接続する方法を考えています
。リアルモードでは、BIOS割り込みを呼び出すだけで、このジョブを実行できます。
しかし、プロテクトモードでこの目標を達成する方法を考えています(inおよびout命令を使用していますか??)
Linuxソースコードの一部をトレースしましたが、それでも適切なコードが見つかりません。

私はそれが多くの人々にとって基本的な質問であることを知っています、plzは私を助けます、tks。
私の英語が下手でごめんなさい。

4

1 に答える 1

1

プロテクトモードでは、CPUはカーネルモードまたはユーザーモードのいずれかで実行できます。カーネルモードでは、いつでもハードウェアにアクセスできます。BIOS割り込みの呼び出しは古い方法の1つですが、最近のOSには通常、ハードウェア用の独自のデバイスドライバーがあり、BIOSを頻繁に呼び出すことはありません。ハードウェアデータシートを知っている場合は、を使用inoutてハードウェアに直接アクセスできます。また、最新のPCIおよびPCI Expressデバイスでは、メモリマップドIO(X86 CPUもこれをサポート)をサポートしてmovおり、ハードウェアへのアクセスに使用できることを意味します。

x86の場合、CPUは、ユーザーレベルのプログラムがinおよびout命令を使用してハードウェアにアクセスすることも許可します。IntelCPUのマニュアルに記載されています。DPL、CPLを設定するだけですか?(正しい名前を忘れました)。

Linuxデバイスドライバー、第3版など、デバイスドライバーに関する本を読んだ方がいいと思います。http://lwn.net/Kernel/LDD3/

于 2011-04-05T16:48:47.923 に答える