2010-11-25 50 views
0

我在閱讀broken thorn operating system development series。我讀了關於實模式和保護模式。我讀過中斷在保護模式下不可用。我必須設置一些模式之間的切換。我可以在真實模式下使用BIOS中斷進行編碼。所有這些都很好。但是我想知道這些背後是什麼?當我們關閉CR0中的PE標誌時究竟發生了什麼?爲什麼我們不能在保護模式下使用BIOS中斷?這些BIOS中斷背後是什麼?爲什麼我們必須使用BIOS?如何直接與硬件進行交互?這些0和1如何使硬件工作?爲什麼這些機器碼工作? 我想要所有這些東西的最低級別的細節。任何人都可以爲我推薦一本好書或鏈接嗎?提前致謝。x86的最低級別細節

+1

那麼,在最低級別,您可能需要檢查[中央處理單元](http://en.wikipedia.org/wiki/Central_processing_unit)。或[微處理器](http://en.wikipedia.org/wiki/Microprocessor)。或[Silicon](http://en.wikipedia.org/wiki/Silicon)。 – 2010-11-25 15:31:12

+0

爲什麼有人投票結束這個問題? – narayanpatra 2010-11-25 15:33:22

+2

可能是因爲「這些背後有什麼」,「如何直接與硬件交互」以及「爲什麼這些機器代碼工作」都很模糊。 – 2010-11-25 15:36:33

回答

3

你在那裏問了很多問題,試圖在這裏回答所有問題會花費很多時間。

我會提供一些快速回答和一些其他資源的指針,這些資源可能有助於爲您提供理解問題答案所需的背景知識。

大多數PC BIOS例程都是在實模式下編寫的,一旦CPU處於保護模式下就不能正常工作;有一些BIOS程序具有兼容的32位保護模式界面。

現在PC BIOS主要用於引導另一個操作系統,之後幾乎不用BIOS。 PC BIOS最初是爲了在操作系統和底層硬件之間可能存在一個抽象層而提供的,以便操作系統可以更容易地運行在不同的硬件上,而不必針對各種(稍微)不同的硬件配置進行定製。 Gary Kildall和他的CP/M操作系統經常被認爲是擁有BIOS的第一臺微型計算機操作系統。

直接硬件編程就像您可以獲得的特定平臺一樣。您需要確切瞭解您的硬件具有哪些芯片組,端口及其配置,才能對其進行編程。

梅斯梅爾不可缺少的PC硬件手冊提供了一個全面而可讀的PC操作介紹,包括BIOS的作用,中斷和CPU模式(如真實,受保護)以及機器代碼(1和0's)驅動硬件來實現我們預期的結果。

其他可以回答您的問題並可能更易於使用的書籍包括:由Tocci的數字系統Tanenbaum提供的結構化計算機組織。

編輯:如需進一步瞭解技術細節,您可以嘗試Brey提供的英特爾微處理器(最新版本涵蓋Core2架構),然後使用英特爾/ AMD開發人員手冊(可免費下載)。

2

聽起來像是通過閱讀intel和amd開發人員手冊(不是每個指令部分,而是更大/更廣泛的概述)以及cpu體系結構上的技術論文(addison- weasley在這方面有一些很好的書籍)