我正在嘗試開發一個簡單的操作系統。我之前做過一些彙編程序,不得不使用INT 10h
來在屏幕上顯示字符。我瞭解UEFI支持傳統BIOS,並且仍然可以使用INT 10h
服務。但是,如果我選擇構建純粹的UEFI可引導操作系統,我應該避免使用INT 10h
?或者我以錯誤的方式看待事情?在EFI模式下啓動是否意味着我無法訪問BIOS中斷?
換句話說,鑽出的printf
到stdout
(屏幕)最終調用BIOS INT 10h
?或者是問題 - 「基於INT 10h的函數調用是SYS_WRITE
?」更合適?
我還需要創建一個512字節的引導扇區,並將它們作爲磁盤(或磁盤映像)上的第零個扇區嗎?地點0x7c00
是否有意義?
那麼這是否意味着我不應該在我的啓動加載器中使用INT 10h?還是我的操作系統?我的操作系統是否必須使用UEFI庫中的函數?如果我收集了正確的東西,在'exitBootServices()'之後,我無法使用UEFI函數。 – 2013-02-27 15:20:20
您確實不會使用UEFI引導加載程序中的「INT 10h」。儘管你可以在你的操作系統中使用INT 10h,但你很可能想寫一個直接寫入視頻緩衝區的屏幕驅動程序。 – 2013-02-27 18:52:13
@LordLoh。在exitBootServices()之後,您不能再使用引導服務。有些UEFI服務(稱爲UEFI運行時服務)仍然可以調用,例如即使在調用exitBootServices之後也更改屏幕分辨率。 – SecurityMatt 2013-02-27 19:49:29