都是从《Linux操作系统之奥秘》上抄的。
1.1 何谓BIOS
BIOS 与各组件的关系图:
BIOS 的作用有4点:
1.自动检测并进行初始化:BIOS在开机的同时,会先对主板上的所有相关芯片进行检测,并通知个芯片开始运行。
2.记录系统设置值:用户可以通过设置BIOS来改变各种不同的设置,比如onboard显卡的内存大小。
3.中断处理:主板上的任何资源都是由BIOS分配的,包括IRQ,也就是所有AGP/PCI/PCE-E槽所需要被赋予的珍贵资源。
4.加载操作系统:用户手上所有的操作系统,都是由BIOS转交给引导扇区,再由引导扇区转到各分区激活相应的操作系统的。
所有会在BIOS之前发生的操作就只有Power On,也就是按下计算机电源开关的那一瞬间。在Power On阶段一开始,会进入BIOS的激活流程,当用户一按下电源开关,CPU会先被激活取寻找BIOS,接着BIOS会现在Flash Memory中执行,再加上CMOS中用户所喜好的设置值,然后BIOS将自己解压缩到计算机的主存储器中。
BIOS的激活流程如下:
1.2 Power On
从用户按下电源开关的那一瞬间到BIOS POST 阶段,称为Power On阶段,也就是所谓的激活电源阶段。
在Power On阶段,BIOS的主要工作是检查主机上某些硬件的状态及存储在CMOS中的设置,看看有哪些例行工作是要进行或无法执行的,因此用户无法在屏幕上看到BIOS所显示的信息(要等硬件确认后才会激活VGA)。所以当由于某些情况而造成无法开机时,在屏幕上是看不到任何信息的,唯一可以帮助排除问题的方式只有两种,看PORT 80信息,以及听哔哔的报警声。
1.3 POST
当BIOS访问玩CMOS中用户之前已经设置好的设置值之后,接下来将会有一连串的检测操作。一般来说,用户开机第一个会看到的画面,就是在检测内存大小的阶段,我们称这个步骤为开机自检(Power On Self Test, POST)。在POST中,BIOS会帮用户检查CPU,内存,显卡等相关外围控制器是否达到就绪状态,并提供简易的内存测试,只要测试没问题,就会在POST阶段显示该硬件的基本信息。
在POST阶段检查时,如果发生错误便会要求停止之后的操作,只能通过哔哔声或PORT80判断错误的原因。如果计算机上由外接的网卡,SCSI卡或其他种类开机要用到的卡时,则需要通过BIOS来激活,也可以在此POST阶段看到其Firmware或管理程序的画面。
1.4 BIOS信息
Linux下,dmidecode可以查看SMBIOS的Table。
1.5 BIOS修护
1.6 硬盘主引导扇区(MBR)
MBR示意图:
1.7 BIOS与操作系统的交互
Winodws获取硬件相关信息常需要参考BIOS中的SMBIOS,Linux则直接参考硬件而非经过BIOS。