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 plugins, some have popup windows for writing short extensions, and some have both, so you have even more options for customisation.

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, 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 optimised 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 plugins 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.

Unlock the world of open source with Fink

Underneath the gooey, wet Aqua skin of Mac OS X lies BSD Unix, an open source operating system that began long ago at Berkeley. Steve Jobs adopted it at NeXT, and when NeXT acquired Apple (though, technically, Apple acquired NeXT), all the BSD infrastructure came with the deal.

BSD Unix has many close cousins, such as Sun's Solaris, and many not so close cousins, such as Linux. All of them are filled with open source software. The Fink project brings all of this software to the Mac, modifying the code so that it will compile and run on Mac OS X and providing tools that help with installation.

Fink is the command line version of the package manager for the muy macho, and Fink Commander is an aging push and click tool that allows the Fink command line to remain hidden. Either tool will unlock most of the wonderful open source Unix software for the Mac. Kind programmers modify popular Unix tools to work with Apple's peculiar way of naming the directories and then store them with Fink.


When you fire up Fink or Fink Commander, it will download the latest list of packages. Following that, you can walk through the candy shop installing software. This generally works well, but it can get messy if you load up on programs. Fink will grab as many libraries as it needs, and the result can be pretty big. In many cases, Fink is smart enough to get the right version, but sometimes the libraries from one project will overwrite another.

All told, the Fink repository holds more than 10,000 packages, from programming tools to games. Perl, Python, and Ruby are probably most at home on Unix machines, so they're natural residents. Much of the internet infrastructure runs on Unix, so many useful tools for plumbing the network, such as Wireshark, are here too. You'll also find several scientific and mathematics packages.

Fink doesn't do much itself, but the packages in the repository can take care of practically everything you might need, if you are a command line jockey or someone who isn't afraid of using your keyboard without a mouse. Fink really unlocks the power of the hidden Unix core of the Mac.

Learn the power of plug-ins with Firefox

Firefox is an essential browser for Mac users, because it's a simple way to get some PC compatibility without running Windows in a separate virtual machine. Many websites are tested first on Internet Explorer, then on Firefox, and finally on Safari if the developer has time. Using Firefox on the Mac is almost the same as using Firefox on the PC.

There are deeper advantages. Firefox is often the first place that web developers see their creations because there are so many useful additions that help programmers. For instance, Firebug and Web Developer turn any version of Firefox into an amazing tool for diving into the behavior of a web page.

Addons like these are some of the 5,000-plus reasons why the Firefox browser isn't just an open source tool, but an open source ecosystem. The browser's source code is open, downloadable, and forkable, but the real openness lies with the plugins and extensions. The developers added a simple API that lets anyone write a small block of code to reconfigure practically any part of the user's experience. Addons like FastestFox speed up the browser by increasing the number of download streams, while Personas contribute new skins. And then there's Greasemonkey, which accepts simpler JavaScript plugins in case the main Firefox API is just too difficult. You can write JavaScript that acts upon the DOM as the page comes in, effectively giving you more control over the behavior of a web page.


There are deeper forks too. A number of other browsers like Flock and XeroBank marry Firefox's core rendering engine with other features. Flock combines a social network layer to the browsing so that you can share your click stream more easily with your friends. Xerobank incorporates Tor, a proxy tool that blocks your location from the websites.

Escape from Photoshop with GIMP or Seashore

There is only one problem with Adobe Photoshop: the price, close to £600 for the extended version and more than £1,000 for a big bundle with other tools.

But there's GIMP, the GNU Image Manipulation Program, which costs nothing. It's built mainly for the GNU/Linux world, so you can't use it without installing X11, a task that's not too hard if your original Mac OS X installer disks are handy. But it does almost everything that Photoshop can, and there's even a skinning function that makes it look like Photoshop.

Like Firefox, much of GIMP's value comes from the wide variety of plugins built by programmers and artists. Some tagged "script fu" are amalgamations of GIMP operations linked together by the built-in scheme programming language.

If you're not enough of a programmer to enjoy using the LISP-like Scheme, you have two other choices. First, run back into Adobe's fold and purchase Photoshop Elements, a version of the big tool with a much more attractive price; for just under £60, Photoshop Elements will also use most of the professional plugins sold for Photoshop. Or second, grab Seashore, a simple version of GIMP with only the most essential routines. It's already a Cocoa app, so there's no need to install X11.


Turn ASCII any which way with jEdit

