Firmware
Linux 術語中的“韌體”是什麼?
我對在 Linux 環境中使用韌體感到困惑。
我對韌體和驅動程序的理解是,韌體是在設備的裸機上執行的程式碼,例如藍牙 IC、鍵盤控制器、影片卡或單用途微控制器。韌體公開了一個介面供作業系統使用其服務。
相比之下,驅動程序是核心用來與韌體提供的前面提到的介面進行通信的軟體。因此,一個影片驅動程序、一個鍵盤驅動程序、一個藍牙無線電驅動程序。
那麼為什麼我一直在閱讀必須安裝的 Linux 韌體文件(例如這裡)。這些會上傳到硬體中嗎?這些文件是否被核心使用?在這種情況下韌體的含義是什麼?
在 Linux 核心上下文中,韌體是在系統中的另一個處理器上執行的軟體,例如無線控制器、GPU、SCSI 控制器……該軟體曾經儲存在連接到相關控制器的 ROM(各種類型)中,但為了降低成本並使升級更簡單,控制器現在傾向於依靠主機作業系統來為它們載入韌體。
因此核心不使用韌體文件,它們由核心載入到其他硬體上。這也是在 FLOSS 系統中使用沒有原始碼的軟體模糊接受的原因:爭論認為它不是在主 CPU 上執行,而是在另一個設備上執行。