小白学电脑基础知识普及:BIOS、EFI与UEFI详解!

本文估计很多小白看不懂,但是还是建议你硬着头皮看完,这篇文章主要讲解了这几种“BIOS”的启动方式 , 对电脑启动问题判断的理解会有益处 。
BIOS是个程序,存储在BIOS芯片中,而现在的新式电脑用的基本都是UEFI启动,早期的过渡电脑用的都是EFI启动 。其实EFI或UEFI的一部分也是存储在一个芯片中,由于它们在表面形式、基本功能上和BIOS差不多,所以习惯上我们也把存储EFI/UEFI的芯片叫做EFI/UEFI BIOS芯片,EFI/UEFI也叫做EFI/UEFI BIOS,但在实际上它们和BIOS根本是不一样的,所以最好还是把后面的“BIOS”尾巴去掉为好,下面就来具体谈一下BIOS、EFI和UEFI 。
BIOS用于计算机硬件自检、CMOS设置、引导操作系统启动、提供硬件I/O、硬件中断等4项主要功能,因此BIOS程序可以分为若干模块,主要有Boot Block引导模块、CMOS设置模块、扩展配置数据,但是EFI在制定时就定位到不足以成为专业OS的地位上,首先,它只是一个硬件和操作系统间的一个接口;其次 , EFI不提供中断访问机制 , EFI必须用轮询的方式检查并解释硬件,较OS下的驱动执行效率较低,最后,EFI只有简单的存储器管理机制,在段保护模式下只将存储器分段 , 所有程序都可以存取任何一段位置,不提供真实的保护服务 。伴随着EFI , 一种全新的GUID磁盘分区系统(GPT)被引入支持,传统MBR磁盘只能存在4个主分区,只有在创建主分区不足4个时,可以建立一个扩展分区 , 再在其上建立被系统识别的逻辑分区,逻辑分区也是有数量的,太多的逻辑分区会严重影响系统启动,MBR硬盘分区最大仅支持2T容量 , 对于现在的大容量硬盘来说也是浪费 。GPT支持任意多的分区,每个分区大小原则上是无限制的 , 但实际上受到OS的规定限制不能做到无限,不过比MBR的2T限制是非常重要的进步 。GPT的分区类型由GUID表唯一指定,基本不可能出现重复 , 其中的EFI系统分区可以被EFI存?。?用来存取部分驱动和应用程序,虽然这原则上会使EFI系统分区变得不安全 , 但是一般这里放置的都是些“边缘”数据,即使其被破坏,一般也不会造成严重后果,而且也能够简单的恢复回来 。
当EFI发展到1.1的时候,英特尔决定把EFI公之于众,于是后续的2.0吸引了众多公司加入,EFI也不再属于英特尔,而是属于了Unified EFI Form的国际组织,EFI在2.0后也遂改称为UEFI,UEFI,其中的EFI和原来是一个意思,U则是Unified(一元化、统一)的缩写 , 所以UEFI的意思就是“统一的可扩展固件接口” , 与前身EFI相比,UEFI主要有以下改进:
首先,UEFI具有完整的图形驱动功能 , 之前的EFI虽然原则上加入了图形驱动 , 但为了保证EFI和BIOS的良好过渡,EFI多数还是一种类DOS界面(仍然是640*480VGA分辨率),只支持PS/2键盘操作(极少数支持鼠标操作),不支持USB键盘和鼠标 。到了UEFI , 则是拥有了完整的图形驱动,无论是PS/2还是USB键盘和鼠标,UEFI一律是支持的,而且UEFI在显卡也支持GOP VBIOS的时候,显示的设置界面是显卡高分辨率按640*480或1024*768显示,因此画面虽小但很清楚,但是这样会导致屏幕周围大片留黑,不过鱼和熊掌不可兼得,除非UEFI默认窗口大小也是最高分辨率 。
其次,UEFI具有一个独特的功能 , 安全启动,而EFI是没有安全启动的,安全启动(Secure Boot) , 实际上通俗的解释是叫做固件验证 。开启UEFI的安全启动后,主板会根据TPM芯片(或者CPU内置的TPM)记录的硬件签名对各硬件判断,只有符合认证的硬件驱动才会被加载,而Win8以后的Windows则是在操作系统加载的过程中对硬件驱动继续查签名,符合Windows记录的硬件才能被Windows加载,这在一定程度上降低了启动型程序在操作系统启动前被预加载造成的风险 , 但是这也会造成系统安装变得垄断 。
无论EFI还是UEFI,都必须要有预加载环境、驱动执行环境、驱动程序等必要部分组成,为了支持部分旧设备(如在UEFI下挂载传统MBR硬盘,不支持UEFI启动的显卡在UEFI下仍然支持运行等),还需要一个CSM兼容性支持模块、EFI或UEFI都是仅支持GPT磁盘引导系统的,下面就具体谈一下EFI或UEFI启动计算机的过程 。
一般地,预加载环境和驱动执行环境是存储在UEFI(UEFI BIOS)芯片中的 , 当打开电源开关时,电脑的主要部件都开始有了供电,与BIOS不同的是,UEFI预加载环境首先开始执行 , 负责CPU和内存(是全部容量)的初始化工作,这里如出现重要问题,电脑即使有报警喇叭也不会响,因为UEFI没有去驱动8255发声,不过预加载环境只检查CPU和内存,如果这两个主要硬件出问题,屏幕没显示可以立即确定,另外一些主板会有提供LED提示,可根据CPU或内存亮灯大致判断故障 。
CPU和内存初始化成功后,驱动执行环境(DXE)载入,当DXE载入后,UEFI就具有了枚举并加载UEFI驱动程序的能力 , 在此阶段 , UEFI会枚举搜索各个硬件的UEFI驱动并相继加载,完成硬件初始化工作,这相比BIOS的读中断加载速度会快的多,同样如加载显卡的UEFI驱动成功,电脑也会出现启动画面,硬件驱动全部加载完毕后,最后同BIOS一样,也得去启动操作系统 。
在启动操作系统的阶段,同样是根据启动记录的启动顺序,转到相应设备(仅限GPT设备,如果启动传统MBR设备,则需要打开CSM支持)的引导记录 , 引导操作系统并进入 , 这里需要注意的是,UEFI在检测到无任何操作系统启动设备时 , 会直接进入UEFI设置页面 , 而不是像BIOS那样黑屏显示相关信息 。
综上对BIOS和UEFI启动计算机过程的叙述,可以概括为:BIOS先要对CPU初始化,然后跳转到BIOS启动处进行POST自检,此过程如有严重错误,则电脑会用不同的报警声音提醒,接下来采用读中断的方式加载各种硬件,完成硬件初始化后进入操作系统启动过程;而UEFI则是运行预加载环境先直接初始化CPU和内存,CPU和内存若有问题则直接黑屏,其后启动PXE采用枚举方式搜索各种硬件并加载驱动 , 完成硬件初始化 , 之后同样进入操作系统启动过程 。
此外,BIOS是16位汇编语言程序 , 只能运行在16位实模式,可访问的内存只有1MB,而UEFI是32位或64位高级语言程序(C语言程序),突破实模式限制,可以达到要求的最大寻址 。
【小白学电脑基础知识普及:BIOS、EFI与UEFI详解!】以上就是朝夕生活(www.30zx.com)关于“小白学电脑基础知识普及:BIOS、EFI与UEFI详解!”的详细内容,希望对大家有所帮助!

猜你喜欢