一.BIOS 和EFI 的区别:
BIOS是一个固定的程序,通常都是封闭的;EFI 是一套接口,像是一个运行时环境,规范了一组应用程序编程接口,基于EFI 的程序可以利用这些接口实现功能。目前大部分的PC 机使用BIOS 进行引导,Mac OS X使用EFI 进行引导,他们的目的都是一样的加载一些自举程序代码给CPU执行,自举程序负责POST(上电自检)阶段,CPU探测各种硬件总线,查明安装了哪些设备,BIOS或固件定位这些引导设备,执行引导加载程序,将所有必要的命令行参数传递给操作系统内核。固件接口,包括用户接口和处理器接口,比BIOS 更为丰富,相比之下,BIOS存在很多局限性:分区方案不扩展;无法和强大的图形设备进行接口操作;没有可扩展性,没有插件式的驱动程。
二.EFI服务
EFI服务分为两类:引导服务和运行时服务。引导服务只能在FEI模式下使用,运行时服务在退出EFI模式,在加载操作系统以后也能使用。
引导服务:通常情况下,当控制权转交到操作系统之前会调用ExitBootServices()这个函数,当系统还在EFI环境中,而且还没有调用ExitBootServices()函数之前,可以访