BIOS大致可以划分为6个阶段,具体如下:
1.SEC:Security(安全)
(处理平台重启事件;创造一个临时的内存区(注意:这个时候内存还未初始化);在系统中作为一个可信的root;传递信息到PEI。
开发者可以不怎么关注,极少涉及)
2.PEI:pre-efi initialization(预EFI初始化)
( 初始化一些永久的内存;HOBs(Hand-off Blocks)中的内存;以及在HOBs里面的FV(firmware volume)位置;传递控制权到DXE阶段。
开发者需要一定的关注,用得还是比较多的)
3.DXE:driver execution environment(驱动程序执行环境)
(开发者需重点关注,从名字可以看出来,服务器上硬件驱动的执行环境,与后期外设的使用,有极大的关系)
4.BDS:boot device select(引导设备选择)
(初始化console设备;加载设备驱动;尝试加载和执行启动项。
开发者同样需要重点关注)
5.RT:run time service(运行时服务)
(这个层次,基本和OS bootloader关系比较紧密,需要了解OS)
6.AL:after life(transition from the os back to the environment) of system
(基本可以不怎么关注)
一般来讲,有的人喜欢说BIOS分为4个阶段,也没错,就是前面4个,没算最后两个。
最后,推荐大家一本书《UEFI原理与编程》(戴正华著),这本书可以看很久,从开始初学,到工作两三年,都可以看。一开始看不懂没关系,慢慢看,有个印象就行,后面说不定哪一天就突然领悟了。