Kernel
Linux Kernel 是通過 BIOS 訪問 HW,還是直接與 HW 互動?
據我了解,BIOS 1)初始化硬體和 2)跳轉到一個位置並將引導載入程序載入到 RAM 中。當 BIOS 初始化硬體時,它必須執行一些常式(即設置適當的寄存器位、延遲等…)。我要問的問題是這些 BIOS 常式是否是:
- BIOS 常式是由 Linux 核心呼叫還是 Linux 核心驅動程序重新實現了必要的常式?
- BIOS 也是用彙編語言編寫的,還是某種硬體定義的語言?
- 這取決於。大多數情況下,核心直接驅動硬體,不經過系統韌體;但在某些情況下它確實依賴於韌體提供的功能(例如通過 ACPI)。
- 最初的 PC BIOS 是用彙編語言編寫的(原始碼包含在 IBM 的技術參考手冊中)。目前的 PC 系統韌體大多是用 C 語言編寫的,請參閱TianoCore。