Linux 术语中的“固件”是什么?

Linux 术语中的“固件”是什么?

我对使用感到困惑固件在Linux环境下。

我对固件和驱动程序的理解是,固件是在设备的裸机上运行的代码,例如蓝牙 IC、键盘控制器、显卡或单一用途微控制器。固件公开一个接口供操作系统使用其服务。

相比之下,驱动程序是内核用来与前面提到的固件提供的接口进行通信的软件。因此,有视频驱动程序、键盘驱动程序、蓝牙无线电驱动程序。

那么为什么我一直在阅读有关必须安装 Linux 固件文件的信息(例如这里)。这些会上传到硬件中吗?这些文件是内核使用的吗?是什么意思固件在这种情况下?

答案1

在 Linux 内核上下文中,固件是在系统中的另一个处理器上运行的软件,例如无线控制器、GPU、SCSI控制器……这些软件过去存储在相关控制器附带的ROM(各种类型)中,但为了降低成本和使升级更简单,控制器现在倾向于依赖主机操作系统为他们加载固件。

因此,固件文件不被内核使用,它们被内核加载到其他硬件上。这也是 FLOSS 系统中没有源代码的软件被模糊地接受的原因:争论的焦点是它不是在主 CPU 上运行,而是在另一台设备上运行。

相关内容