I've been getting very excited about Linux lately. While Mac OS X running on Apple hardware is still my favorite computer setup, for people who use PCs- and for the wide variety of other non-traditional computer-like devices out there (phones, handhelds, set-top boxes, etc.), I think Linux has tremendous potential. The best thing Linux has going for it is that it's free, open, available to all to use and modify, and designed to be easily ported to nearly any kind of computer system.
In many ways, Linux has paved the way for some of the coolest, most innovative computer-based devices on the market today. Tivo is a great example. Without Linux, Tivo would either have had to create an operating system for their device from scratch (a challenging and expensive proposition) or license an OS from someone like Microsoft. Thanks to Linux, we're not using Microsoft MyTV (illegal operation: can't find "Six_Feet_Under.dll;" your licensing fee has been deducted anyway; sign up for Passport!). Instead, the folks at Tivo took Linux and used it to create a new type of device that could bring the capabilities of a fast hard drive and video compression technology to consumer electronics.
Now, back to Mac OS X. It's a great operating system. One of the primary reasons why it works so well- in fact, the essential enabling factor that allowed Apple to actually create OS X- is the fact that most of what OS X "is" is in fact built on top of an existing operating system. The vast majority of "OS X-" the user interface, most of the drivers, the application programming interfaces that software designers use when they write software (i.e. the stuff that a software publisher writes a program "for" when they write a program "for the Mac" or "for Windows") is software that sits on top of a core operating system that handles the really low-level stuff, like talking to the processor, the RAM, the disk drives, etc. The OS on which OS X "sits" is a combination of Free BSD Unix and the Mach microkernel that Apple calls "Darwin" (to be very precise, the Free BSD part actually sits on top of the Mach part- lots of stacking going on here!). So, basically, since Apple created its OS on top of an existing low-level system, they were freed from the task of having to write software that deals with the most basic (and complex) aspects of software design, and allowed to focus on the more important (to end-users) stuff like creating a wonderful user interface and a number of diverse and powerful application programming interfaces.
So, to summarize and simplify: the really cool parts of OS X sit on top of something else (Darwin).
Now, this system works great. No major need to change. But, since OS X is built this way, what would happen if Apple swapped the key components of Darwin that are currently handled by Mach and Free BSD with Linux? I've created the following diagram, which is based on Apple's diagram of Mac OS X's architecture, to show what I'm talking about:
Assuming this is possible (and it surely is, with the proper resources and engineering), why would Apple want to do this?
There are many answers to the "why", and I'm sure Apple asked themselves this question during OS X's initial development. There's also the question "Why not?", and there are many good reasons to this question as well. I could explain several of the specific why's and why not's, and I'm sure there are many others that I could not, but I leave that for another time.
I pose the question not because I think switching OS X's inner core to Linux is necessarily the right thing to do right now, but such a transformation would offer a number of very interesting possibilities that could potentially offer tremendous benefits to Apple, Mac users, Linux users, and computer users everywhere.
The best thing Apple has going for it is their software. Apple Software (from OS X to iTunes to Safari to iSync to Final Cut Pro) is what makes Apple products more pleasurable and practical to use than the competition. Apple's hardware is great, too, as is their vision and mission to innovate, but it's the software where the majority of what makes Apple Apple is manifested.
Currently, Apple's software only runs on Apple's hardware (with the exception of certain programs like QuickTime and iTunes, which also run on Windows). This fact is both a positive and a negative: because Apple's target universe of hardware is relatively small and built by them, they can better tailor their software to the hardware- and make it work more seamlessly- than, say, Microsoft, which is forced to make their software work with a much broader range of hardware, which is difficult. If Apple were to rearchitecture OS X so that it ran on top of Linux, they could theoretically expand their universe of target systems to every device on which Linux can run, and a lot of the difficult work would have already been done.
Now, this can be done to OS X with its current architecture. Darwin currently runs on x86 (non-Apple) hardware, so porting the stuff that sits on top of it to x86 would not be difficult. However, to me, if Apple is going to take the big step of separating their software from their hardware- offering the goodness of Apple to "everyone else"- then they need to do it in a way that will attract the most attention and offer the greatest incentive for "everyone else" to check it out. And if the core of OS X were Linux, with all of its media attention, active kernel development, and portability, that would make a splash. A headline like "Apple taps Linux to bring its software to everyone else" would be a lot more exciting, and would offer a lot more opportunities to hardware and software developers, than a headline like "Apple ports its operating system to PCs, creating a new offering that now stands besides Windows and Linux".
Mac OS X running on Linux could, in effect, become Linux's killer application. And Linux, with its swelling wave of recognition, acceptance, and innovation, could be the Mac's salvation.



0 Comments:
Post a Comment
<< Home