引言
在谈论计算机的启动过程时,你可能听说过BIOS(基本输入输出系统)。这是一种固化到计算机中的程序,用于启动计算机,加载操作系统。然而,随着技术的发展,BIOS的局限性开始显现,特别是其缺乏扩展性的问题。于是,英特尔提出了一个新的概念,那就是UEFI,全称是统一的可扩展固件接口(Unified Extensible Firmware Interface)。那么,UEFI究竟是什么呢?我们为什么需要它?又是如何工作的呢?这就是本文要探讨的问题。
为什么需要UEFI?
在早期的计算机系统中,英特尔的8086处理器工作在1M实模式下,也就是说,它最多只能访问1MB的内存。这个限制主要是由于8086处理器的地址总线宽度只有20位,最多只能寻址到2的20次方,也就是1MB的内存。
然而,随着技术的发展,计算机的内存容量已经远远超过了1MB。新的处理器也能够访问更大的内存空间。但是,由于传统的BIOS仍然基于8086的1M实模式,这就意味着新的处理器在启动过程中,必须首先进入1M实模式,然后再切换到保护模式或者长模式,才能访问更大的内存空间。
这个过程不仅复杂,而且也会浪费处理器的性能。因为处理器在启动过程中,必须在不同的模式之间切换,这就像是一辆跑车在高速公路上却只能以慢速行驶,显然是对性能的一种浪费。
此外,由于BIOS是固定的,缺乏文档,完全基于经验和晦涩约定的一个事实标准,这就导致了其扩展性非常不好。例如,BIOS不能直接支持新的硬件设备,每当需要支持新的硬件设备时,都必须更新BIOS。而且,由于缺乏标准,不同的BIOS可能会有不同的实现方式,这就使得硬件制造商需要为不同的BIOS提供不同的驱动程序,增加了开发的复杂性。因此,英特尔提出了EFI(可扩展固件接口),并逐渐发展为UEFI。
可以这么理解,如果说BIOS是一部老旧的黑白电视,那么UEFI就像是一台智能彩电。它不仅具备了播放电视节目的基本功能,还能够接入网络,播放网络视频,甚至还能安装各种应用,功能强大,扩展性极强。
UEFI是如何工作的?
UEFI的工作过程可以分为几个阶段,每个阶段都有其特定的任务和功能。
- 开机阶段(Security阶段) :当你按下电源按钮,计算机开始工作,这就好比电影开始拍摄。UEFI在这个阶段会把处理器从最初的简单模式切换到更复杂的模式,同时还会为接下来的工作做一些基本的准备。
- 硬件初始化阶段(PEI阶段) :在这个阶段,UEFI会检查并初始化计算机的硬件,包括CPU、内存、硬盘等,就像导演在拍电影之前需要检查摄影机、灯光、道具等。
- 驱动加载阶段(DXE阶段) :这个阶段,UEFI会找到并加载需要的驱动程序,这些驱动程序就像电影中的演员,每个都有自己的角色和任务。
- 启动设备选择阶段(BDS阶段) :在这个阶段,UEFI会列出所有可用的启动设备,让你选择从哪个设备启动操作系统,就像导演在电影中选择合适的场景。
- 操作系统预加载阶段(TSL阶段) :在这个阶段,UEFI会为操作系统的加载做好准备,这就像导演在拍摄前做最后的准备工作。
- 操作系统加载阶段(RT阶段) :这个阶段,UEFI会把控制权交给操作系统,然后操作系统开始加载,就像电影开始正式拍摄。
- 错误处理阶段(AL阶段) :如果在启动过程中出现了严重的错误,UEFI会提供错误处理和恢复机制,就像电影拍摄过程中,如果出现了问题,导演需要找到解决办法,确保电影能够顺利拍摄完成。
UEFI与BIOS的区别
UEFI和BIOS在许多方面都存在着明显的区别。
首先,UEFI是一个标准平台,接口开放,厂家可以编写符合UEFI标准的驱动来拓展UEFI的能力,因此其扩展性极强。而传统的BIOS则不统一,封闭的,具体某个BIOS是由单个公司负责的模块。因此其规模、扩展性等都有很大限制。
其次,UEFI的99%是用C语言编写的,更像软件。而BIOS则是用汇编语言写的,更接近硬件。
再次,UEFI的基础程序在主板ROM,磁盘上的EFI系统分区可以存储更多内容。而BIOS的所有的程序和数据都在主板ROM。
此外,UEFI从文件系统(FAT格式)读取\efi\boot\bootx64.efi文件,启动这个程序,让此程序做想做的事。而BIOS从硬盘分区读取MBR(第一个扇区的前512个字节)交给CPU执行,做MBR想做的事。
最后,UEFI还有许多其他的优点,比如没有1M情节,可以通过GPT分区格式使用超过2TB的磁盘分区,有图形界面,交互体验好,可以实现安全引导,可以在UEFI UI界面和用户操作系统中更改启动配置等。而BIOS则在这些方面都做不到。
结论
总的来说,UEFI是一种全新的计算机启动方式,它弥补了BIOS的许多不足,具有更强的扩展性和更好的用户体验。随着技术的发展,UEFI将越来越广泛地应用于各种计算机系统中。
关注微/信/公/众\号:萤火架构,提升技术不迷路!