Clover 四叶草引导工具百科全书 | 技术背景

EFI

EFI(The Extensible Firmware Interface,可扩展固件接口)是位于操作系统和硬件固件之间的一个软件接口。相对于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模拟

Clover的任务

  1. 设置SMBIOS (DMI)信息来模拟一台真实的Apple电脑 - 这对于运行OS X系统是必需的。序列号是伪造的,但是有效的。
  2. ACPI表 - 包含在电脑的固件中 - 通常没有被正确的编写而且可能包含bugs,这大多是因为制造商的懒惰:APIC表中包含错误的CPU核心数量,没有NMI数据,FACP表中没有重置寄存器(reset register),错误的电源配置,SSDT表中没有EIST数据,甚至没有DSDT表。Clover试图去修正这些问题。
  3. 接着OS X会从boot loader获取用来描述附加的设备如显卡、网卡或声卡的数据,这些数据就是所谓的EFI字符串(EFI Strings)。Clover产生这些数据。
  4. 基于BIOS的电脑在启动初期,USB运行于旧的模式(legacy mode),当控制权传递给操作系统时,会产生问题。Clover负责改变USB的运行模式。
  5. OS X使用一块特殊的称为NVRAM的内存来进行信息交换,它被包含在运行时服务(RuntimeServices)中(在启动的初期不存在,not present in a legacy loader)。Clover提供这种信息交换,使Firewire功能正常,“启动磁盘”设置面板也可正常使用。附加的NVRAM也用于注册iCloud和iMessage服务。
  6. ConsoleControl协议是必要的并且DUET中没有.
  7. 通过DataHub协议为EFI/Platform填充某些必要的信息,这些信息DUET中没有,而UEFI中也不一定会有。而且会设置非常重要的FSB频率值(FSBFrequency value),因为这个值有时是错的或者根本就没有。
  8. CPU在工作前必须被正确地初始化,但是主板为了兼容大量的不同的CPU,内部表中不包含任何正确的CPU数据。Clover会对安装的CPU做一个完全的检测,修正这些表中的CPU信息。其中的一个效果就是CPU加速模式(turbo mode)能够工作。
  9. 还有一个小问题:DUET和EDK2源码是为了兼容不同的硬件而编写的,但不同的硬件依赖于不同的常量。这意味着每个编译对应一个特定的平台。Clover提供了自动平台检测。

问题反馈

如果你发现文章中有错误,或者你又新的发现可以通过邮件EMAIL:[email protected],或者在文章下方发表评论!

发表评论

您必须登录才能发表评论!

目前评论:11   其中:访客  10   博主  0   引用   1

    • avatar junyujian 4

      学习一下,谢谢分享

      • avatar nn9001 3

        我在脑补一个问题,微软是不是因为忽略了CLOVER补充的这些内容,所以开发者即使想对系统做更深层的优化也无从下手。

        毕竟PC可以配置的硬件太多了,如果做一款软件就要匹配不同的硬件去优化 那软件也太大了。这些匹配的工作CLOVER都干了 那未来的WINDOWS会不会优化的跟MAC差不多?

        至少不会像现在这样发热量巨大。 我的笔记本 跑坦克世界 5分钟就能煎鸡蛋~ 冬天挺好的自带暖宝宝 夏天要外接个键盘玩 …

        配置再好管个鸟用~ :cry:

        微软应该收购CLOVER~ 以后的WINDOWS 全用CLOVER引导~ 微软的开发组再做深层系统优化

        这样的话windows的春天也许就来了 :grin:

        然而只是我这个渣渣的YY, 微软要是能想到 早就自己开发了,唉 同样是做电脑 有追求的做出了巨牛X的系统,还做出了美学。 没追求的把硬件用一种巨难看的方式堆起来 再配上一套渣渣系统。 还忽悠我们 硬件越牛X系统越强大~ :arrow:

        • avatar nn9001 3

          古老的XP拜拜啦 玩WOW的时候用过` :neutral:

          站长大人,搞个图片外链,让我们能发图会更欢乐哟~ :neutral: :neutral: :neutral:

          • avatar yelonm 2

            前来学习 :grin:

            • avatar lingchen2188 3

              学习一下,谢谢了

              • avatar Ming 4

                用来引导黑苹果 谢谢

                • avatar 470433707 2

                  学习了,谢谢讲解,还有咱们这里能不能变成一个开放式的论坛

                  • avatar shuimuchi 2

                    学习了,非常感谢

                    • avatar mao48 5

                      来学习一下,谢谢分享。

                      • avatar MIKI 5

                        学习了,谢谢

                      • 来自外部的引用: 1

                        • Clover Bootloader 四叶草安装配置问题百科 - 四叶草百科 - 黑苹果乐园