BIOS是否具有某种通用的“驱动程序”


22

BIOS如何在没有任何形式的驱动程序的情况下控制I / O设备?

例如,如果BIOS没有图形卡驱动程序,则在计算机启动时如何显示图像。

是否存在某种通用驱动程序,该通用驱动程序在所有BIOS和硬件中都是标准的,因此无论安装了哪种硬件,BIOS都可以执行基本功能。

任何帮助,将不胜感激。

谢谢。


您有想要解决的特定问题吗?如果你询问是否有BIOS使用通用通用驱动它不会
Ramhound

我认为有一个最小的标准输出格式(vesa),并且视频卡具有自己的BIOS。此外,它不像您的BIOS / UEFI固件那样实时渲染3D。
Journeyman Geek

5
@Ramhound这不是我要解决的问题,这只是一个普遍的问题。无论您在系统中放入什么图形卡,在引导时仍可以看到显示,因此是否有一些标准的接口已编程到BIOS中?
RJSmith92 2013年

4
Do you have a specific problem your trying to solve? 是的,他们正在尝试解决找到他们所提出问题的答案的问题。¬_¬
Synetech

Answers:


13

BIOS是否具有某种通用的“驱动程序”

BIOS如何在没有任何形式的驱动程序的情况下控制I / O设备?

标准。所有组件都实现一个基本接口,并且BIOS对其进行了编程以使用该接口。当然,因为它是一个基本接口(这就是BIOS中的“ B”所代表的意思),所以它无法利用硬件的全部功能。留给软件通过驱动程序实施,该驱动程序可以直接访问硬件。

最初,BIOS制造商创建了一组希望设备兼容的API。他们通过“ 中断 ”来做到这一点,这是设备中断程序的一种方法,可以让程序知道发生了什么,反之亦然。

例如,如果BIOS没有图形卡驱动程序,则在计算机启动时如何显示图像。

对于预引导显示,视频适配器的固件实现了VESA(视频电子标准协会),该标准是为了简化对显示硬件的访问而创建的。BIOS知道如何使用提供的标准功能访问视频硬件。它与DirectX实施为硬件的高级API的方式有点类似,因此程序员不必考虑每个硬件配置。

是否在所有BIOS和硬件上都支持某种通用驱动程序,无论安装了哪种硬件,该驱动程序都可以使BIOS执行基本功能。

有点。它不是驱动程序,而是标准API;一组编程功能,可用于执行一些基本操作,例如初始化设备或输入和输出数据。

如果制造商想出售他们的产品,则需要确保他们至少实现标准API,以便兼容。这样,系统可以检测硬件,并且对于启动关键型设备,它们可以在基本级别上访问它们,直到可以加载知道如何完全访问它们的软件驱动程序为止。


谢谢,很好的答案。因此,BIOS中断调用(曾经使用过哪个DOS系统)在操作系统加载之前仍然用光了?
RJSmith92 2013年

1
是的,BIOS提供了许多可以使用的不同中断(尽管并非所有BIOS都提供所有功能)。DOS系统确实使用了这些功能,但是DOS还创建了INT 21和2F来提供更高级别的软件中断来执行操作(我非常想念DOS /硬件汇编程序编程)。事实是,始终需要一些基本的低级功能来提供兼容性,甚至与EFI以及将来出现的其他任何情况一样。它可能采用不同的形式,但是如果没有某种通用语言,则系统将无法使用硬件设备。
Synetech 2013年

据我了解,内核和内核级服务仍在使用中断调用。那不是真的吗
BlueRaja-Danny Pflughoeft13年

@BlueRaja,可能在引导过程中(它们需要某种访问硬件的方式),但是在运行检测例程之后,他们使用适当的驱动程序(仅是低级程序)直接访问硬件。甚至内核也需要直接访问才能充分利用硬件,例如利用高级CPU功能或优化内存控制器和芯片组的使用。
Synetech

22

PC中的BIOS具有与8位CP / M系统中的BIOS类似的功能,该功能在PC于80年代中期被接管之前就很流行。BIOS旨在包含最少的引导程序和与硬件相关的低级例程,以执行输入和输出到一些设备(屏幕,磁盘,磁带,COM端口)的操作。ROM内置了执行此操作的知识-不需要驱动程序,当然,此ROM不支持其他硬件。(诸如电源管理和ACPI之类的事情发生在90年代,当时PC已成为无处不在的平台。)

(CP / M“文件系统”位于从磁盘加载的称为BDOS的组件中-同样,对FAT文件系统及其接口的了解在两个隐藏文件MSDOS.SYS或IO.SYS(至少其中一个)中,而不是一部分BIOS ROM。)

但是...与CP / M不同,PC BIOS确实支持“选项ROMS”的概念,该概念可以包含在扩展卡中。因此,至少有一个扩展BIOS的最小机制。以CGA开头的视频卡(CGA的前身MDA也可能已经做到了)将具有一个可选ROM,用于扩展或向BIOS接口添加I / O功能。(这就是为什么您在BIOS引导之前看到NVidia消息的原因。)硬盘控制器和SCSI卡也是如此。所有这些仍然有效。许多较旧的网卡都有用于引导ROM的插槽。

还要记住,在80年代兴起的PC克隆制造商很快就决定不只提供兼容的BIOS接口,而是最终不得不复制PC平台,包括所有低级硬件,例如计时器芯片。 ,中断控制器等。(之所以相对容易,是因为它很少是IBM专有的。)这是因为BIOS的处理速度很慢,并且程序员直接访问了硬件,尤其是游戏。

因此,在选件ROM和构成PC平台的标准硬件的共识之间,以及在PC的整个发展过程中一直保持向后兼容这一事实,希望使用无驱动器的显示器的用户可以:

  • 使用标准的BIOS接口,视频硬件中的可选ROM可能会将其“钩住”
  • 或对系统中的硬件进行假设并直接访问基本硬件

启动后,所有PC显示硬件仍可在“ VGA兼容”模式下工作。原始的IBM VGA适配器具有与早期的EGA,CGA和MDA卡兼容的模式。这一切意味着从BIOS或OS外部运行的某些东西可以假定它仍然可以像现在一样读写1985年显示器上连接的同一内存。


感谢您的回答。因此,扩展卡上的BIOS必须遵循某种标准,以便任何主板BIOS都可以使用它?
RJSmith92 2013年

1
不知道它是否像标准,而不是一个长期存在的约定,而是类似的东西。我猜这里BIOS Boot Specification(BBS)是一个正式的标准。 zh.wikipedia.org/wiki/Option_ROM
LawrenceC

是的,那是我一直在寻找的东西。再次感谢
RJSmith92 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.