2014-02-23 85 views

回答

0

BIOS爲您提供基本輸入/輸出,而硬件具有遠遠超越基本功能的功能。沒有驅動程序,使用這些功能是不可能的。

此外,有些硬件根本不是基本的,在安裝驅動程序之前不可能使用它們的功能。

+0

@xxbbcc是的,我意識到我得到了它 - 我諮詢了所說的鏈接,並去「哎呀」! – user2864740

+0

感謝您的快速響應。請多一些解釋!我想在技術上更詳細的回答 – user3139987

+0

@ user2864740哈哈,沒問題。我出於同樣的原因遲到了。 – xxbbcc

5

假設你是在談論傳統的x86 BIOS,有幾個大問題:

  1. 該BIOS只代碼引導系統所需設備的有限子集(存儲控制器進行通信,以太網,USB鍵盤/鼠標,USB大容量存儲器)。 BIOS沒有USB打印機或網絡攝像頭的驅動程序。它也不實際。有數以千計的設備需要驅動程序。 BIOS不能全部包含它們。這也意味着每個新的硬件設備都需要BIOS更新。

  2. 對於現代硬件,BIOS INT調用是流行和不切實際的。它們設置爲讀取/寫入小塊數據(從磁盤讀取幾個字節,在屏幕上打印一個字符)。他們沒有一種機制可以使用DMA將數兆字節的數據從磁盤讀取到緩衝區中。請記住原始的BIOS INT調用是爲軟驅和文本模式顯示開發的。

  3. BIOS INT層處於實模式。任何現代OS都是保護模式。要在現代操作系統中執行BIOS調用,您必須切換到實模式,執行此操作,然後返回到保護模式。這是一個非常昂貴的操作。

但是UEFI呢?新PC(幾乎任何設計用於Windows 7 x64及更高版本的設備)都使用UEFI固件,而不是舊版x86彙編語言BIOS。儘管UEFI固件通常仍被稱爲「BIOS」。

當UEFI第一次出現時,有人希望它會導致獨立於操作系統的驅動程序。 UEFI提供了一個更簡單的基於C語言的現代化API。它有一個可安裝驅動程序的概念。有mechanisms for a modern OS to call UEFI services。但是,這並沒有獲得太多的牽引力。 UEFI「司機」非常適合預啓動的東西。一旦操作系統接管它,它自己的事情。

在操作系統中使用UEFI驅動程序仍然會導致性能開銷。另外,將「不透明」的UEFI驅動程序集成到現有的操作系​​統中將很困難。每個操作系統都有多層磁盤/文件系統驅動程序,網絡堆棧,USB等等。它們都做得有點不同,並且很難獲得UEFI驅動程序。 (在10年左右再次詢問。)

注意,有一個其他的操作系統無關的「驅動程序」所使用相當多的現代筆記本電腦層:ACPI。許多平臺的ASL/AML code中都有「驅動程序」,可以爲您的操作系統提供簡單的事件通知。最常見的例子是鍵盤上方的「特殊」按鈕,用於啓動應用程序或控制音量。這些按鈕通常會觸發操作系統響應的event handler。不過,這是一個非常簡單的通知系統。

相關問題