17

现代操作系统中 BIOS 的功能是什么?开机后还能用吗?是否有某种 BIOS API?

4

3 回答 3

18

BIOS 仍然是在刚刚启动的 CPU 上运行的第一件事,负责启动主板硬件、设置基本的芯片组模式和寄存器、初始化一些硬件以及运行加载内核的代码。

加载内核后,BIOS 通常不使用,它依赖于 16 位执行环境,而不是现代内核运行的 32 位或 64 位保护模式环境。

引导加载程序通常确实需要 BIOS IO 调用才能将内核放入内存。即使在这个角色中,BIOS 也被更新的启动时间软件(如Coreboot )所取代,以提供更快的启动时间。EFI 有朝一日将取代传统的 BIOS,并有望取代引导加载程序,在从存储中加载内核后直接将控制权传递给内核。

发现的硬件配置、内存范围设置和 ACPI 元数据表可能是加载内核后操作系统使用的唯一基于 BIOS 的数据。任何可运行的 ACPI 代码都被编码为 ACPI 机器语言并由操作系统解释。

任何关于 MS-DOS 汇编编程的优秀传统书籍都将包含有关 BIOS 编程接口的信息。查看汇编语言编程的艺术

于 2010-03-29T18:23:10.780 回答
10

我为笔记本电脑编写 BIOS 已经好几年了。BIOS 在操作系统运行时会做很多事情。

一项主要任务是在发生许多事件时通知操作系统,以便操作系统看起来很聪明(好像它以某种方式自行解决了这些问题)。例如,BIOS 会在以下时间告诉操作系统:按下电源按钮、插入或取出电池、接通或断开交流电源、系统连接或断开扩展坞、插入硬盘驱动器和/或某些类型的光驱或删除。

大多数便携式计算机都具有您可以通过 Fn 键和制造商提供的操作系统级应用程序访问/控制的功能。BIOS 响应这些热键并具有与操作系统级应用程序交互的代码。控制屏幕亮度(某些操作系统想要控制)或控制 bling LED 等功能属于此类。

也许 BIOS 最重要的任务是在按住电源按钮超过 4 秒时关闭系统(从操作系统挂起中恢复!)。

于 2011-05-04T17:19:20.723 回答
1

现在让操作系统控制 BIOS 的最大好处是控制硬件级别的变量,例如风扇速度、温度计等。

于 2010-03-29T18:23:43.993 回答