UEFI系统组成

简介: UEFI系统组成

UEFI提供给操作系统的接口包括启动服务(Boot Services, BS)和运行时服务(Runtime Service, RT)以及隐藏在BS之后的丰富的Protocol。BS和RT以表的形式(C语言中的结 构体)存在。UEFI驱动和服务以Protocol的形式通过BS提供给操作系统。


从操作系统加载器(OS Loader)被加载,到OS Loader执行ExitBootServicesQ的这 段时间,是从UEFI环境向操作系统过渡的过程。在这个过程中,OS Loader可以通过BS 和RT使用UEFI提供的服务,将计算机系统资源逐渐转移到自己手中,这个过程称为TSL (Transient System Load) o

当OS Loader完全掌握了计算机系统资源时,BS也就完成了它的使命。OS Loader调用 ExitBootServicesQ结束BS并回收BS占用的资源,之后计算机系统进入UEFI Runtime阶段。 在Runtime阶段只有运行时服务继续为OS提供服务,BS已经从计算机系统中销毁。


在TSL阶段,系统资源通过BS管理,BS提供的服务如下。

1) 事件服务:事件是异步操作的基础。有了事件的支持,才可以在UEFI系统内执行并 发操作。

2) 内存管理:主要提供内存的分配与释放服务,管理系统内存映射。

3) Protocol管理:提供了安装Protocol与卸载Protocol的服务,以及注册Protocol通知 函数(该函数在Protocol安装时调用)的服务。

4) Protocol使用类服务:包括Protocol的打开与关闭,査找支持Protocol的控制器。 例如要读写某个PCI设备的寄存器,可以通过OpenProtocol服务打开这个设备上的Pcilo Protocol,用PciIo->Io.Read。服务可以读取这个设备上的寄存器。

5) 驱动管理:包括用于将驱动安装到控制器的connect服务,以及将驱动从控制器上卸 载的disconnect服务。例如,启动时,如果我们需要网络支持,则可以通过loadimage将驱 动加载到内存,然后通过connect服务将驱动安装到设备。

6) Image管理:此类服务包括加载、卸载、启动和退出UEFI应用程序或驱动。

7) ExitBootServices :用于结束启动服务。

RT提供的服务主要包括如下几个方面。

1 )时间服务:读取/设定系统时间。读取/设定系统从睡眠中唤醒的时间。

2) 读写UEFI系统变量:读取/设置系统变量,例如BootOrder用于指定启动项顺序。 通过这些系统变量可以保存系统配置。

3) 虚拟内存服务:将物理地址转换为虚拟地址。

4) 其他服务:包括重启系统的ResetSystem,获取系统提供的下一个单调单增值等。


相关文章
|
2月前
BIOS/UEFI技术
BIOS/UEFI技术
|
11月前
BIOS 与 UEFI。
BIOS 与 UEFI。
121 2
|
网络协议 安全 Linux
2.2.3开机流程中的BIOS与UEFI开机检测程序
2.2.3开机流程中的BIOS与UEFI开机检测程序
142 0
2.2.3开机流程中的BIOS与UEFI开机检测程序
|
Linux 虚拟化 Windows
如何在把Linux装进移动硬盘/U盘(UEFI启动)?
如何在把Linux装进移动硬盘/U盘(UEFI启动)?
2560 1
|
编译器
1.操作系统如何从BIOS到MBR的
1.操作系统如何从BIOS到MBR的
135 0
Win系统 - 教你在系统内查看机器的主板型号 & BIOS版本
Win系统 - 教你在系统内查看机器的主板型号 & BIOS版本
603 0
Win系统 - 教你在系统内查看机器的主板型号 & BIOS版本
|
Windows
Win系统 - BIOS刷坏了怎么办?
Win系统 - BIOS刷坏了怎么办?
278 0
Win系统 - BIOS刷坏了怎么办?
|
Linux
10.9 Linux开机自动挂载硬件设备(配置etcfatab文件)
了解了 mount 命令之后,读者可能会问,系统如何在开机时自动挂载硬盘,它又是怎么知道哪些分区是需要挂载的呢?
308 0
10.9 Linux开机自动挂载硬件设备(配置etcfatab文件)
|
安全