BIOS和Linux的驱动程序层的关系是什么?

clipboard.png

Linux系统内核中有驱动程序,它主要的作用是与硬件设备进行操作。

我们知道BIOS是操作系统和硬件之间的一层软件实现。
那么这里BIOS驱动程序有关系吗?

驱动程序是否需要经过BIOS这一层才能操作到硬件设备呢?

阅读 4.8k
2 个回答

现在的驱动程序一般不使用bios功能。理由有:

  1. bios只是基本输入输出,并不会针对具体硬件做优化,所以性能无法保证
  2. 同理,bios的功能也不是很全,可能有些硬件具有的高级功能它无法支持
  3. 有些操作系统会在启动后覆盖掉bios设置的中断,也就是说,系统启动后bios就不存在了(这个存疑,我记得有看过,如果说错请指正)

BIOS 和驱动程序没啥关系。

我们来看一下计算机的启动过程。

  1. CPU 加电指向 BIOS 的 ROM。
  2. 执行 BIOS 中写好的程序,开始进行自检。
  3. 加载引导程序。
  4. 引导程序加载内核。
  5. 进入内核。

BIOS 的作用体现在第 2,3 点,将 CPU 的控制权交给引导程序后,这以后的一切事情都和它没有关系了。

内核是可以和设备直接交互的,但由于设备多种多样,你不可以提前在内核写好和每个设备的交互程序吧。所以就有了驱动程序,由驱动程序代替内核跟设备交互。例如:当 CPU 要跟显卡交互时,只需要给驱动程序发条指令就行了,不用自己亲切动手。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题