Total Pageviews

Friday 14 June 2024

BIOS、EFI与UEFI详解

 

在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设置模块、扩展配置数据(ESCD)模块、DMI收集硬件数据模块,其中引导模块直接负责执行BIOS程序本身入口、计算机基本硬件的检测和初始化,ESCD用于BIOS与OS交换硬件配置数据,DMI则充当了硬件管理工具和系统层之间接口的角色,通过DMI,用户可以直观地获得硬件的任何信息,CMOS设置模块就是实现对硬件信息进行设置,并保存在CMOS中,是除了启动初始化以外BIOS程序最常用的功能。

BIOS本身是汇编语言代码,是在16位实模式下调用INT 13H中断执行的,由于x86-64是一个高度兼容的指令集,也为了迁就BIOS的16位实模式的运行环境,所以即使现在的CPU都已是64位,如果还是在BIOS启动(基本见于09年以前的主板),在开机时仍然都是在16位实模式下执行的。16位实模式直接能访问的内存只有1MB,就算你安了4G、8G或者16G还是32G内存,到了BIOS上一律只先认前1MB。在这1MB内存中,前640K称为基本内存,后面384K内存留给开机必要硬件和各类BIOS本身使用,了解了这些,下面谈一下BIOS启动计算机的具体过程。

当按下电源开关时,电源就开始向主板和其他设备供电,这时电压还不稳定,在早期的南北桥主板上,由主板北桥向CPU发复位信号,对CPU初始化;稳定电压后复位信号便撤掉。而对于现在的单南桥主板,则由CPU自身调整稳定电压达到初始化的目的,当电压稳定后,CPU便在系统BIOS保留的内存地址处执行跳转BIOS起始处指令,开始执行POST自检。

在POST自检中,BIOS只检查系统的必要核心硬件是否有问题,主要是CPU、640K基本内存、显卡是否正常,PS/2键盘控制器、系统时钟是否有错误等等。由于POST检查在显卡初始化以前,因此在这个阶段如发生错误,是无法在屏幕上显示的,不过主板上还有个报警扬声器,而且如果主板的8255外围可编程接口芯片没有损坏的话,POST报警声音一定是会出来的。可以根据报警声的不同大致判断错误所在,一般情况下,一声短“嘀”声基本代表正常启动,不同的错误则是不同的短“嘀”声和长“嘀”声组合。POST自检结束后,BIOS开始调用中断完成各种硬件初始化工作。

硬件初始化工作中,主要说明两点,首先经过POST检测后,电脑终于出现了开机启动画面,这就是已经检测到了显卡并完成了初始化。但是请注意,由于BIOS是在16位实模式运行,因此该画面是以VGA分辨率(640*480,纵横比4:3)显示的,因为实模式最高支持的就是VGA。以前的小14-17寸CRT显示器由于都是4:3比例,最高分辨率也比较低,因此这个开机启动画面没有什么违和感,但现在的液晶显示器基本上都是宽屏16:9的,分辨率也较高,因此在这样的显示屏下,启动画面上的一切东西显示都可以说“惨不忍睹”——图形被拉长,字体很大很模糊,可以很明显看到显示字体的锯齿。第二,BIOS只识别到由主引导记录(MBR)初始化的硬盘,之所以说明这点,是因为后续的EFI或UEFI采用了一种新的GUID磁盘分区系统(GPT)格式,这种硬盘在BIOS下是无法识别的。硬件全部初始化完毕后,接下来进入更新ESCD阶段。

在ESCD更新阶段中,BIOS将对存储在CMOS中和操作系统交换的硬件配置数据进行检测,如果系统硬件发生变动,则会更新该数据,否则不更新保持原状不变,ESCD检测或更新结束后,BIOS将完成最后一项工作,就是启动操作系统。

最后这一步中,BIOS根据CMOS中用户指定的硬件启动顺序,读取相应设备的启动或引导记录,引导相应设备上的操作系统启动,进入操作系统,此后便由操作系统接替BIOS负责硬件和软件间的相互通信。如果发现所有硬件都没有能引导操作系统的记录,则会在屏幕上显示相应错误信息,并将电脑维持在16位实模式。

虽然BIOS作为电脑加电启动所必不可少的部分,但是从其于1975年诞生之日起近30余年,16位汇编语言代码,1M内存寻址,调用中断一条条执行的理念和方式竟然一点都没有改变,虽然经各大主板商不懈努力,BIOS也有了ACPI、USB设备支持,PnP即插即用支持等新东西,但是这在根本上没有改变BIOS的本质,而英特尔为了迁就这些旧技术,不得不在一代又一代处理器中保留着16位实模式(否则根本无法开机的)。但是,英特尔在2001年开发了全新的安腾处理器,采用IA-64架构,并推出了全新的EFI。后来证明,安腾处理器、IA-64架构没有推广开来,而EFI和后继的UEFI却发扬光大,成为现在电脑的主要预启动环境。

EFI,是Extensible Firmware Interface的词头缩写,直译过来就是可扩展固件接口,它是用模块化、高级语言(主要是C语言)构建的一个小型化系统,它和BIOS一样,主要在启动过程中完成硬件初始化,但它是直接利用加载EFI驱动的方式,识别系统硬件并完成硬件初始化,彻底摒弃读各种中断执行。EFI驱动并不是直接面向CPU的代码,而是由EFI字节码编写成,EFI字节码是专用于EFI的虚拟机器指令,需要在EFI驱动运行环境DXE下解释运行,这样EFI既可以实现通配,又提供了良好的兼容。此外,EFI完全是32位或64位,摒弃16位实模式,在EFI中就可以实现处理器的最大寻址,因此可以在任何内存地址存放任何信息。另外,由于EFI的驱动开发非常简单,基于EFI的驱动模型原则上可以使EFI接触到所有硬件功能,在EFI上实现文件读写,网络浏览都是完全可能的。i,BIOS上的的CMOS设置程序在EFI上是作为一个个EFI程序来执行的,硬件设置是硬件设置程序、而启动管理则是另一个程序,保存CMOS又是另一个程序,虽然它们在形式的Shell上是在一起的。

EFI在功能上完全等同于一个轻量化的OS,但是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和UEFI简介


BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。 BIOS设置程序是储存在BIOS芯片中的,BIOS芯片是主板上一块长方形或正方形芯片,只有在开机时才可以进行设置。(一般在计算机启动时按F2或者Delete进入BIOS设置。一些特殊机型按F1、Esc、F12等),BIOS设置程序主要对计算机的基本输入输出系统进行管理和设置,使系统运行在最好状态下,使用BIOS设置程序还可以排除系统故障或者诊断系统问题。有人认为既然BIOS是"程序",那它就应该是属于软件,感觉就像自己常用的Word或Excel。但也有很多人不这么认为,因为它与一般的软件还是有一些区别,而且它与硬件的联系也是相当地紧密。形象地说,BIOS应该是连接软件程序与硬件设备的一座"桥梁",负责解决硬件的即时要求。主板上的BIOS芯片或许是主板上唯一贴有标签的芯片,一般它是一块32针的双列直插式的集成电路,上面印有"BIOS"字样。 BIOS技术一直是计算机软件系统中与硬件联系最紧密的,在PC启动的过程中,BIOS担负着初始化硬件,检测硬件功能,以及引导操作系统的责任,可以看出,BIOS对于计算机系统来说,是非常重要的系统软件,没有BIOS的计算机是无法运行的。传统BIOS经过了长达20多年的时间,基本上没有大的改进,在CPU和操作系统已经完全64位化的今天,BIOS仍然停留在16位实模式时代,只能访问1MB的基础内存,同时BIOS的开发中还大量使用汇编语言,使得开发入门难度增加,并且业界没有一个统一的规范。

【UEFI简介】
新型UEFI,全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述全新类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上,从而使开机程序化繁为简,节省时间。 UEFI是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织,贡献者有Intel,Microsoft,AMI,等几个大厂,属于开源系统。 拥有诸多最新技术特性的UEFI,将不再是一个低级的、黑底白字的人机界面,在最终的用户手中,UEFS可以被看作是一个迷你操作系统,可玩度相当高、操作性相当强、界面也将十分友善,。   其实从XP时代开始(仅限安腾版的Server 2003 64位系统),微软就对UEFI提供了支持,但直到Vista时代才在桌面操作系统正式提供了支持。目前的Windows 7 X64可以对UEFI提供最完美的支持,但32bit操作系统并不支持。    其实从XP时代开始(仅限安腾版的Server 2003 64位系统),微软就对UEFI提供了支持,但直到Vista时代才在桌面操作系统正式提供了支持。目前的Windows 7 X64和Windows 8 X64可以对UEFI提供最完美的支持,但32bit操作系统并不支持。

 【UEFI的优势】
UEFI

  UEFI最直接的好处就是可以提高磁盘性能,不仅可以支持大于2TB的硬盘,而且在UEFI的支持下可以获得最快的启动速度。因为微软针对UEFI对Windows的启动流程进行了改良。

开机时间
目前许多电脑厂商已经开始使用UEFI,并预计UEFI机型的销售从2011年开始将占主导地位,据微软最新的报告称,将在2013年左右,在安装了SSD硬盘的电脑中,启动时间不得大于2S,在安装了2.5 寸的HDD中,启动时间不得大于4S,否则厂商不能拿到微软WIN8的LOGO

图形界面
丰富的图形界面、可以上网浏览……从这些功能来看,UEFI就像一个活生生的操作系统。Intel在业界的影响力路人皆知,难道它也想染指操作系统?如果是这样,微软还在鼎力支持,岂不是养虎为患?微软当然不会傻到这种程度。事实上,UEFI只是硬件和预启动软件之间的接口规范,它的实力尚不足以对操作系统构成威胁。另外,UEFI驱动程序使用“轮询”方式来检查硬件状态,它的运行效率并不如操作系统直接高效。再者,UEFI只具备简单的存储器管理机制,还不足以适应多任务环境的运行需求。从目前的情形看,UEFI想取代操作系统,至少还有漫长的路要走。

鼠标操作
UEFI将让枯燥的字符界面成为历史!UEFI采用图形界面,可以提供一个高分辨率的彩色图形环境,用户进入后能用鼠标点击调整配置,一切就像操作Windows系统下的应用软件一样简单。BIOS将不再是高手才能玩转的工具,光这一点就足以让很多菜鸟朋友心仪不已了。

强大的可扩展性
我们都知道,当电脑出现故障导致无法进入操作系统时,我们往往要借助其他工具才能解决问题,BIOS在诊断系统故障方面的作用实是在太小了。不过,UEFI将不会重蹈BIOS功能单一的覆辙!强大的可扩展性是UEFI的另一大优点。UEFI将使用模块化设计,它在逻辑上分为硬件控制与OS(操作系统)软件管理两部分,硬件控制为所有UEFI版本所共有,而OS软件管理其实是一个可编程的开放接口。借助这个接口,主板厂商可以实现各种丰富的功能。比如我们熟悉的各种备份及诊断功能可通过UEFI加以实现,主板或固件厂商可以将它们作为自身产品的一大卖点。如果你更习惯让别人来维护机器,UEFI也提供了强大的联网功能,其他用户可以对你的主机进行可靠的远程故障诊断,而这一切并不需要进入操作系统!要知道,如今的BIOS就是添加几个简单的USB设备支持都极其困难,更别说上网浏览网页了。 

最后,微软认为UEFI是大势所趋,2-3年内必将取代BIOS成为主流,倡议业界尽快进行相关测试,并且加入UEFI论坛共同完善这项标准,并推动新技术更好更快的发展。目前新买的笔记本电脑基本上都支持UEFI,并都在朝预装windows 8系统的方向发展。
-------------------------------------------------------------------------------------------------------------

Windows电脑各分区作用详解

随着预装Win8电脑大量涌向市场,UEFI+GPT这一标准组合受到了更大范围的关注。UEFI+GPT无疑是未来的发展趋势,所以我们有必要先来了解一下用于引导Windows的GPT分区结构的磁盘中一些特殊分区的作用。

使用Windows安装程序默认创建的分区

当我们在GPT中安装Windows8/7,并且使用Windows安装程序对硬盘进行重分区操作时默认将创建下表所示的几个分区。



下面来简单说说这些分区的作用: 第一个恢复分区是存放WinRE映像的分区,这一分区只在安装Windows8时默认被创建。WinRE是Windows恢复环境的简称,包含系统还原点还原、系统映像恢复(据目前了解的情况,这一功能将在Windows 8.1中被移除)、系统刷新、系统重置等功能。当Windows 8 系统无法正常启动时也会自动故障转移至WinRE。 在Windows7中WinRE和Windows安装分区在同一个分区,并没有单独拿出来。Win8中微软默认将WinRE和Windows 安装分区分离,目的应该是最大程度保证WinRE的可靠性。在MBR硬盘上安装Windows 8时,你会发现系统保留分区的大小由Win7时的100MB扩大到了350MB,这多出来的空间就是用于保存WinRE映像的。 第二个分区是存放系统引导文件的分区,这是实现UEFI引导所必须的分区。 第三个MSR分区,这是微软保留分区,目前尚不清楚其具体作用。已知将基本磁盘转换为动态磁盘是该分区将发挥作用。 第四个就是我们安装系统是要选择的目标分区。其实际容量=你指定的容量-前面几个分区容量。 如果只考虑系统的正常启动,那么EFI系统分区(第二个)和Windows安装分区(第四个分区)这两个分区是必须的。

预装Windows 8的品牌机默认分区(以联想某型号为例)

在预装Win8的品牌机中同样会看到上表中所示的这些分区,不过其大小可能会有所不同,同时你可能还会看到其他的隐藏分区。下表是联想某一型号预装Win8电脑默认的分区情况。


对比第一个表中的分区情况,第二个表格中多出来的分区是用于品牌机一键恢复的。其中的OEM分区是品牌机用于存放一键恢复工具的,而容量较大的恢复分区则是用于存放系统备份映像的。
------------------
 
EasyUEFI破解版(UEFI系统启动项管理)

EasyUEFI最新版是一个免费的用于管理EFI/UEFI启动项的Windows软件。UEFI对于大部分人来说比较陌生,想要充分了解它的话请参考维基百科,不过你也可以简单的把它看作是bios的替代品,因为它比后者先进很多。EasyUEFI是一个100%免费、绿色的Windows软件!无广告、木马和其它恶意代码!

windows+linux双系统有时会遇到很多新的麻烦,EasyUEFI则应该可以帮到你。您可以使用它来新建、删除和编辑EFI/UEFI启动项,设置重启后使用的一次性启动项,或者调整EFI/UEFI启动项的顺序,所有的操作均可在Windows下完成而不需要进入BIOS。

另外EasyUEFI支持创建Windows PE启动镜像。创建启动镜像后,您可以使用它创建USB启动盘或者使用第三方刻录软件将它刻录到CD/DVD。当您的系统不能启动而您又怀疑是由EFI/UEFI启动项丢失或损坏造成的时候,可以使用创建的启动盘来创建或修复启动项。
软件功能

 EFI/UEFI/ESP启动项管理
创建,删除和修改EFI / UEFI引导选项
备份和恢复EFI / UEFI引导选项
禁用和启用EFI / UEFI引导选项
从Windows内部启动到UEFI固件设置(UEFI BIOS)
指定一次性引导选项
更改EFI / UEFI引导顺序
命令行支持      EFI系统分区(ESP)管理
EasyUEFI还发布了一个功能,允许您管理EFI系统分区,使用此功能可以轻松地备份,恢复,重建EFI系统分区(ESP),或将EFI系统分区从一个驱动器移动到另一个。
备份EFI系统分区
还原EFI系统分区
重新创建EFI系统分区
将EFI系统分区移至另一个驱动器
 创建Windows PE应急磁盘
使用EasyUEFI,您还可以构建可引导的Windows PE映像文件。构建映像文件后,可以使用它创建可引导的USB闪存驱动器,或使用第三方刻录机软件将其刻录到CD / DVD。使用这个Windows PE紧急磁盘,您可以轻松修复EFI启动问题或修复efi系统分区,例如丢失或损坏的EFI启动选项,丢失或损坏的EFI系统分区。


新版变化
EasyUEFI Change Logs
https://www.easyuefi.com/change-logs.html

特点描述
easyuefi破解版,easyuefi企业版,uefi分区管理工具
1、基于官方版解包,破解企业版,脱离机器码序列号
2、免安装,无系统限制,可在无UEFI启动的系统运行
├—官方版只能安装在基于通过UEFI启动的操作系统上
3、禁止检测升级,去启动检测升级提示,去菜单检测升级
4、删除多国语言,NSIS编译32位,64位,PE版自适应单文件

注意:存放路径及文件夹不要含中文, 否则打开软件是英文!
-----
 
相关帖子:

No comments:

Post a Comment