Joh*_*mBF 78 bios windows linux
我一直想知道 BIOS(除了进行 POST、启动引导加载程序并将控制权在按下电源按钮后传递给操作系统之外)在操作系统运行时是否有任何用途或功能?
操作系统在运行时是否与 BIOS 通信,如果是,如何通信?
Mec*_*ail 73
使用现代操作系统,几乎没有。据报道,Linus Torvalds 表示其任务是“只需加载操作系统并摆脱那里”。
像 MS-DOS 这样的旧操作系统通过调用中断来依赖 BIOS 执行许多任务(例如磁盘访问)。
对于现代操作系统,引导加载程序可以快速切换到 32 位或 64 位模式并执行操作系统内核。内核可以注册自己的中断处理程序,用户空间应用程序可以调用它们。内核的例程可以更便携(因为它们不依赖于特定的硬件)、更灵活(操作系统供应商可以按需更改它们而不必使用硬件附带的任何东西)、更复杂(它们可以执行任意复杂的代码而不是编程到 BIOS 中的内容),并且更安全(因为操作系统可以控制对共享资源的访问并防止程序相互破坏,实现自己的任意权限方案)。
为了与特定硬件交互,操作系统可以加载和使用自己的设备驱动程序。因此,操作系统或应用程序根本不需要调用大多数 BIOS 例程。事实上,出于安全原因,BIOS 中断甚至被禁用。由于 BIOS 处于 16 位实模式,因此很难调用现代操作系统。
虽然在操作系统运行时 BIOS 的使用非常有限,但它的功能仍然在外围使用。例如,当计算机休眠时,操作系统未运行,最终由固件负责将硬件设置为正确状态以暂停和恢复操作系统。这些用途通常仅限于ACPI调用,而不是对完整 BIOS 接口的调用。ACPI 是一种 BIOS 扩展,它“将电源管理置于操作系统 (OSPM) 的控制之下,与之前的 BIOS 中央系统相反,后者依赖于特定于平台的固件来确定电源管理和配置策略”。
请注意,正式的“BIOS”是指特定的固件接口,但该术语通常用于泛指计算机固件。最近的一些计算机(尤其是 Apple 计算机)已经用UEFI替换了 BIOS (sensu strictu) ,当然,这就是实现这些功能的方法。
有关 BIOS 的作用如何随着时间的推移而减弱的更多信息,请参阅Wikipedia。
Sim*_*ter 33
BIOS 为操作系统提供了许多服务,其中大部分与电源管理相关:
Suspend-to-disk 大部分时间是在 OS 中实现的,因为 OS 可以更快地恢复其状态(仅重新加载内核状态,并在需要时交换程序状态,这比重新加载整个 RAM 快得多),但是该功能保留在规范中。
OS 无法实现 Suspend-to-RAM,因为它依赖于 BIOS 跳过 RAM 初始化和测试,因此 OS 需要一个 API 来告诉 BIOS 它打算使用当前 RAM 内容恢复。为了提供此服务,BIOS 要求操作系统保留某个 RAM 区域不变。
用于所有 BIOS 服务的 OS 接口是一段需要在仿真器上运行的虚拟机代码,它生成必要的 I/O 操作到硬件中。对于挂起,这通常是这样实现的,即执行硬件写入之一然后触发中断,将控制权转移到 BIOS。
小智 17
在现代系统中,操作系统在三个主要领域使用 BIOS,例如使用 UEFI 标准的领域。第一个是一系列服务,称为 UEFI 运行时服务。这些服务允许操作系统获取只有 BIOS 知道的信息,例如 BIOS 使用的时间、引导顺序、当前用户安全配置文件、有关主板、DIMM 的信息等。
第二种是系统管理模式,它是由高优先级中断 (SMM) 访问的内存 (SMRAM) 的隐藏部分。许多 BIOS 使用它来实现高安全性 OEM 功能或实现硬件变通。
第三个是ACPI。ACPI 提供操作系统使用的配置、电源管理和硬件数据和代码,以增加操作系统驱动程序可以使用行业标准或设备驱动程序找到的内容。例如,是否有特殊的信号来控制硬盘驱动器的电源,或者是否有一种特殊的方式与标准未涵盖的电池通话。
蒂姆
小智 9
现代操作系统使用 BIOS 主要仅用于加载,但它仍有一些用途,其中最显着的是: