Sunday, May 06, 2007

Freedom of Choice

I had a discussion with a co-worker a while back regarding how to overcome Microsoft on the desktop. My co-worker is a Linux fan, he uses Ubuntu/Debian and LOVES beryl because it makes his desktop similar to his lovely Powerbook. We discuss, on many occasions the differences between BSD and Linux but this one in particular caused deep division.

As many readers might know OpenBSD is completely free, meaning that the code once written is only required to retain the copyright but from there can be packaged and sold, manipulated, distributed, etc. Taking this philosophy (and license) OpenBSD's leader Theo deRaadt has been at the forefront of the free documentation campaign. He has worked tirelessly (all of the OpenBSD developers have) to try to get companies to release free documentation on their products so that developers could write drivers for hardware to work with OpenBSD. This has always sparked a heated dicussion in the open source community. Many times OpenBSD's mailing lists have contained requests (supplied with email addresses) to send email to the company requesting their release of documentation. Many times this has worked, other times it has not.

Where Linux differs with this is in what the GPL allows. The GPL essentially states that the code is open and must retain copyright and license but that if any changes are made and the resulting programs released the code must be released also under the GPL. The GPL is considered viral as anything that touches GPL code must essentially become GPL'd.

It gets mirkier. The Linux kernel (licensed under the GPL) allows NDA'd code into its tree. What this means is that certain developers can sign non-disclosure agreements with companies to develop drivers for Linux but not release the details of those hardware/software specifications. These are sometimes referred to as "blobs", small pockets of closed source, binary code. This is obviously an anti-open source position and catches Linux in a conundrum.

How can an operating system that touts itself as open allow closed pieces of software in its code tree? Good question. However I don't have the answer.

Anyways, back to the discussion with my co-worker. He had attended a conference at Penguicon that essentially suggested that "Linux" (used here to represent the industry surrounding the Linux kernel) should sign more NDA's and work to get as many drivers supported in the tree as possible in order to topple the monolith that is Microsoft. Thus rendering Linux the clear desktop choice for millions (billions?) of people.

Am I the only one that thinks this is the most absurd idea they've ever heard? "Let's forget our philosophy to beat ONE company so that we can be on the desktop in millions of homes." Anyone who thinks this is a good idea needs to re-evaluate their principles.

My co-worker even suggested that Linux, once it became THE chosen desktop could then turn around and open up all of its code. But this leaves out one very important piece to the puzzle. The hardware companies and their decision to lock in NDA's. Do you actually think that once you've made the millions of dollars by letting them get their way and lock in their drivers that they will actually turn around and give you all of that code for free? No. Not going to happen.

So where does this leave us? Well, exactly where we are at. Linux slowly trying to take over Microsoft and OpenBSD (other BSD's as well, although) just concerned with getting their OS to work on all hardware and to make better software.

A great big THANKS to all of those developers out there that choose to release their code and who work to develop quality functional and secure code.

Thank you very much, from a user.

No comments: