回覆列表
  • 1 # 使用者2865337585559

    BIOS(基本輸入輸出系統)是x86平臺的舊式韌體,這一概念最早在70年代就出現了,當時的CP/M(就是後來的MS-DOS)就是透過BIOS的Interrupt Calls來控制硬體,後來的MS-DOS也是這麼做的。很長一段時間裡,BIOS幾乎就是DOS的硬體抽象層(HAL)。

    Legacy BIOS以x86 CPU的16位真真實模式執行,原理基於中斷呼叫。

    後來的Win3.x也是16位OS,大部分功能都基於DOS。

    Win9x的核心是16位/32位混合的,非常依賴V86模式和BIOS(Win9x可以直接使用MS-DOS的驅動程式,但是使用MS-DOS驅動程式的效率很低)。

    Windows NT Series所有核心元件直接執行在保護模式/長模式下面,應用程式不能直接訪問硬體。Windows NT Series/Linux使用Kernel Driver來直接控制硬體。

    在系統Power on時,BIOS負責系統和PCI/ISA外設的初始化,然後為DOS系統提供中斷呼叫服務,為ACPI OS提供ACPI服務。

    早年的時候因為硬體不發達,所以對OS Driver和Firmware的定義不明確。ACPI規範明確定義了BIOS就是Firmware,OS Driver就是OS Driver。

    現在,Interrupt Calls僅用於作業系統的Bootloader(如Windows Boot Manager或GRUB2)。比較特殊的是INT 10H(INT10H或UEFI GOP由顯示卡的Video BIOS提供),OS在啟動時會呼叫INT10H或UEFI GOP,顯示最基礎的、低解析度的影象(如OS的開機畫面),直到OS載入GPU廠商的驅動程式;OS的亮機驅動程式(如Windows的Microsoft Basic Display Adapter)也會呼叫INT10H或GOP。IBM為IBM PC制定了VGA標準,PC一定得點亮Display(Win9x不裝顯示卡驅動(或者Windows沒有自帶顯示卡驅動)雖然能進桌面但是隻支援16色,而且系統解析度只支援640x480;WinXP不裝顯示卡驅動,雖然顯示效果好於Win9x,但是解析度只能調節幾檔

    )。也就是為什麼以UEFI模式安裝Windows 7必須開BIOS裡的CSM,因為Win7不支援UEFI GOP,只支援Legacy BIOS的INT10H。

    現在的OS核心都是以32位保護模式或64位長模式執行的,OS啟動過程中把處理器轉到這個模式後,就由OS控制硬體了。但是載入OS後,BIOS/UEFI的SMM、ACPI(還有早年的APM和Plug and Play,但Windows XP以後基本都用ACPI)、SMBIOS等都仍然起著重要作用。

    Intel產品從2020年開始不再支援Legacy BIOS(UEFI CSM),所以這些東西已經變成歷史。

  • 中秋節和大豐收的關聯?
  • 《桐譜》一書的主要內容是什麼?