osx - Why kexts are loaded by Boot Loader but not after Kernel gets the control -


i new hackintosh , studying boot process.

as far know:

  • efi binary "byte-code" uefi firmware runs
  • kexts kernel mode device driver complied in machine specific code, loaded kernel, running in kernel mode kernel
  • kexts injection dynamic loading of library in kernel mode

my question is, why there relationship bootloader chameleon/clover , kexts? kexts should loaded kernel not bootloader, right?

i see thing here. http://cloverboot.weebly.com/kexts.html?bcsi_scan_50b5cc4d2c82cc03=bg/x91fwptz2cvnl0wdfpvjdtdwsaaaaiomalg==&bcsi_scan_filename=kexts.html

say hackintosh needs fakesmc.kext. not business of bootloader. bootloader needs put init code of mac os kernel in memory , passes control it. , should mac os kernel loads fakesmc.kext.

isn't it?

firstly pcs in past had legacy bios , no efi, apple never used legacy bios, efi.

but has changed of modern pcs have builtin uefi there no need emulate efi.

there 2 ways boot os x on hackintosh legacy bios. first chameleon , second clover.

clover , chameleon loads os x differently.

clover uses modified version of duet efi (open source efi implementation on top of legacy bios) or if computer has it's own uefi built in clover uses that. clover uses default bootloader on os x partition located @ /system/library/coreservices/boot.efi boot os x. boot.efi loads kexts , passes control kernel on real mac.

chameleon has it's own built in fake efi implementation makes kernel think it's running on efi mac. fake efi not enough load boot.efi chameleon has it's own loader. chameleon loads kexts , passes control on kernel.

both bootloaders have built in acpi table injection, smbios spoofing, device id injection, etc.

fakesmc emulator emulates system management controller found in real mac contains key decrypt apple protected binaries.

chameleon loads fakesmc , other kexts standalone or part of kernelcache , if use clover same thing gets done boot.efi.

note: clover has feature you're talking injects kexts on fly make seem loaded clover become part of kernelcache.


Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -