The OS can’t do much by itself. It’s a bunch of software for managing applications, but most of what we need to do needs to interact with hardware like storage controllers or graphics cards.
Each piece of hardware like that is like a tiny secondary computer, and it needs to be told what to do using special commands unique to each model. The way most OSes deal with that today is to have “drivers” for hardware. A “driver” is some code designed to tell the OS what the hardware can do and to have ways for the OS to tell it to do those things. So one “side” of the driver is defined by the people who write the OS: “We will talk to hardware using these function calls.” The other side of the driver is the people who write it implementing those calls so it behaves the way the OS expects.
Think of it like maybe your OS speaks English, but your hard drive speaks French. The driver is a person who speaks both English and French and can translate between the two.
Apple has traditionally only let Mac OS run on their own computers. Because Apple only offers a limited number of models *and* chooses the hardware *and* doesn’t really support buying different hardware, they only include a very small number of drivers with Mac OS. If a graphics card isn’t being sold in some Apple machine, it’s not worth the manufacturer’s time to bother writing a Mac OS driver because VERY few people will upgrade to that card on Mac.
From the start, Windows has been about widespread compatibility. The IBM Compatible PC world had lots of different vendors, so Microsoft couldn’t afford to support just a small number. Part of what sold early versions of Windows was that it offered wider hardware compatibility than what little competition it had. Even when it comes to laptops, there are numerous Windows-focused models that can have various pieces of hardware swapped out for anything the user wants to buy.
So drivers are the main problem with trying to run OSX on non-Apple computers. It works best if you can build them with hardware that uses the same or similar drivers to the computers Apple sells. Since OSX is based on a certain family of Linux computers, some Linux drivers are compatible with OSX. That broadens the number of computers that might run OSX, but also requires more tinkering to talk OSX into using drivers it doesn’t know about. Since OSX is only designed to support a small set of hardware profiles, it doesn’t exactly have a way to easily configure it to add more drivers to its world view. Apple only wants you using Apple hardware, so they don’t invest effort in helping you use other hardware.
Windows, on the other hand, is easier to adapt because many of the components in Apple hardware have Windows drivers, or Windows has drivers that are “close enough” and can get the hardware working. In addition, Windows is already equipped to let you tinker with which drivers are used for what hardware because it has to support millions of devices that aren’t Microsoft certified. Microsoft thrives on supporting everything, so they had to add features to help you add things they don’t know about.
Latest Answers