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