What is the potential differences between Mac and PCand solution to solve problems in HACKINTOSH job? What should you know before install Mac OS X on your PCs? Look at this article for specific information.
I/ Introduce about EFI and DSDT, driver system in Windows and kext in Mac OS X
What is EFI?
EFI stands for Extensible Firmware Interface, a software responsible to communication between OS and firmware system. It is strange when mentioning about EFI, but familiar when talking about BIOS (Basic Input/Output System). However, good new is that EFI and BIOS can be brother and sister ^^.
BIOS exactly is also a firmware interface which is ran firstly when you turn on the computer to make Power On-Self Test (check all devices and and send communication requests to window.
EFI is different. It is coded by C, larger, more complicated and such an small OS. EFI is developed by Intel and seems to replace BIOS position in the future seriously.
The highlight here is Mac is using EFI. It holds important components of an OS such as service, protocol, device driver, driver for system file, disk support, and boot manager.
HACKINTOSH workers used to ignore EFI since it is so complicated and difficult to handle. They used to modify Kernel of Mac OS X trying make it run well on PC, but standard Kext (Kernel extension) can not run well with modified Kernel. Moreover, when Apple releases a new update of Mac OS X, Kernel need to be altered again.
There are a device called EFI-X selling commonly. You just plug this device into PC, you can run EFI smoothly. It seems this device brings lot of trouble due to copyright.
The best solution for HACKINTOSH is using Boot-132. Boot-132 is a bootloader provided by Apple for loading the XNU kernel. The loader was used in the Apple Developer Transition Kit PC rented to software developers during the Apple–Intel transition. This bootloader is not used on Intel Macs, insteadboot.efi is used.
What is DSDT?
DSDT (Differentiated System Description Table) is the largest and most important table because this is where the motherboard devices are described. As the DSDT, along with other ACPI tables, is stored in the BIOS only on-board hardware is described. The goal is to bypass this often faulty table because of optimization for Windows by a custom one where the declarations are adjusted to the needs of Mac OS X in order to maximize compatibility.
II/ Chameleon – bootloader for Mac OS X
What is Bootloader?
Bootloader is simply an instruction code located in Master Boot Record (MBR Disk) or EFI EFI partition (as for GPT disk).
The bootloader is code that is executed before any Operating System starts to run. Bootloaders basically package the instructions to boot operating system kernel and most of them also have their own debugging or modification environment. Think of the bootloader as a security checkpoint for all those partitions.
What is Chameleon?
Chameleon is the best known boot-loader for Mac OS X running with PC. This bootloader is for USB Installer , the Extra folder contain Extensions folder for booting OS X Installer Mavericks
Mac OS X uses system file called HFS+ (like NTFS in Windows) and therefore there are nearly no common bootloader can read it’s partition. Only Voodoo team who created Chameleon – multifunctional bootloader that can read HFS+ of Mac OS X.
III/ How to check hardware information – device ID & vendor ID – in compatibility list
Device ID and Vendor ID:
Installing Mac OS X on PC and searching compatible drivers for devices is not easy at all and takes a lot of time. You should have very good preparation to be ready.
Unlike windows (just CPU information, sound card on board Realtek,…), to run Mac OS X on PC, you need to determine device ID and vendor ID. For instance, particular GMA 950 of Intel has up to 3 different device IDs: 27AE, 27A2, 2702.
Devices need to be defined are VGA, audio chip, network card, wireless card, SATA/IDE controller, chipset series, and others.
Once you hand device ID and vendor ID, you can check device name at PCIDatabase.
Like windows, OSX86 community builds a database of Hardware Compatibility List that you can find exact devices compatible with Mac OS X, the instructions how to install and solve the raised problems. Check your luck at http://wiki.osx86project.org