macOS
Mac OS是一套运行于苹果Macintosh系列电脑上的基于Unix内核的图形化操作系统,由苹果自行开发。Mac OS是首个在商用领域成功的图形用户界面操作系统。2011年7月20日Mac OS X已经正式被苹果改名为OS X。2016年,OS X改名为macOS,与iOS,tvOS,watchOS相照应。截止本文,最新版本为macOS 11.0 Big Sur,于2020年6月发布。
Clover所解决的macOS引导问题
普通PC是无法安装macOS系统的,但是通过使用Clover EFI BootLoader可以做到这一点。
Clover向SMBIOS(DMI)填充模拟真实Apple Macintosh的数据——这是运行macOS的基本要求。序列号是伪造的,但有效。
PC ROM中包含的ACPI表通常未正确编写,并且可能包含错误,主要是由于制造商比较懒:APIC表中的CPU核心计数不正确,NMI数据丢失,表FACP中的复位寄存器丢失,电源配置文件错误,SSDT表中缺少EIST数据,以及乱七八糟的DSDT表,Clover试图解决这些问题。
OS X更进一步尝试通过EFI字符串从引导加载程序获取描述其他设备(如视频,以太网或声卡)的数据。Clover能生成此类数据。
基于BIOS的计算机在初始引导过程中将以旧模式使用USB,这在将控制权传递给OS时成为问题。Clover将更改USB模式。
macOS使用称为NVRAM的特殊内存进行信息交换,该内存包含在RuntimeServices中(旧式加载器中不提供)。Clover提供了这种信息交换,从而启用了正确的Firewire功能并使用了Startup Disk首选项面板。此外,NVRAM还用于注册iCloud和iMessage服务。
ConsoleControl协议是必需的,并且在DUET中不存在。
有必要通过DataHub协议在EFI / Platform中填充某些数据,该协议在DUET中不存在,在UEFI中并不总是存在。此外,设置了非常重要的FSBFrequency值,该值有时是错误的或完全没有。
在工作之前必须正确初始化CPU,但是由于主板通常可以匹配大量不同型号的CPU,因此内部表中不包含任何正确的CPU数据。Clover对已安装的CPU进行全面检测,更正表和CPU本身,使得CPU可以正确开启睿频模式。
DUET和EDK2源代码是通用编写的,以匹配不同的硬件,但是硬件依赖性本身取决于常量。这意味着针对一个特定平台的编译过程。Clover的目标是普及并提供自动平台检测。