统一可扩展固件接口统一可扩展固件接口(UEFI)和操作系统UEFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力
不少人感觉它的不断发展将有可能代替现代的操作系统
事实上,EFI的缔造者们在第一版规范出台时就将EFI的能力限制于不足以威胁操作系统的统治地位
首先,它只是硬件和预启动软件间的接口规范;其次,UEFI环境下不提供中断的机制,也就是说每个EFI驱动程序必须用轮询(polling)的方式来检查硬件状态,并且需要以解释的方式运行,较操作系统下的机械码驱动效率更低;再则,UEFI系统不提供复杂的缓存器保护功能,它只具备简单的缓存器管理机制,具体来说就是指运行在x64或x86处理器的64位模式或保护模式下,以最大寻址能力为限把缓存器分为一个平坦的段(Segment),所有的程序都有权限访问任何一段位置,并不提供真实的保护服务
当UEFI所有组件加载完毕时,便会启动操作系统的启动程序,如果UEFI固件内置EFI Shell,也可以启动EFI Shell命令提示(部分UEFI固件内置EFI Shell),在这里,用户可以调入执行EFI应用程序,这些EFI程序可以是OEM提供的硬件检测软件,OEM提供的备份软件,引导管理软件,操作系统的启动程序等等,也可以加载EFI分区(ESP)中的EFI驱动程序(如文件系统驱动程序)
EFI应用程序和EFI驱动程序可以是PE格式的.efi文件,可用C语言编写
在UEFI引导模式下,操作系统的启动程序也是EFI应用程序,启动程序的EFI文件存储在EFI系统分区(ESP)上
理论上来说,对于EFI应用程序的功能并没有任何限制,任何人都可以编写这类软件,并且效果较以前MS-DOS下的软件更华丽,功能更强大
一旦引导软件将控制权交给操作系统,所有用于引导的服务代码将全部停止工作,部分运行时,代服务程序还可以继续工作,以便于操作系统一时无法找到特定设备的驱动程序时,该设备还可以继续被使用
UEFI固件区分架构,在UEFI引导模式下,通常只能运行特定架构的UEFI操作系统和特定架构的EFI应用程序(EBC程序除外)
比如,采用64位UEFI固件的PC,在UEFI引导模式下只能运行64位操作系统启动程序;而在Legacy引导模式(即BIOS兼容引导模式)下,通常不区分操作系统的比特数,既可以运行16位的操作系统(如DOS),也可以运行32位或64位的操作系统,和BIOS一样
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。