我是非常新的黑客,现在我正在研究启动过程。
据我所知:
我的问题是,为什么像变色龙/三叶草和kexts这样的引导加载程序有某种关系?kexts应该由内核加载,而不是由引导加载器加载,对吗?
我看到这里的东西了。filename=kexts.html
说黑需要FakeSMC.kext。但这不是引导加载器的事。引导加载程序需要做的是将Mac内核的init代码放在内存中,并将控件传递给它。而且应该是Mac内核加载那个FakeSMC.kext。
难到不是么?
发布于 2015-03-27 21:44:30
首先,个人电脑在过去只拥有遗留的bios而没有EFI,但苹果从来没有使用过遗留的bios,只有EFI。
但这种情况已经改变了,因为现在大多数现代个人电脑都内置了UEFI,因此没有必要效仿EFI。
有两种方法可以在带有遗留bios的黑客系统上引导OS。第一个是变色龙,第二个是三叶草。
克洛弗和变色龙装载OS的方式不同。
三叶草使用二重奏EFI (基于遗留bios之上的开源EFI实现)的修改版本,或者如果计算机有自己的UEFI内置在三叶草中,就使用它。boot.efi还使用位于/System/Library/CoreServices/boot.efi的OS分区上的默认引导加载程序来引导OS。加载kext并将控制传递给内核,就像在真正的mac上一样。
变色龙有自己的内置在假EFI实现,使内核认为它是运行在一个EFI Mac。但是这个假的EFI还不足以装载boot.efi,所以变色龙有自己的装载机。变色龙自己加载kext,然后将控制传递给内核。
这两个引导程序都内置了ACPI表注入、SMBIOS欺骗、设备ID注入等。
FakeSMC是一个仿真器,它模拟真实Mac中的系统管理控制器(),其中包含解密苹果保护二进制文件的密钥。
变色龙本身会将FakeSMC和其他kext作为独立的或内核缓存的一部分加载,如果使用boot.efi,同样的事情将由boot.efi完成。
注意: Clover有一个您可能正在讨论的特性,即动态注入kexts,使它们看起来像是由Clover加载的,但它们实际上已成为内核缓存的一部分。
https://stackoverflow.com/questions/27015587
复制相似问题