Legacy和UEFI

阅读数:194 评论数:0

跳转到新版页面

分类

OS

正文

legacy

BIOS在1975年由IBM提出,现在一般使用legacy表示。

1、主要作用:

(1)加电自检程序,开机时对硬件检测

(2)初始化,硬件初始化和中断向量初始化等

(3)基本外围处理的子程序代码

(4)CMOS设置程序

2、缺点

(1)开发效率低:大部分BIOS使用汇编,使代码与硬件耦合程序高,受硬件影响大,导制开发效率低。

(2)性能差:使用大量中断,导致开销大。没有异步,导致大量时间消耗在没用的等待上。

(3)功能扩展性差,升级缓慢:BIOS代码采用静态链接,要增加硬件功能,必须把代码放到0x0c0000~0x0dFFFF区间,初始化的时候要约定对应的中断。而且BIOS没有提供动态加载设备驱动方案。

(4)安全性:BIOS运行过程中对可执行代码没有安全方面的考虑。

(5)不支持从硬盘2T以上的地址引导:受限于BIOS硬盘的寻址方式,BIOS采用32地址,因而引导扇区的最大逻辑地址是$2^32$(换算成字节,即$2^32 \times 512=2TB$)。

legacy BIOS官方说在2020年将会退出历史舞台,现在行内说的BIOS一般指UEFI。

UEFI

1、Unified Extensible Firmware Interface统一可扩展固件接口

其定义了平台固件和操作系统之间标准,只是一种标准,并没有提供实现,具体实现一般由平台公司提供

2、实现一般分为两个部分

(1)平台初始化

(2)固件-操作系统接口

3、与legacy相比

(1)开发效率高:在UEFI中,绝大部分代码采用C语言编写,UEFI应用程序和驱动甚至可以用C++编写,采用BS和RT服务,为OS和OS加载器屏蔽了底层硬件细节,使用UEFI上层应用可以方便使用。

(2)扩展性:体现在两个方面,一是驱动模块化设计,二是软硬件升级的兼容性。

大部分硬件的初始化是通过UEFI驱动实现。每个驱动是一个独立的模块,可以包含在固件中,也可以放在设备上,运行时根据需要动态加载

UEFI的每个表,每个Protocol都有版本号,系统平滑升级更简单。

(3)系统性能:

UEFI提供异步操作。基于事件的异步操作,提高了CPU的利用率,减少了总的等待时间。

UEFI舍弃了中断这种比较好的操作外部设备的方式,只保留了时钟中断。外部设备操作采用“事件+异步操作”完成。

可伸缩遍历设备,启动时可以仅仅遍历所需要设备,从而加速系统的启动。

(4)系统安全性

当系统安全功能打开后,UEFI在执行应用程序和驱动产会检测程序和驱动的证书,仅当证书被信任时才会执行这个应用程序或驱动。UEFI应用程序和驱动采用PE/COFF格式,基签名放在签名块下。

4、UEFI官网:www.uefi.org
规范主要有两个:
UEFI specification -仅仅限于制定操作系统和系统固件的编程接口
UEFI Platform Initialization specification (PI) -PI 制定主板从上电到把控制权交给操作系统这个中间过程




相关推荐

一、概述 1、SMBIOS System Management BIOS,是主板或者系统制造厂商以标准格式显示产品信息所遵循的统一规范。每个主板厂商或者OEM(Original Equipment M

BIOS BIOS用于计算机硬件自检、CMOS设置、引导操作系统启动、提供硬件I/O、硬件中断等4项主要功能,因此