私は Hackintosh を初めて使用し、現在ブート プロセスを勉強しています。
私の知る限りでは:
- efi バイナリは、UEFI ファームウェアが実行する「バイトコード」です。
- kexts は、マシン固有のコードでコンパイルされ、カーネルによってロードされ、カーネルとともにカーネル モードで実行されるカーネル モード デバイス ドライバーです。
- kexts インジェクションは、ライブラリの動的ロードに似ていますが、カーネル モードです。
私の質問は、カメレオン/クローバーや kexts のようなブートローダーと何らかの関係があるのはなぜですか? kexts はカーネルによってロードされるべきですが、ブートローダーではロードされませんよね?
Hackintosh には FakeSMC.kext が必要だとします。しかし、それはブートローダーの仕事ではありません。ブートローダが行う必要があるのは、Mac OS カーネルの初期化コードをメモリに配置し、それに制御を渡すことです。そして、Mac OS カーネルがその FakeSMC.kext をロードするはずです。
ではない?