【发布时间】:2011-02-02 04:09:24
【问题描述】:
BIOS 在现代操作系统中的作用是什么?开机后还能用吗?是否有某种 BIOS API?
【问题讨论】:
标签: api operating-system bios
BIOS 在现代操作系统中的作用是什么?开机后还能用吗?是否有某种 BIOS API?
【问题讨论】:
标签: api operating-system bios
BIOS 仍然是在刚刚启动的 CPU 上运行的第一件事,负责启动主板硬件、设置基本芯片组模式和寄存器、初始化一些硬件以及运行加载内核的代码。
一旦加载内核,BIOS 通常不会被使用,它依赖于 16 位执行环境,而不是现代内核运行的 32 位或 64 位保护模式环境。
引导加载程序通常需要 BIOS IO 调用才能将内核放入内存。即使在这个角色中,BIOS 也被更新的引导时间软件(例如Coreboot)所取代,以提供更快的引导时间。 EFI 有朝一日会取代传统的 BIOS,并有望取代引导加载程序,在从存储加载内核后直接将控制权传递给内核。
发现的硬件配置、内存范围设置和 ACPI 元数据表可能是加载内核后操作系统使用的唯一基于 BIOS 的数据。任何可运行的 ACPI 代码都被编码为 ACPI 机器语言并由操作系统解释。
任何关于 MS-DOS 汇编编程的优秀传统书籍都将包含有关 BIOS 编程接口的信息。查看The Art of ASSEMBLY LANGUAGE PROGRAMMING
【讨论】:
我为笔记本电脑编写 BIOS 已经好几年了。 BIOS 在操作系统运行时会做很多事情。
一项主要任务是在发生许多事件时通知操作系统,以便操作系统看起来很聪明(好像它以某种方式自行解决了这些问题)。例如,BIOS 会在以下时间告诉操作系统:按下电源按钮、插入或取出电池、接通或断开交流电源、系统连接或断开扩展坞、插入硬盘驱动器和/或某些类型的光驱或删除。
大多数便携式计算机都具有您可以通过 Fn 键和制造商提供的操作系统级应用程序访问/控制的功能。 BIOS 响应这些热键并具有与操作系统级应用程序交互的代码。控制屏幕亮度(某些操作系统希望显示控制)或控制闪烁的 LED 等功能属于此类。
也许 BIOS 最重要的任务是在按住电源按钮超过 4 秒时关闭系统(从操作系统挂起中恢复!)。
【讨论】:
现在让操作系统控制 BIOS 的最大好处是控制硬件级别的变量,例如风扇速度、温度计等。
【讨论】: