黑苹果基础知识

BIOS

Basic Input Output System /’baious/

它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。

其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS还向作业系统提供一些系统参数。系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。现代作业系统会忽略BIOS提供的抽象层并直接控制硬件组件。

ACPI

The Advanced Configuration and Power Interface

电源管理模式和配置管理的接口规范。从名字可以看出主要是“电源管理”和“配置管理”。

更多详细描述可以访问Intel technology下载PDF描述文档。

它主要涵盖的功能包括:
System power management(系统电源管理)
Device power management(设备电源管理)
Processor power management(处理器电源管理)
Device and processor performance management(设备及处理器性能管理)
Configuration / Plug and Play(配置/即插即用)
System Events(系统事件)
Battery management(电池管理)
Thermal management(温度管理)
Embedded Controller(嵌入式控制器)
SMBus Controller(SMBus控制器)

在计算机应用平台,ACPI越来越重要。ACPI由很多表组成,包括:RSDP,SDTH,RSDT,FADT,FACS,DSDT,SSDT,MADT,SBST,XSDT,ECDT,SLIT,SRAT。(略写了,不用太详细介绍)其中DSDT就是它的一个重要的描述表。

DSDT

The Differentiated System Description Table

字面上就可以知道它是一个描述系统不同信息的表。
包含了所有除基本系统以外所有不同设备的信息,也就是每台计算机设备的基本系统是相同的,而不相同的设备用DSDT来描述。

DSDT表代码为ACPI Machine Language (AML)。

Mac OS X不完整支持ACPI规范,仅支持它的子集DSDT。
用户通过修改DSDT可以得到更好的硬件支持。最简单的理解就是DSDT是描述硬件的。mac的驱动是被动驱动,需要让系统知道存在这个硬件且知道硬件位置。

修改DSDT的主要目的就是让mac系统识别存在这个硬件并告诉mac系统你的硬件位置,以便让mac系统内置的驱动来驱动硬件工作。

修改DSDT的基本过程

提取bios的AML文件,反编译为dsl text 文件,修改完毕后,编译到Aml–〉替换BIOS中的DSDT。
技术的进步让我们可以由Chameleon来加载编译好的DSDT.aml文件在修复ACPI缺陷,使主板更好支持苹果系统。

DVMT

Dynamic video memory technology

动态显存技术

The amount of video memory is dependent upon the amount of pre-allocated memory set for your system plus something called DVMT. DVMT, as its name implies, dynamically allocates system memory for use as video memory to ensure the most efficient use of available resources for maximum 2D/3D graphics performance.

视频内存的数量取决于为系统设置的预先分配的内存量以及一些名为dvmt的内容。
正如其名称所示,dvmt动态分配系统内存以用作视频内存,以确保最高效地利用可用资源,实现最高2d / 3d图形性能。

It is a technology used by Intel to fulfill the needs of graphically demanding games.

它是英特尔用来满足图形要求较高的游戏需求的技术。

EFI

The Extensible Firmware Interface

可扩展固件接口

EFI 是位于操作系统和硬件固件之间的一个软件接口。相对于BIOS那最多64kb的可用空间和运行于16位处理器模式,EFI大小可以达到4MB,运行于32位或64位模式,并且理论上是平台无关的。但实际上想要达到全平台兼容是不可能的。

Clover

Clover是一个操作系统启动加载器(boot loader),能够同时运行于支持EFI方式启动的新式电脑和不支持它的老式电脑上。一些操作系统可以支持以EFI方式启动,比如OS X, Windows 7 64-bit, Linux;也有不支持的,比如Windows XP,它只能通过传统的BIOS方式来启动,也就是通过启动扇区来启动。

EFI不仅存在于操作系统的启动过程中,它还会创建操作系统可访问的表和服务(tables and services),操作系统的运行依赖于EFI正确的提供功能。从内建的UEFI来启动OS X是不可能的,用原始的DUET来启动OS X也不可能。CloverEFI和CloverGUI做了大量的工作来修正内部表,让运行OS X成为可能。

注:DUET(Developer’s UEFI Emulation),开发者的UEFI模拟

MBR

Master Boot Record

主引导记录

MBR早在1983年IBM PC DOS 2.0中就已经提出。之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。

主引导扇区是硬盘的第一扇区。它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节,偏移地址0000H–0088H),它负责从活动分区中装载,并运行系统引导程序;第二部分是Partition table区(DPT分区表),占64个字节;第三部分是Magic number,占2个字节

MBR分区表系统

所谓启动加载器,是一小段代码,用于加载驱动器上其他分区上更大的加载器。如果你安装了Windows,Windows启动加载器的初始信息就放在这个区域里——如果MBR的信息被覆盖导致Windows不能启动,你就需要使用Windows的MBR修复功能来使其恢复正常。如果你安装了Linux,则位于MBR里的通常会是GRUB加载器。

