bios|电脑UEFI引导和BIOS的区别

bios|电脑UEFI引导和BIOS的区别

文章图片

bios|电脑UEFI引导和BIOS的区别

BIOS , Basic Input Output System的缩写 , 基本输入输出系统 , 当电脑因为某些故障进不去系统 , 或者重装系统时 , 我们会遇到BIOS界面 , 它是存储在主板上一颗ROM只读芯片中的程序 , 在电脑开机时提供硬件自检 , 硬件初始化 , 硬件设置 , 引导操作系统等功能 , 蓝底白字 , 全英文 , 只能键盘操作等是BIOS的特点 。

【bios|电脑UEFI引导和BIOS的区别】为什么电脑开机需要BIOS程序?手机开机就没有这个呢?手机平板等整机出售的设备 , 各硬件型号都是固定的 , 开机硬件初始化时已经预先知道有哪些设备 , 直接初始化即可 。 而一台电脑的硬件配置可就是千差万别了 , 开机时操作系统并不知道有哪些硬件设备 , 需要BIOS程序检测、初始化后抽象成软件接口传递给操作系统 , 如此操作系统就可以统一适配所有机型和硬件 。

随着CPU和其它硬件设备的革新 , BIOS逐渐成为计算机发展的瓶颈 , 主要体现在:
1.BIOS主要使用汇编语言开发 , 效率低 , 难度大 。
2.BIOS的基本输入输出服务使用中断来完成 , 开销大 , 不提供异步工作模式 , 大量的时间消耗在等待上 , cpu工作在16位实模式下 , 最大寻址范围仅1MB 。
3.BIOS的可执行程序代码没有安全防护 , 容易被攻击 。
4.BIOS使用MBR格式硬盘 , 最多4个主分区 , 最大容量不能超过2TB 。
5.各大BIOS厂商接口实现不统一 , 兼容性差 。
由此便诞生了BIOS的继任者UEFI , Unified Extensible Firmware Interface统一可扩展固件接口 , 相比BIOS有如下优点:
1.UEFI大部分代码使用C语言编写 , UEFI应用程序和驱动甚至可以使用C++编写 , 屏蔽了大量的底层硬件细节 , 对程序员提供了非常统一的调用接口 , 很多代码可以重复使用 , 如果说BIOS像一个程序 , 那么UEFI更像一个小型操作系统 , 可以加载硬件驱动 , 读取硬盘文件等 , 实现了全分辨率图形化操作界面 , 鼠标操作 , 连接网络等功能 。
2.UEFI的性能有了很大提升 , CPU工作在64位模式下 , 舍弃了中断这种比较耗时的操作方式 , 采用异步多进程操作 , 可充分利用CPU性能 , 开机自检可以仅遍历最少的设备 , 再加上从win8开始系统利用休眠文件加入的快速启动功能 , 从而使开机到进入操作系统的时间大大缩短 。
3.UEFI加入了安全启动功能 , 开启此功能后 , UEFI执行应用程序和驱动之前会先检测安全证书 , 只有证书被主板出厂内置的公钥认证通过才能被执行 , 大大增加了UEFI被恶意程序攻击的可能性 。
4.UEFI使用GPT格式硬盘 , 不限制分区数量 , 支持几乎无限的硬盘空间 。
5.UEFI是开源统一的 , 由主板供应商 , 操作系统供应商以及芯片生产公司等在内的行业参与者建立的EFI论坛共同管理维护UEFI规范 , UEFI提供了统一的接口给操作系统 。