Most Mac lovers love the Mac for the carefully wrought user interfaces and the crisp design, and never pay attention to the open source at the heart of the operating system. But underneath this beautiful facade is a heart built upon the rich - if often chaotic - world of open source software.
If you want to go through the pain and joy of building the OS yourself from scratch, you can even download the open source core of Mac OS X known as Darwin.
That's just the foundation. There are thousands of open source tools available for the Mac, some built for the Mac alone and others that are translations of software created for other operating systems. Some are aimed at a niche of programmers or scientists, but a good number are supremely useful tools for everyone.
This list includes just 10 of the most essential open source applications for a Mac, all precompiled, polished, and ready to run.
Downloading the software is just the beginning because many of them have yet another layer of openness hidden inside. Several of the applications have their own built-in environment for extending the software. Some accept plug-ins, some have pop-up windows for writing short extensions, and some have both - so you have even more options for customization.
In many cases, you're not just getting an open source tool; you're getting a range of options to add to that tool.
Fix your Mac with AppleJack Why is one of the simplest ways to mend a sluggish Mac is to "fix the permissions"? Who changes the permissions on my files? Shouldn't I know? Shouldn't I - what is that word? - give permission for the change? What good are permissions if some gremlin can just come in and change them without asking me?
One way to fix the permissions and perform a host of housekeeping chores is to run AppleJack, an open source tool that triggers many of the standard housekeeping scripts like disk repair and cache cleanup. The only limitation is that you need to run it in Single User mode (hit Command-S at startup).
AppleJack won't ask you how you want to set the permissions because, well, that would shatter the myth by letting you, the system owner, know what's going on. So don't worry your pretty little head. The permissions will all be fixed and your Mac will run faster and smoother. If you ask too many questions, you'll end up burning the time you've saved by making your Mac more efficient -- so don't.
Get past Front Row with Boxee, Plex, or XBMC Apple's Front Row tool will turn your Mac into a living room computer by displaying all of the crucial media choices in big letters so that you can manipulate the menus from your couch. The software combined with the tiny, six-button mouse is one of the most elegant achievements by the Apple design team. It's not extensible, however. Perhaps Apple wants complete control. Perhaps the company is staffed by design fascists. Who knows?
There are three good alternatives to Front Row, and they all share much of the same code. The XBMC project offers a skinnable tool with many of the same features as Front Row, and it distributes builds for the major OSes. If you attach your TV to a Mac with some decent speakers, you'll get a media center that will play music and Internet video directly from your couch.
The story grows complicated because two other groups began to use the XBMC code. The Plex project is a true fork that is available for one and only one machine, the Mac. The code from XBMC continues to migrate toward Plex, but the Plex code base is optimized for Mac OS X.
Then there's Boxee, a venture-capital-funded startup that wants to help you share your video and music consumption with your close and personal friends. If you join, you start out with the founder Avner Ronen in your friendship circle. Buried under all of this amity is the Boxee application, which is built on top of much of XBMC. The company continues to support the XBMC code base, contributes some of its own code into the commonweal, and is listed as one of the supporters of the project.
There are two ways that the XBMC platform encourages simple contributions. All accept skins, which are mainly rules for how to display the information on the screen. The second is with true plug-ins written in Python; these are mainly tools for sucking down lists of content sources from the Web and arranging for them to play. Or you could just start your very own fork.