news.samba.org

Jeremy Allison Column Archives

The Low Point — a View from the Valley — Column 6

A Free Software Confessional

Forgive me Saint Ignatius, of the Church of Emacs for I have sinned.....

I do try and use only Free Software (or at the very least, Open Source) for as much of my day to day work as possible. The problem is it's not always possible, there are some essential tasks in which proprietary, closed-source software still has its tentacles inside my machines. So why is this, and why is moving to a completely Free Software solution still the holy grail that eludes most of us ?

When I first moved to the USA in 1991, Linux didn't exist. For low cost Intel computers, the kind you could afford to buy for home use, Windows was the only realistic option: so that's what I used. At work (I was working for Sun Microsystems at the time) I had access to the source code for both SunOS and the brand new Solaris OS and all the software that shipped with it. That was a luxury I sorely missed after leaving Sun, but even back then the first thing I (and many other Sun users) did with a new machine was to download, compile and install a full set of the GNU tools. The default then was for most systems and tools to be proprietary, with a few essential tasks for which a small set of Free Software was the only option.

Fast forward to 2005, look how much the world has changed.

Everything on my home systems is now Free Software, except for the three G's, Games, Graphics drivers and Groupware. OK, Groupware is a stretch, I'm including Skype in this but "the three G's" has a wonderfully alliterative sound I wanted to keep. People are continually complaining that "the Linux Desktop" hasn't taken off, but they forget how far it has come from the actively user-hostile systems like Open Look and Motif shipped by proprietary UNIX vendors. The fact that the Linux desktop is now even compared (albeit unfavorably) to Windows and the MacOS is a measure of what Free Software can now achieve.

So why are the three G's still proprietary ? And why am I unable to give them up ? It all starts with games. The kind of games I love to play are incredibly violent (hey, I'm American remember) first person shoot-everything-that moves games like Half-Life 2, Star Wars : Battlefront, Quake and others. This is the software I feel the least guilty about, mainly because I always feel I'm paying for the artistic content embedded in the game, not the software. Being honest, the actual game engine in software really isn't that important these days. They all look fantastic and have physics engines embedded, but it's being able to kill Ewoks and massacre a tribe of Jar-Jar Binks lookalikes that really makes a game fun. And yes, even though these are Windows games they can all be played on Linux through the magic of Wine and TransGaming.

But things are starting to change. If you haven't already, check out "VegaStrike", an amazing 3-D space combat simulation game, similar to the classic "Elite" or "Wing Commander" games. Fully Free Software, it runs on Linux, Windows and MacOS X. I've started to play it and it's beautiful ! Secondly, check out Nexuiz, another Free Software game, this time a first person shoot-em-up based originally on the Quake graphics code released under the GPL by Id software (thank God for John Carmack). It's fully multi-player, fast, fun and graphically very pretty. I already recompiled it to fix a problem with the sound on my system — try fixing that with a proprietary game. I may be declaring freedom on my games playing sooner than I originally thought.

Which brings me to the second G, graphics drivers. For all of my desktop work, writing software, doing email, surfing the web, 2-D X Windows drivers pushing pixels onto cheap, open-specification graphics chip-sets are completely adequate. But for games you need 3-D graphics, and that's where my second temptation comes in. All 3-D Linux games depend on good OpenGL drivers, and unfortunately for Free Software only the proprietary NVidia drivers are good enough. ATI has tried hard in the past, but they just don't update their drivers often enough to be dependable.

NVidia just won't open the code for these drivers. They claim that the code is full of proprietary secrets, essential for keeping their competitiveness in the market. I think that's utter rubbish and just an excuse. All of the vendors in this space steal each others employees and ideas enough so that anything one of them has, the others get it a week later. Also, isn't that what the plague of software patents is supposed to be about ? After all, they're busily patenting their software techniques (here in the USA at least) and that's supposed to inform anyone "skilled in the art" how these things are done (which, if you've ever read a software patent, is a complete joke. Software patents are written like obfuscated "C" code), so what reason is there to hide the code ? No, a much more likely explanation (in my opinion) is that, like most proprietary code, it's as dirty as the Aegean stables. Probably full of mixed licenses, code with no attribution or history of where it came from; a legal quagmire. It's probably the cost of cleaning that mess up that puts them off opening it up (after all, Hercules's consulting rates are outrageous).

But it still leaves us with no open 3-D graphics drivers, a very difficult situation for a Free Software desktop. However, there is some faint hope on the horizon in the form of a project announced on the Linux Kernel Mailing list in October 2004 to produce a Free Software friendly "3-D Open Graphics Card". This was announced by people with experience in doing the hardware design, and they're currently trying to create a $200 card with a first ship date of the end of 2005. It's a very long shot, and most projects of this kind fail, but if they can pull it off then I'll be happy to part with $200 for each of my machines to replace the NVidia cards which still occasionally freeze the screen after running 3-D games. Never mind, I'm sure the next closed source driver release will fix it....

Finally this brings me to the final G of "Groupware", by which I really mean Skype and other programs that depend on network effects to keep you hooked on them (like Microsoft Office). Skype is the "free as in cost" software telephony solution I use to keep in touch with my family and make all my international calls. There's nothing really in Skype that enterprising Free Software developers couldn't do, but the problem was they didn't, and now we have a closed source application with tens of millions of users, and thousands of third party developers supporting it. Still, it's hard to begrudge Skype their success, at least from a Linux users point of view. They fully support Linux, which just a few years ago would have been a pipe-dream, and it is fantastically easy to use even for non-technical users (I'm thinking my family here). I just wish I could fix the few nagging bugs it suffers from. I don't see a good Free Software Skype replacement yet, but I'm sure there are projects out there I just don't know about yet.

I just hope that eventually Free Software developers can work out how to hook into the Skype network and inter-operate with the Skype protocols, after all, there are good precedents for that with other Free Software.....

Eventually, I hope to be able to stop apologizing to the good Saint Ignatius and finally be in a Free Software state of grace.