OSx86

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Apple Intel transition

Architecture
Universal binary
Boot Camp
Rosetta

 This box: view  talk  edit 

OSx86 (a portmanteau of OS X and x86) is a collaborative "hacking" project to run the Mac OS X computer operating system on non-Apple personal computers with x86 architecture processors. The effort started soon after the June 2005 Worldwide Developers Conference announcement that Apple would be transferring their personal computers from PowerPC to Intel microprocessors.

A computer built to run this type of Mac OS X is also known as a Hackintosh, which is a portmanteau of the word hack and the name of Apple's main brand of computers.

The Apple software license does not allow Mac OS X to be used on hardware that is not "Apple-labeled".[1]

Contents

[edit] Developer Transition Kit

Initial efforts to run Mac OS X on non-Apple hardware revolved around leaked copies of pre-release software. On June 6, 2005 Apple announced the availability of a Developer Transition Kit. This kit was made available to registered developers at a cost of $999.[2] The first patches centered around circumventing the Trusted Platform Module (TPM) that was included on the motherboard of the Developer Transition Kits. The TPM was required by the Rosetta technology that allowed software compiled for the PowerPC architecture to run on Intel-based architecture. Removing this requirement allowed Mac OS X to be installed on non-Apple computers. Rosetta also required microprocessors that included SSE3 instructions. Patches were released to the community which emulated these instructions with SSE2 equivalents and allowed the installation on machines without SSE3 support, although this produced a performance penalty. Being beta software, many updates followed its release.

In October 2005 Apple released a 10.4.3 update to developers that required NX bit microprocessor support;[3] patches were released to circumvent this.[4]

[edit] Mac OS X on Intel

On January 10, 2006, Apple released Mac OS X 10.4.4 with the first generation of Intel-based Macs, the iMac and the MacBook Pro. These machines used Extensible Firmware Interface (EFI) platform firmware instead of the legacy BIOS found on most x86 motherboards. On February 14, 2006 an initial "hack" of Mac OS X v10.4.4 was released on the Internet by a programmer. [5] Within hours Apple released the 10.4.5 update[6], which was patched again by the same author within two weeks.[7] On April 3, 2006 Apple released their 10.4.6 update[8] and again patches were released within two weeks that allowed users to install most of this update on non-Apple computers, although this did not include the updated kernel in 10.4.6. In June, the hackers released the 10.4.7 Mac OS X update for non-Apple computers using the 10.4.4 kernel.

Up to the release of the 10.4.8 update, all OSx86 patches used the 10.4.4 kernel with the rest of the operating system at version 10.4.8. However, the newer frameworks relied on the newer kernels and this led to users of 10.4.8 encountering many problems. Apple also started making more use of SSE3 instructions on their hardware making it even more difficult for users with CPUs supporting only SSE2 (such as older Pentium 4's) to get a fully compatible system running.

[edit] XNU kernel patch

Two programmers, working under the pseudonyms Mifki or Vitaliy and Semthex released new kernels by starting with the open source XNU tree and applying patches necessary to run the kernel on non-apple hardware. Mifki's goal was to release the kernel with as few patches as possible, able to run on close-to-Apple hardware. Semthex's goal was to make his kernel more compatible with legacy hardware with the omission of some crucial features.

Both kernels allowed most of the updated kernel extensions/frameworks to work, making properly configured beige-box PCs operate more like genuine Apple computers. While Mifki has only updated his kernel once, Semthex updates it regularly and added AMD, VMware and SSE2-support in later versions. Semthex released his hacked kernel source code on his webpage. On December 24, 2006 he also released the latest patches for the SSE3 kernel as a diff file for his original source tree as a Christmas present to the community. Special attention should be given to the SSE2 emulation which Semthex developed together with Rufus. This emulation was the first fully complete emulation of all SSE3 instructions to be presented to the OSx86 community. The previous SSE2 emulation was incomplete, only emulating 3 of the available SSE3 instructions, and very inefficient compared to the new emulator. The new emulator enabled even SSE2 OSx86 users to run SSE3 based applications such as iTunes 7 and most 3D programs.

In the early days of 10.4.8, an Intel-SSE3 only install DVD was released by JaS, which included Vitaliy's and Semthex's kernel. A few weeks later, a hacker calling himself tubgirl released an AMD-SSE3 install DVD. With Semthex's successful completion of the SSE2 Kernel, JaS released an SSE2-SSE3 universal DVD and announced his retirement from hacking Mac OS X after seven successful DVD releases. However, on August 9, 2008, JaS released yet another distribution featuring both a client and server version of Mac OS 10.5.4.

In March 2007 the OSx86 community made some significant progress with the development of a Live DVD. The Live DVD allows booting to a working system with Mac OS X v10.4.8.

A popular resource for users trying to setup their own Hackintosh machines is at www.insanelymac.com. At the end of March 2007, the InsanelyMac website was sold to a UK based company called Fubra Limited.[9] Some people objected to the "commercialization" of the website, including kernel hacker Semthex and other developers, which was followed by a major split of the community.[10]

[edit] Mac OS X v10.5

As early as Mac OS X v10.5 build 9A466 the community has maintained a version of Leopard which can run on non-Apple hardware. A hacker by the handle of BrazilMac created one of the earliest patching processes which made it convenient for users to install Mac OS X onto 3rd party hardware by using a legally obtained, retail version of Apple Mac OS X. It was utilizing the BrazilMac patch that many effortless distros of Mac OSx86 came to fruition. Four of the most popular builds go by the name JaS, Kalyway, iATKOS, and iDeneb - although more recently these builds are on the way out as the Boot-132 method (described below) gains popularity. However, all of these compilations rely on the work of kernel hackers made by Lorem (build 9A466), SynthetiX (builds 9A499, 9A527 and 9A559), ToH (builds 9A581, 9B13 and 9B18) and more recently a group calling themselves StageXNU (Darwin 9.4.0). Their contributions trickled down into the various Mac OSx86 installers, readily available on the internet. There continue to be refined and updated builds released, not just to maintain compatibility with Apple releases but an ever increasing number of third party components. The OSx86 community has been quick to make the necessary modifications to enable Apple's latest releases to run on non-Apple hardware. Within hours of Leopard's release, an AMD/Intel SSE2/3 Kernel Patcher was created which removed the HPET requirement from an original untouched mach_kernel file, a core component of the Mac OS.

On January 2, 2009, InsanelyMac's Live DVD team published a new method by which a Mac OS X v10.5.x Live DVD could be produced, allowing users to boot a fully working OS X desktop from a DVD or USB flash drive. [11] The method was more reliable than previous methods, as it manipulated Apple's existing Netboot and Imageboot functionalities, and behaved as if the system was running off a network disk. It was also easier to produce, requiring only a single script be added to an existing installation, and a distribution of the live DVD has been made since. It is notable that this method has been shown to work on normal Apple Mac hardware since.

[edit] EFI emulation

Extensible Firmware Interface (EFI) is a specification that defines a software interface between an operating system and platform firmware.

In early November 2007, a group of hackers (fronted by a Russian hacker known as Netkas), using an already modified boot-132 source root from David Elliot (also known as dfe),[12] developed a method[13] of emulating an EFI environment using a specially modified Darwin bootloader.[14] In practical terms, this meant that regular PCs meeting a minimum set of hardware requirements could now be "seen" as real Macintosh computers by the OS, allowing the use of unmodified, "stock" Apple kernels and thus giving a more transparent and reliable operation. Several methods for real world deployment of this innovative solution have arisen all around the net. An explanation of this achievement along with a usage guide was provided by the website DigitMemo.com.[15]

True EFI emulation was a highly sought after asset for the OSx86 community. Previous efforts based upon Apple’s open source Darwin Project and Hackintosh gurus allowed users to enjoy OS X on normal PCs, with patched kernels/kernel modules which simply bypassed EFI. Using the EFI patch, a Hackintosh could boot off "vanilla" (unmodified) OS X kernels and use vanilla kernel extensions. This not only allowed the system to be compatible with future system updates, but also offered increased stability. This method also circumvents one aspect of Apple's End User License Agreement, which states that the modification of non-Open-Source components of the OS is forbidden.[1]

In mid-2008, a new commercial product, EFi-X, was released that claims to allow full, simple booting off official Leopard install disks, and a subsequent install, without any patching required.

[edit] Boot-132

In mid-2008, a new method has come on the scene known as BOOT-132. This method allows users to conduct the Leopard-based OSX86 installation using a stock, retail purchased copy of Mac OS X Leopard and eradicates the necessity of a hacked installation like JaS or Kalyway (mentioned previously). The boot-132 boot loader essentially preloads an environment on the system from which Leopard can boot and operate. The boot loader stores the necessary files (kext files) in a .img collection or simply a folder. The luxury of this new installation method includes the ability to boot and install from a retail Leopard DVD and update straight from Apple. It even enables the user to reinstall without having to re-add the same kexts to their installation each time.

The bootloader behaves like the linux kernel: one can use an mboot (a patched syslinux was used for the hack) compatible bootloader which tells boot-dfe about the .img file (the ramdisk or initrd, as it's known by the linux users) and boot-dfe will then use the kexts (or mkext) from it. This new boot-dfe has been tested with the retail Leopard DVD and it can boot, install and run Leopard without having to build a modified DVD.

However, this only works with compatible machines although more recently with the release of the Voodoo kernel AMD users have been able to run Retail. Non-Core users can run Retail by using any compatible kernel. Both methods require the placing of the hacked kernel on the boot-132 disc.

[edit] Apple objections

The Mac OS X end-user license agreement (EULA) forbids installations of Mac OS X on "non Apple-labeled computers".[1]

On July 3, 2008, Apple filed a lawsuit against Psystar[16] for violating the Mac OS X EULA, among other claims.[17]

On January 14, 2009, the Gadget Lab site of Wired Magazine posted a video tutorial for installing Mac OS X on an MSI Wind netbook, but removed it following a complaint from Apple.[18] Textual instructions remain that include an EULA violation disclaimer.[19]

[edit] See Also

Chameleon (bootloader) - A popular Open-Source EFI bootloader project for BIOS-based x86 systems

[edit] References

  1. ^ a b c Apple Inc.>>. "APPLE INC. SOFTWARE LICENSE AGREEMENT FOR MAC OS X" (PDF). Apple Inc.. http://images.apple.com/legal/sla/docs/macosx105.pdf. Retrieved on 2008-09-03. 
  2. ^ Apple to Use Intel Microprocessors Beginning in 2006
  3. ^ sHARD>> (October 16, 2005). "Apple Seeds 10.4.3 Intel to Developers". OSx86 Money Project. http://www.osx86project.org/index.php?option=com_content&task=view&id=53&Itemid=2. Retrieved on 2006-05-28. 
  4. ^ Jonathan Black (October 30, 2005). "Hacked OSx86 Updated to 10.4.3". OSx86 $$$ Project. http://www.osx86project.org/index.php?option=com_content&task=view&id=56. Retrieved on 2006-05-28. 
  5. ^ Jonathan Black (February 14, 2006). "OSx86 10.4.4 Security Broken. (Guess Who Done It?)". OSx86 Project. http://www.osx86project.org/index.php?option=com_content&task=view&id=116. Retrieved on 2006-05-28. 
  6. ^ Apple Computer (February 14, 2006). "Mac OS X Update 10.4.5". Apple Computer. http://www.apple.com/support/downloads/macosxupdate1045.html. Retrieved on 2006-05-28. 
  7. ^ sHARD>> (February 23, 2006). "Apple Releases 10.4.5". OSx86 Project. http://www.osx86project.org/index.php?option=com_content&task=view&id=128. Retrieved on 2006-05-28. 
  8. ^ Apple Computer (April 3, 2006). "Mac OS X 10.4.6 for Intel". Apple Computer. http://www.apple.com/support/downloads/macosx1046forintel.html. Retrieved on 2006-05-28. 
  9. ^ Brendan McLoughlin (March 29, 2007). "Fubra announces InsanelyMac acquisition". Fubra Blog. http://www.fubra.com/blog/2007/03/fubra-announces-insanelymac.html. Retrieved on 2007-04-12. 
  10. ^ Semthex (March 26, 2007). "OSx86 Project sold-out - InsanelyMac sale, my 2 ct". Semthex.com - Blog. http://www.semthex.com/index.php?option=com_content&view=article&id=25:OSx86%20Project%20sold-out%20-%20InsanelyMac%20sale,%20my%202%20ct&Itemid=1. Retrieved on 2007-04-12. 
  11. ^ 2009 Live DVD, howto make a simple, working osx livedvd
  12. ^ Darwin/x86 Boot Loader
  13. ^ netkas.org :: W00t - released
  14. ^ Darwin/x86 Boot Loader
  15. ^ HowTo: Install EFI patch and Use Unmodified OS X Kernel in Hackintosh
  16. ^ Apple sues clone maker Psystar
  17. ^ APPLE GOES AFTER CLONE MAKER PSYSTAR
  18. ^ The Netbook Hackintosh Video Apple Made Wired Take Down
  19. ^ Gadget Lab Video: Running OS X on a Netbook

[edit] External links

Personal tools