Just today, I was referred to as being “fanboyist at it's finest” whet it comes to Apple and Mac OSX. And I decided this topic deserves a post all of its own and would be a great start for my new blog ...
Yes, indeedy! I am A Mac OSX and Apple fan all the way.. and I really can't understand why some people always have to start bitching around when they hear Mac OSX .. especially people who have never seen or played with this awesome OS. Apple is now the LARGEST UNIX vendor in the world and the second innovative it-company right after Google! So what's wrong with being a fan and getting angry when somebody talks drivel?
Mac OSX & Open Source
Mac OS X is a great OS - it preserves the strength and spirit of BSD, but also adds value & improves the base. To many, Darwin/Mac OS X is the "fifth BSD" and apart from few architectural differences i.e.the Mach kernel, which I want to refer to later, Darwin/MacOS is as compatible as possible with FreeBSD (which Apple uses as reference platform). Additionally Apple has “opensourced” the whole core of MacOS (the userland and the kernel) and now others have a real say in how the operating system evolves. There’re instructions from Apple on how to build your own kernel and keep things. neat and organized. With its BSD heritage, OS X is not some newbie operating system. It is a mature, extensible one. On Mac OS X, you actually have two parts to the overall system: Aqua, helping define the Appleness to the OS graphical user experience, and Darwin, the core UNIX foundation the system is built on.
Apple is even somewhat behind the MacPorts project, which brings a second-generation system for the building, installation and management of third party software - very similar to the FreeBSD ports system, but better! If that is not enough, there are still Gentoo's Portage, FreeBSD ports, NetBSD pkgsrc available for OS X and if want binaries instead of compiling everything from source there is the Fink project, which also ports open-source applications to MacOS X, but uses the Debian package management system apt. X11 (a windowing system originated from MIT) is also available as part of Mac OS X. With X11 you get the output of 20+ years of other folks grinding out useful tools and applications -- commercial and otherwise. In case you need any other software, most packages available on other flavors of UNIX have been ported to OS X.
And YES Apple does contribute to the Open Source community, too. Look at how WebCore developed. When Apple created Safari, it used the Open Source kHTML rendering engine. When, in Mac OS X 10.4, it replaced kHTML with WebCore, the Open Source community became offended. Of course, The GPL license would allow Apple to do this. I saw an article from an Apple developer saying, “Hey! Wait a minute. Apple has vastly improved kHTML in WebCore.” And a few days later, Apple releases WebCore’s source code. So much on Apple and Open Source.
Apple & Commersial Software
One of the things I leaned here is that Commercial software is not always a bad thing. When you decide your time and level of productivity outweigh the cost of acquiring OSS or commercial software, you make the investment. And there are applications for OSX, you poor unix/windows/solaris/whatever_else users have never dreamed of :)! There are students who will take the time needed to make their Linux installations productive environments. However, I'd wager the time needed to load and configure an equivalent amount of productivity tools on MAC OS X or Windows is less than on Linux. And the number of people willing to invest that extra time is much smaller than those willing to get a Mac or Windows system. I mean who wants to work with this crappy Oppenoffice.org anyway :).
Before you come up with ways to contradict me let me say that I do agree, that Linux and BSD are great OS’s too. I myself used them both for many, many years and that’s why I know they are a great choice as a server, just not as the preferred desktop productivity environment -- at least not quite yet (Ubuntu anyway acquires a taste for it). To summarize this section: because it's aimed at consumers, OS X has no problems in some of the areas where Linux/BSD still lags, such as multimedia performance and productivity tools. Some Linux users must run a separate PC for these tools, but the Mac user doesn’t have to.
OS X as a development platform
When it's time to work on programming projects for school or personal curiosity, install the developer tools, gratis in OS X. GCC, Java, Perl, Python, Objective-C, and Ruby are all at your fingertips. About the only languages or compilers I can think of not included are Fortran and C#.
Anyway mono and gcc-fortran can be installed through one of the many package managers I already mentioned. Once you're in the Terminal program for command-line access, you'll also find the familiar GNU tools, as would be found on most UNIX systems. There are even open source x86 emulators, such as BOCHS, if you want to spend time tweaking your own emulator instead of purchasing Virtual PC. Essentially, the visually stunning Aqua user interface doesn't prevent the inquisitive user from going to town customizing the system and developing tools just as other UniX users do.
The OSX kernel: XNU
Here is the article a colleague told me about today: “Next Version of Mac OS X to use Linux Kernel”. I hope this is a basilisk. Linux would make a really bad kernel for Mac OS X. It would turn the Mac development world upside down unnecessarily, and there's nothing inherently bad about Mach anyway. The people who talk about how XNU is inherently several times slower than Linux are either uninformed, liars or idiots.
Apple has better things to do than chase fleeting buzz. The XNU kernel works. Mach provides XNU with a competitive advantage in its unique design. It's investable. Apple's intending to build for 15 years on Mac OS X, and they're comfortable with the foundation they've designed.
Sure, there's plenty of room for optimization throughout Mac OSX, as there is with any software product. In that regard, Apple can import technology from the various BSDs, each with its different focus. In contrast, Linux has one codebase, and a general focus that isn't closely aligned with Apple's.
Mach capabilities or limitations are a red herring, as a quick glance at wikipedia would show. XNU is a heavily hacked hybrid of Mach 3.0 and 4.4BSD (FreeBSD in practice), and bears almost no resemblance to the original NeXT-Mach.
On the other hand Apple announced, that the new Leopard will be FULLY POSIX COMPLIANT. In fact the beauty of the POSIX environment is that one could switch between different kernels with a little effort still build a stable and secure OS which is what makes this OS design of separating the OS kernel from the userland tools such an exciting proposition. So the announcement of Leopard being FULLY POSIX compliant might be an indication for a possible kernel switch. Apple has already announced its wish to make the Solaris ZFS the default FS for the 10.6 release, so I can’t be sure that the kernel switch is just a rumor!
Conclusion
I've been a user of Windows, Linux, serval BSD’s Solaris and finally Mac OS X throughout the years. From what I've seen in the past few years, Mac OS X offers the best combination to satisfy your inner geek and get your day-to-day tasks out of the way. Sometimes you want to explore, other times you just want to avoid hassles and get your work done. Mac OS X is the place I now call home. I think many others would be happy here too if they realized the benefits this platform provides.