1

最近,我試圖寫一個簡單的操作系統。這是一個很大的項目。
當我寫代碼時,我想知道現代操作系統如何在保護模式下聯繫硬件
在實模式中,我們可以調用BIOS中斷來完成這項工作。
但是我很想知道如何在保護模式下完成這個目標(使用in和out指令嗎?)
我追溯了一些linux源代碼,但仍找不到合適的代碼。關於硬件驅動程序在保護模式下

我知道這是一個很多人的基本問題,PLZ幫助我,TKS。
對於我可憐的英語感到抱歉。

+1

我把這個標記爲[x86 assembly Protected mode Keyboard Access](http://stackoverflow.com/questions/219120/x86-assembly-protected-mode-keyboard-access)。這不是100%相同 - 這個問題是這個問題的一個超集,但解決方案是相同的。 – 2011-03-29 18:17:04

回答

1

在保護模式下,CPU可以在內核模式或用戶模式下運行。在內核模式下,您可以隨時訪問硬件。調用BIOS中斷是一種古老的方法,但現代操作系統通常擁有自己的硬件設備驅動程序,並且不會經常調用BIOS。如果您知道硬件數據表,則可以使用inout直接訪問硬件。另外,對於現代PCI和PCI Express設備,它們支持內存映射IO(X86 CPU也支持此功能),這意味着您可以使用mov訪問硬件。

對於x86,CPU還允許用戶級程序使用輸入和輸出指令訪問硬件。您可以在Intel CPU手冊上找到它。只需設置DPL,CPL? (我忘了正確的名字)。

我想你最好讀一些關於設備驅動程序的書,比如Linux設備驅動程序,第3版。 http://lwn.net/Kernel/LDD3/

+0

tks,幫助我很多 – mike820324 2011-04-07 15:21:20