我的BIOS在引导后会做什么?

一旦您的计算机完成了引导过程,并且您牢牢地在操作系统内部嗡嗡作响,BIOS还有什么可做的吗?

今天的问答环节是由超级用户提供的,这是Stack Exchange的一个分支,Stack Exchange是一个社区驱动的问答网站群。

问题

超级用户阅读器Indrek提出以下与BIOS相关的问题:

真的吗?除了在计算机启动中的关键作用外,BIOS还有什么功能?

答案是

由超级用户贡献者Mechanical Snail提供,概述了BIOS的角色随着时间的推移发生了怎样的变化,以及它现在正在做什么和不做什么:

BIOS的角色

有了现代的OSS,几乎没有一个。据报道,莱纳斯·托瓦尔兹表示,它的任务是“加载操作系统,然后让地狱离开那里”。

较旧的操作系统,如MS-DOS,通过调用中断来执行许多任务(例如,磁盘访问)依赖于BIOS。

使用现代操作系统,引导加载程序可以快速切换到32位或64位模式并执行操作系统内核。内核可以注册自己的中断处理程序,用户空间应用程序可以调用该中断处理程序。内核的例程可以更可移植(因为它们不依赖于特定的硬件)、更灵活(操作系统供应商可以按需更改它们,而不必使用硬件附带的任何东西)、更复杂(它们可以执行任意复杂的代码,而不是编程到BIOS中的代码)和更安全(因为操作系统可以控制对共享资源的访问,并防止程序相互攻击,从而实现自己的任意权限方案)。

为了与特定硬件交互,操作系统可以加载和使用自己的设备驱动程序。因此,操作系统或应用程序根本不需要调用大多数BIOS例程。事实上,出于安全原因,BIOS中断甚至被禁用。由于BIOS处于16位实模式,因此更难调用现代操作系统。

虽然在操作系统运行期间BIOS的使用非常有限,但其功能仍在外围使用,例如,当计算机睡眠时,操作系统没有运行,最终由固件将硬件设置为正确的状态,以暂停和恢复操作系统。这些用途通常仅限于ACPI调用,而不是对完整BIOS界面的调用。ACPI是一个BIOS扩展,它“将电源管理置于操作系统(OSPM)的控制之下,而不是以前的BIOS中央系统,后者依赖特定于平台的固件来确定电源管理和配置策略”。

请注意,官方上的“BIOS”指的是特定的固件接口,但该术语通常用于泛指计算机固件。最近的一些电脑(尤其是苹果电脑)已经用UEFI取代了BIOS(Sensu Structu),而UEFI当然就是为了实现这些功能而调用的。

有关BIOS的作用如何随着时间的推移而减弱的更多信息,请参见维基百科。

另一位超级用户贡献者西蒙·里希特(Simon Richter)向我们概述了BIOS仍然在做的事情:

BIOS和电源管理

BIOS为操作系统提供许多服务,其中大部分与电源管理相关:

修改CPU和总线时钟。 启用/禁用主板设备。 扩展端口电源控制。 挂起到磁盘和挂起到RAM。 恢复事件设置

由于操作系统可以更快地恢复其状态(仅重新加载内核状态,并在需要时换入程序状态,这比重新加载整个RAM快得多),因此大部分时间都在操作系统中实施挂起到磁盘,但该功能仍保留在规范中。

操作系统不能实现挂起到RAM,因为它依赖于BIOS跳过RAM初始化和测试,因此操作系统需要一个API来告诉BIOS它打算恢复当前的RAM内容。为了提供此服务,BIOS要求操作系统保持某个RAM区域不变。

所有BIOS服务的操作系统接口是需要在仿真器上运行的一段虚拟机代码,它向硬件生成必要的I/O操作。对于挂起,这通常是这样实现的,这样执行其中一个硬件写入就会触发中断,从而将控制权转移到BIOS。

对解释有什么补充吗?在评论中发声。想阅读其他精通技术的Stack Exchange用户的更多答案吗?点击这里查看完整的讨论主题。

相关文章