分区表偏移地址为01BEH–01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4,分别对应MBR的四个主分区。

Magic number也就是结束标志字,偏移地址01FE–01FF的2个字节,固定为55AA,如果该标志错误系统就不能启动。

GPT

Globally Unique Identifier Partition Table

即GUID分区表,它的推出是和UEFI BIOS相辅相成的,鉴于MBR的磁盘容量和分区数量已经不能满足硬件发展的需求,GPT首要的任务就是突破了2.2T分区的限制,最大支持18EB的分区。

GPT分区表系统

而在分区数量上,GPT会为每一个分区分配一个全局唯一的标识符,理论上GPT支持无限个磁盘分区,不过在Windows系统上由于系统的限制,最多只能支持128个磁盘分区,基本可以满足所有用户的存储需求。在每一个分区上,这个标识符是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。

UEFI BIOS

Unified Extensible Firmware Interface

Interface,意即统一可扩展固件接口,它是基于EFI 1.10标准为基础发展而来,值得注意的是在UEFI正式确立之前,Intel就开始积极推进传统BIOS的升级方案,并最终确立了过渡方案EFI标准,直到2007年Intel将EFI标准的改进与完善工作交给Unified EFI Form进行全权负责,EFI标准则正式更名为UEFI。

相比传统BIOS,UEFI最大的几个区别在于:
1. 编码99%都是由C语言完成;
1. 一改之前的中断、硬件端口操作的方法,而采用了Driver/protocol的新方式;
1. 将不支持X86实模式,而直接采用Flat mode(也就是不能用DOS了,现在有些 EFI 或 UEFI 能用是因为做了兼容,但实际上这部分不属于UEFI的定义了);
1. 输出也不再是单纯的二进制code,改为Removable Binary Drivers;
1. OS启动不再是调用Int19,而是直接利用protocol/device Path;
1. 对于第三方的开发,前者基本上做不到,除非参与BIOS的设计,但是还要受到ROM的大小限制,而后者就便利多了。
1. 弥补BIOS对新硬件的支持不足的问题。

UEFI和GPT是相辅相成的,二者缺一不可,要想使用GPT分区表则必须是UEFI BIOS环境。UEFI于用户而言最典型的特征就是使用了图形化界面,虽然还未达到操作系统界面的图形交互功能,但人性化的界面、鼠标的操作,已经将BIOS变得非常易用,对于不少电脑初级用户来说也可以很好的查看和设置BIOS的相关选项和功能。

除了图形化界面,UEFI相比传统BIOS,还提供了文件系统的支持,它能够直接读取FAT、FAT32分区中的文件,例如华硕、华擎等主板在UEFI BIOS环境下更新BIOS就可以直接读取U盘中的BIOS及其他文件,另外新的UEFI主板基本都提供了截屏功能,这些截屏图片都可以存储在U盘当中。

UEFI还有一个重要特性就是在UEFI下运行应用程序,这类程序文件通常以efi结尾。利用UEFI可以直接识别FAT分区中的文件,又有可直接在其中运行应用程序。我们就可以将Windows安装程序做成efi类型应用程序,然后把它放到任意FATA分区中直接运行即可。

UEFI启动顺序

UEFI的模块化设计,它在逻辑上分为硬件控制与OS(操作系统)软件管理两部分,硬件控制为所有UEFI版本所共有,而OS软件管理其实是一个可编程的开放接口。借助这个接口,主板厂商可以实现各种丰富的功能。比如我们熟悉的各种备份及诊断功能可通过UEFI加以实现,主板或固件厂商可以将它们作为自身产品的一大卖点。UEFI也提供了强大的联网功能,其他用户可以对你的主机进行可靠的远程故障诊断,而这一切并不需要进入操作系统。

当然由于UEFI主要由高级语言编写(C语言),相比于传统BIOS的汇编语言,UEFI BIOS在安全防护性方面相比传统BIOS要弱,比较容易遭到病毒的攻击,安全性有待进一步提升。不过在图形化界面、应用程序扩展面前,UEFI BIOS还是非常成功的。

目前64bit Windows Vista、7、8、8.1、10都已经支持GPT分区表,而Windows 8、8.1、10都已经原生支持UEFI,安装这些系统的时候:只要硬盘设置为GPT分区表 主板设置为UEFI启动后,就可以直接开始安装操作系统了。

而对于Windows Vista、7系统,就需要手动添加UEFI支持,我们可以找一份Windows 8或者10安装镜像,从安装文件中提取Bootmgfw.efi文件,重命名为BOOTX64.EFI,拷贝到win7安装文件的\EFI\Boot\下,如果没有BOOT文件夹就新建一个。

猜你喜欢

转载自blog.csdn.net/jaykm/article/details/79313951