天天看點

黑蘋果基礎知識

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檔案夾就建立一個。

繼續閱讀