What are the technical obstacles that doesn't allow OSX to be installed in a PC?
Before starting: lets forget about the EULA and any other legal regulation. I'm not interested in those. Also, since this is a grey line about what I'm going to ask, Ask Different may not be the place to ask:
Installing or using Apple operating systems on non-Apple hardware (and most other explicitly unlicensed use of product)
Continue reading.
Everyone knows that until some years prior OSX (or Mac OS) only could be run in PowerPC CPU's, but that changed when Apple adopted Intel CPU's opening the possibilities of installing OSX in PC's (again lets forget about legalese I'm going for factual and technical references) that users started experimenting until it's is possible. So, anyone knows why is the reason that OSX wouldn't work in normal folks PC? Some piece of hardware that is made custom tailored for OSX that only Mac's has? Or is just Apple folks making users life difficult at technical level?
The question is a mere curiosity of mine, inspired in an very debated answer of mine about installing Mac OS X in a Dell PC.
TL;DR: How they make it so difficult?
References (can be used in answers ;) ):
- http://www.macbreaker.com/2012/01/is-your-computer-hackintosh-compatible.html
Solution 1:
Oddly enough? Apple systems check for a specific chip and refuse to run or install without it - this is called the system management controller, and in effect is a glorified fan controller amongst other things. Practically speaking this is the reason, outside of some other specific things that might be different - such as video card firmware for video cards and OS X specific drivers for various things (sound cards come to mind) that you can't 'just' boot a vanilla copy of OS X right on your beige box pc. Of course, this isn't that hard to get around, which is why your average OS X hosted VM host can run OS X VMs, and there's hackintosh distros floating around.
Most Hackintosh install methods these days use variations of boot132, a bootloader that was provided when apple was transitioning from PPC to intel with some modifications. The original bootloader was open source, and built with some changes for darwin. As an aside, there have been some attempts to repackage darwin as an open source OS.
Apple supports a limited range of hardware you know will work. Otherwise, you're going to have to scrounge up tested hardware or hack hardware into working. This is what makes running OS X on commodity hardware difficult. The SMC is relatively trivial to get around.Getting your unsupported sound chip (nothing like having your mic stuck at maximum volume on a laptop to ruin your day), video adaptor and other hardware is the tricky part. If you have an AMD processor, for example, the stock kernel will take one look at it and panic like a mouse ran up its pants. In many cases, the solution ends up being building a new kernel, with patches off Darwin source (which is FOSS) and using that.
In short, the big problem isn't the magic chip, its OS X needing to play nice with the entire system
Solution 2:
I'll try and answer this question based on what I know. I do warn I'm not an expert on this subject and there are probably better sites on the Internet that deal with these subjects. I however am confident that what I do say can be cross-checked, given enough sourcing research. This being said, let's start from the top.
... until some years prior OSX ... only could be run in PowerPC CPU's ...
It is true, until Tiger (version 10.4) came along. However, it is not a true statement as is. You could "emulate" the PowerPC architecture on an x86-64 processor (as you would if emulating an old game console or arcade system). I doubt that would be feasible.
I do remember there was an attempt to make Panther (version 10.3) work with x86-64 processors, that would involve rewriting most of what existed on OSX at the time.
... but that changed when Apple adopted Intel CPU's opening the possibilities of installing OSX in PC's
True and false. What changed was the fact OSX applications could now run with an x86-64 architecture, besides a PowerPC one. Running on an unmodded system is near impossible, because while the processor changed to the one most PC's use, the hardware has not.
The greatest roadblock has been passed though, and as such, you can install special versions of OSX on some PC's. What is the difference between a special version of OSX and a regular one?
Special versions of OSX have modifications to the underlying structure of the operating system, in order to accomodate the differences at hardware level. One of those differences is the fact OSX doesn't use the BIOS most computers use and instead resorts to the EFI system to load the devices to the system.
By some computers I mean that, even with the processor door open, there are few devices Apple introduces to their own computers. As such, obtaining the kexts or the EFI strings (i.e. drivers) for those devices is a hard process. As such, most computers fail on this part.
The original kernel for OSX requires the SSE3 instruction set, but there are some kernels that manage to emulate the functions provided by the SSE3 instruction set using the older SSE2. This isn't a big problem, as most modern processors have the SSE3 instruction set and as such is relevant only in very old processors.
Why did they make it so difficult?
Apple, understandingly, doesn't want people to install OSX on computers they don't make. They wouldn't be able to support users. Also, it cuts costs, reduces bugs and overall gives a better user experience to have a very standardized and uniform product line.
How they make it so difficult?
As stated before, it isn't difficult; you need some research beforehand and you can get a working OSX installation in no time. Doesn't mean it works fully, but you can move the mouse click on items and the such.