jEdit is a Java-based editor for programmers that is backed by an active plugin community, a slick auto-updating mechanism, and a sophisticated project system. This is for most intents and purposes an IDE without the compiler and the execution mechanism. If you add a JVM and Javac, you'll have everything you need to develop Java programs, including CVS and SVN connections.

The plugins handle more than just Java. There's also support for the usual suspects like Perl, PHP, Python, and Ruby, as well as some not so common languages like Rexx, LaTeX, and Prolog. There are formatting tools and real shells that execute the code inside of jEdit.

While all of these examples are good for hard core programmers, there are plenty of features that enhance any kind of text editing. There are a number of tools for balancing tags in HTML and XML. If that's still not your cup of Joe, there are also plugins for juggling log files and to do lists.


Stick it to Microsoft with

Long ago, everyone had to buy Microsoft Office because everyone else already used it and you couldn't work with them on documents without it. If someone sent you a file, you would need Microsoft Office to read it. That time is long past, thanks to, an open source project nurtured by Sun. The software reads all of the major document types, including text, spreadsheet, presentation, and drawing. There's also a database like Microsoft's Access.

Is the compatibility perfect? No, it's not. Text may move, tables may lose their formatting, and charts and drawings may end up in entirely different places, but the documents are often quite close to the original. That's good enough for most relationships, although it might be tough for tight collaboration with strong aesthetic requirements.

Handle feeds wisely with RSSOwl

There are a number of good commercial RSS feed readers and some good free ones, but some of the good free ones aren't open source. (NewsFire, Shrook, and NetNewsWire are just a few.) RSSOwl is a cross platform tool built out of Java, Lucene, and the Eclipse Rich Content Platform. It doesn't set up its own open source ecology, it's part of a bigger one. You can add new menu items, new views, or preferences pages just as you would to any other version of Eclipse. The UI is very configurable.

RSSOwl also has more extension points inside. You can override all of the handlers for each XML element, the particular formats like RSS or Atom, or the protocol. This can be useful because some RSS feeds require formats that are far from standard. Some sites insert custom images and other bits of data that might be handy.

One of the RSS feeds from my site, for instance, includes images with a real hack because many RSS readers can't handle the extra img tags. Adding a bit of code makes it possible to take apart these special instances of RSS.


Set your e-mail free with Thunderbird

The Mozilla foundation spends the ad revenue checks it receives from Google on more than Firefox. Thunderbird is a mail reader that is open source in two ways, just like its browser cousin. First, the code itself is available under the Mozilla licence. Second, the developers have built the same sort of addon mechanism for Thunderbird as they created for Firefox.

There's a wide range of plugin applications available for Thunderbird. Leet Key will translate your e-mail into either L337 speak, ROT13, or several other useful formats. Russ Key takes Russian words typed phonetically with a roman alphabet keyboard and translates them into proper Cyrillic. Enigmail handles all of the OpenPGP encryption so that you can scramble your communications.


Play any video with VLC

Sure, QuickTime is a great system, but it's a bit limited. It doesn't come with every codec, and you have to purchase QuickTime Pro to get the features you really need to work with video. This isn't a big limitation, but it can be a pain if all you want is to play some files.

A friend of mine in the video codec business set me straight. The best all purpose video playback tool that he could find came from a group of open source programmers in Europe, not from the professional developers working for the codec creators. He was so baffled when he saw how well VLC could handle everything he threw its way that he started calling it the Swiss Army Knife for video. VLC displays almost every video format known on all of the major operating systems and even some long forgotten favorites like BeOS. I often reach for it instinctively because it knows how to deal with some of the Ogg Vorbis files I have laying around.


My friend went on to offer a theory about VLC that seems entirely plausible to me, although I often wonder whether it could really be true. VLC, he said, was written by people who never went to the industry conferences and meetings. They never made friends with the big players, and they never had tight relationships. The only information they had were the public specs for the standard, so they followed them scrupulously. The arm's length relationships kept their code free of the kind of assumptions that come when a programmer hears another programmer say, "Ah, we're only using integers. I don't know why floating point is in the spec." So when the next revision comes along with floating point numbers, VLC is ready while the codecs from the insiders never bothered to anticipate that possibility.

Maybe he's right. VLC has never given me a reason to doubt him.

Money for nothing

In the great tradition of open source, there's no charge for using any of these packages. Just download and go. But that doesn't mean you shouldn't be sensitive to economic realities. The best open source has a sponsor, and sometimes that sponsor should be you. Some packages like Firefox make their money selling advertising through Google. Others don't have that option, so give when you can. Most of the packages have donation buttons, and some even make it possible to give to the developer of a plugin (for instance, ScrapBook for Firefox). That's innovation.