2012-08-25 47 views
2

我真的不編程任何操作系統或引導加載程序,但我閱讀有關操作系統和我很好奇BYT爲自舉程序沒有BIOS的系統調用的工作,更重要的是,如果我的理解能力在沒有UEFI的系統中正確啓動大磁盤啓動時,您可以訪問所有磁盤,並從那裏啓動所有分區或支持GPT。通過傳遞BIOS在OS /引導加載程序

所以,任何人都可以說我怎樣才能繞過int 13h並直接訪問磁盤控制器(使用LBA並自己解析正確的分區) 誰能告訴我誰將B8000地址映射到視頻卡,仍然在保護模式下工作?保護模式是否仍然存在?這些天他們到底需要向後兼容? 我如何繞過INT 16H(說不上,如果我真的想,但是如果你知道,WTH :-)爲什麼不...),並直接與鍵盤控制器工作?

回答

2

1)的BIOS現在支持LBA存取(AH = 42H AH = 43H Extended_Read_Sectors_From_Drive,擴展寫入扇區到驅動器)。您可以直接繞過BIOS,因爲所有現代操作系統都可以直接對IDE控制器進行編程。您可以參考Boch BIOS源代碼http://bochs.sourceforge.net/cgi-bin/lxr/source/bios/rombios.c。與Linux內核相比,它應該更簡單,抽象程度更低。例如,編寫扇區的代碼在6512行左右。您對outb調用感興趣。

2)B8000也許是通過顯卡BIOS的模式設置代碼映射,但是這是你不必在乎實現細節。它在保護模式下工作,因爲它不是由處理器(使用虛擬內存)映射的,而是由IO子系統映射的。當然保護模式依然存在。

3)誰需要向後兼容?如果它沒用,它將被英特爾切斷,以節省芯片空間。

+0

感謝#1和#2,但我不覺得你是對的關於向後兼容性,它是在486和386使用,因爲仍有XT的286左右,這幾天有沒有指向它和我有預感英特爾只是堅持他們的架構構建塊,因爲他們成爲標準,所以是AMD .... – codeScriber