Free Software on Windows and Mac
In depth: There's a long running argument between two opposing groups of open source advocates. Does the availability of free software for a proprietary platform promote or inhibit open source adoption?
Some, such as Richard Stallman, argue that running free and open source software (FOSS) on OSes such as Microsoft's Windows or Apple's OS X gives people one less reason to switch to GNU/Linux. Others feel that the availability of free GPLed software gives people a taste of software that may be otherwise out of reach, promoting the quality and diversity of open source development.
But is there really enough cross-platform free software out there to tempt users?
Inkscape is a good example. It's available pre-built for Windows, OS X and Linux, and shouts 'Draw Freely' as a slogan from both its web page and the application's About window.
Hopefully, freedom is infectious. Over the last few years software that's free, as in speech and in beer, has embedded itself within Windows and OS X and become an essential tool for many. Even if people don't understand the politics behind freely available office suites, top-class web browsers or Samba networking stacks, more users means more bug-testing, more publicity and more pressure on the third-party vendors to support the applications we, as Linux users, rely on.
If Mozilla Firefox hadn't become a household name, we'd still be fighting websites to ensure compatibility, and OpenDocument might not have become a ratified ISO standard. It also means that users of IBM's ancient OS/2 operating system can still run cutting-edge open source applications such as Scribus.
The best thing about free software on proprietary OSes is that even when you can't choose your computer system – such as when you're at work or in a cafe – you can still run software that reminds you of home. Many projects provide packages for other operating systems, and you might be surprised to find that some actually work better on Windows or OS X than they do on Linux. Many are easier to install and upgrade.
But nothing can touch Linux for providing the fertile development environment from which many open source apps initially blossom. It's the combination of open source tools, an inclusive community and a desire to provide free functionality for an alternative OS that has driven free software development. And it's forcing companies like Apple and Microsoft to re-evaluate their approach to open source. That can only be a good thing.
FOSS on Windows
The first thing many of us do when we're faced with a new Windows installation is to download Firefox. The Windows version is functionally identical to its Linux-based cousin, and once it's installed and running, your web browsing experience will be the same. Firefox is arguably more secure than the browser that's bundled with Windows by default, and certainly takes a harder line on such annoyances as pop-up windows and embedded applets.
One of the most important extensions for working with several different installations of the Firefox browser is Foxmarks, which keeps your bookmarks and (if you want) your passwords synchronised across computers by storing them online. What's more, if you're at a different computer and don't want to install Foxmarks there, you can get to your bookmarks online from a special URL. Yes, all this data is tied to the Foxmarks server, and while we can't recommend trusting your entire browsing life to someone else, it's nice to have a backup, especially if you've spent years building a collection.
The second prerequisite installation for a Windows machine is OpenOffice.org. As with Firefox, this suite of applications will feel very familiar, and everything behaves in exactly the same manner as OpenOffice.org running on Linux. It's now a viable alternative to an office suite that costs a great deal more than nothing.
Firefox and OpenOffice.org are the easiest applications to run on Windows because they're built on system-independent platforms. Things get much harder when you look at applications that are reliant on various Linux technologies. One of the most popular is Gimp, the image editing tool that we all know and love.
Gimp goes to Windows
Gimp is built with GTK 2, a toolkit that's so integral to the Linux desktop experience that it is the Linux desktop experience. Gnome uses GTK extensively for much of its functionality. But GTK has been ported to both Microsoft Windows and Apple OS X, and this is a requirement for both operating systems before you can install their flavours of Gimp.
The way that GTK is used by the operating systems is quite different. With Windows, you'll find that GTK is embedded within the application you download, and is usually included as a library (a .dll file) installed into the same directory as the application.
This means there's no sharing, but it also means there's no version compatibility, with each GTK application requiring a different version of the GTK library. In Gimp, this is all hidden behind an automated installer provided by Jernej Simoncic. This includes 5.5MB of the GTK 2 Runtime Environment for Windows, alongside 2MB of Gimp binaries. Installation of both can be done with a single .exe file downloaded from SourceForge.
Many open source packages can be installed on Windows with a single click.
Occasionally, you might be asked to install an extra package or two. With Scribus, which is your best option for a free desktop publishing package on Windows, you also need to install Ghostscript to enable PostScript and EPS import and printing. This is a simple download that automatically unzips the installation to a destination directory, after which Scribus will behave just as it would in Linux.
GTK is also required for the Windows version of Pidgin, the application formerly known as Gaim, and it's the Pidgin library that's used behind the scenes of another popular Windows instant messaging client, Miranda. Two other essential applications for your Windows installation are the Audacity audio editor and the vector graphics editor Inkscape. Both have very few rivals and are immensely popular.
Audacity features a VST Enabler as a separate download, and this enables Audacity to use any of the hundreds of freely available VST audio effects – a big advantage over the Linux version. Meanwhile Inkscape's developers have stated that they want their application to be accessible to all, regardless of platform, putting a lot of effort into a single, unified user interface.
Running Gnome on Windows
Install Cygwin: For a Linux environment within Windows, Cygwin works by converting POSIX system calls into those used by Windows. Start by downloading and running the tiny Cygwin executable.
Pick your packages: Choose your closest Cygwin package repository. You can add additional repositories for the Gnome and KDE builds manually. The installer will then download the package list from the remote site.
Download Gnome: Select the packages from the list and click on Next. With a Gnome installation, Cygwin will download almost 1GB of data and create a desktop icon to launch the Linux desktop.
FOSS on OS X
Working with free software on Microsoft Windows is relatively straightforward. Applications are downloaded and installed just like any other Windows application, and the user will be used to each application taking a different approach to user interaction. But things aren't quite the same for the average Apple user.
OS X is a streamlined system that uses very strict, very well researched user-interface guidelines. While the Gnome desktop is getting closer to apeing the OS X approach, right now open source applications lack much of the finesse and good design of OS X applications. But look past the aesthetics and OS X offers the closest Linux experience you can get if you have to spend money.
More X than X11
Thanks to Apple's OS X being a Unix-like operating system, it's a great choice for running open source software. It comes with a free development environment, and Apple even uses certain open source projects to insert essential functionality into its operating system. The Samba networking stack, the Apache web server and KHTML are all integral parts of the OS X experience.
But when it comes to the Mac, things are complicated by the differences between OS X and Linux. Many FOSS applications, including those that use GTK, rely on an X11-compatible windowing layer. In Linux, this is provided by the X Server we use, and we take the X Window System for granted.
OS X, on the other hand, uses its own internal graphics rendering engine. But you can install an X Server, either as a download from Apple's website or by using the discs that came with your shiny new Intel Mac.
The only problem is that installation can take a while (a couple of hours), as OS X wants to run through the entire installation procedure. If you've got the luxury of installing OS X from scratch, choose to install the X Server along with everything else.
If you'd rather stick to community-driven projects, the XDarwin project also provides X11 compatibility, using the XFree86 source code to build a Mac package. But the extra hassle of ensuring X11 compatibility is worth it for developers – they need to change very little to get their applications to recompile using Apple's X Server, as it's functionally identical to its Linux counterpart. Just try typing man startx from the OS X terminal to see what we mean.
Inkscape and Scribus
Thanks to the ease that applications can be ported, you'll find more open source software for OS X than you will for Windows. Gimp and Inkscape both feature as major projects, with their own OS X builds and installable packages. Scribus, on the other hand, still has other requirements, including Apple's Xcode development tools – go here for a detailed install guide.
Despite this, ported Linux applications running on Apple's X Server behave as you'd expect. They even look like OS X applications, but there is a slight trade-off. You'll lose clipboard integration, copy, paste and other common keyboard shortcuts (Ctrl+X replaces Apple+X for cut).
You also lose a level of desktop integration, as X11 applications don't know anything of the OS behind the current session. For instance, you can't drag and drop files into Gimp's tool palette as you can with Linux and Windows – instead you need to drag the file on to its small icon in the dock.
Plenty of applications use a simple enough GUI API that there's no need to use the X Server. These ports will 'just work'. Good examples include possibly the most versatile media player, VLC, and two of the best planetarium applications available for any system, Stellarium and Celestia.
Free astronomy applications, such as Celestia, would cost a small fortune if they were commercial.
These work faultlessly under OS X and Windows, and are good examples of quality open source applications that just work: the best possible advertisement for open source. Thanks to Trolltech releasing a GPL version of its Qt API, there's even a fully functional version of the MythTV front-end for OS X – something that would require a serious amount of effort to develop for a Windows machine, due to its strict use of libraries, configuration files and file locations.
Trolltech was able to take advantage of the similarities between Linux and OS X to make building from the original source code relatively straightforward.
The extra layer Apple's X Server adds to your desktop has been a problem for some, and several projects are trying to build 'native' free OS X applications from the original source code. The best known is NeoOffice, which rips the guts out of each OpenOffice.org release and transplants them back into an OS X application.
For example, NeoOffice places the menu bar at the top of the screen, and also uses OS X fonts and printer drivers. It also runs without using the X Server. Back when OOo didn't have OS X support as standard (ie, pre-3.0), NeoOffice basically had the marketplace to itself. But even though OOo does officially support OS X natively, NeoOffice development continues on, It is, however, always a version or two behind OpenOffice.org, the current release being a beta of OOo 3.0.
Another project that attempts to remove the X11 requirement from a popular open source project is Seashore. This is the unlikely name given to a project that's used Gimp source code to create a native OS X app. Unlike NeoOffice, Seashore doesn't attempt to recreate every feature of its open source cousin. There's no control over font rendering, for example. But it does keep the important bits, such as the layer and brush palettes, and the various filters that make Gimp so much fun to work with. Seashore doesn't get much love from developers these days, but it's still a competent (and free!) tool for Mac users who don't want the full-fat Gimp.
Remarkably, some applications even run better on OS X than they do on the Linux desktop, and one of those is Ardour, the exceptional audio multi-tracking application. Ardour requires X11 and the audio interconnecting patchbay Jack. The OS X version of Jack can be installed from a single, downloadable package, which makes it about 1,000 times easier to use than on Linux.
The audio multi-tracking application Ardour uses a Mac version of Jack for audio interconnectivity.
And thanks to all Macs using the same Core Audio API for sound, Jack plugs seamlessly into your current audio setup. It's a much easier way to work with one of the most powerful and free audio applications available, and will hopefully lead to the Linux setup becoming easier to use.
But for the ultimate in compatibility, and the widest selection of open source software, there are two projects that aim to port Linux applications without the associated hard graft that's required to make them run on OS X. The two projects are Fink and Macports.
Both install a Linux-like development environment on your OS X system and use a package manager to install applications and source code into a 'pretend' Linux workspace. Fink will even install a working apt-get system, which works exactly like the same tools on Debian-based Linux system (Macports uses a port command in the same way to install and upgrade packages).
The result is the closest you'll get to running Linux on your Mac without resorting to either a dual boot or a virtual machine, and can be a viable alternative to running Linux if you have to stick with OS X.
With a properly configured build environment installed through Fink, you can even download the freshest Linux applications and compile them against the Fink-installed libraries. In this way, you can run applications such as GnuCash that aren't currently ported to OS X in any form.
Installing Nethack from Fink
Find a program: Fink installs a graphical package manager that feels just like Synaptic. You can update installed packages and install new ones by browsing the list of 7,000 packages or searching for files.
Choose install method: You can install either the binary executable or the source code for any packages you select, and Fink will automatically install the dependencies. These are downloaded from internet repositories.
Run and play! Once installed, packages are executable from the regular OS X terminal. In this example, typing nethack will transparently run the application we installed through Fink.
First published in Linux Format magazine