June 04, 2006 Archives

04-06-2006 14:08

Free and Open Source Software (FOSS)

"elvis" from OCAU (Overclockers Australia) wrote a very well written piece on this subject of FOSS. I liked it a lot, it's so detailed, indepth yet consise, that I wanted to put it up here for me to point others to. OCAU is a forum you can only read if you are registered. As many people would not bother, they would miss out on this piece. So I will quote him here:

From the thread that got nuked thanks to some rather fruity language, one new member to our forums posted this link:

http://www.iapoce.com/drivers/nolinuxforme.html

Inside are some rather frustrated accounts of attempting a Linux install. Now I'm not here to criticise the user, but rather to try and offer an explanation of where he went wrong.

Firstly, everyone needs to understand what "Linux" is. GNU/Linux (the preferred name) is a collection of the Linux kernel, and a series of GNU utilities that translate input from the user to kernel level instructions (say, moving your mouse, or pressing keys on your keyboard), and then translate output back to the user again (say, video or audio output).

Most GNU utilties are licensed via the GPL. The GPL is a large and complex document, but basically translates to the following:

  1. All code written is copyrighted to the author (yes, the GPL is a copyright).
  2. All code is free for anyone to download and examime.
  3. All code is free for anyone to download and compile, for personal or commercial use (yes, you can make money from GNU/Linux)
  4. All code is free for anyone to modify for personal use.
  5. Any code that is modified for commercial or other public consumption MUST be licensed under the same license (ie: the GPL), and must be made available to the public under the same terms.

Simple as that. Now, some companies make standalone software for GNU/Linux which isn't GPL. A notable exception is Nvidia. Their drivers are closed source, binary only, and licensed under Nvidia's own private license.

The author of the above article lists his frustrations with the Nvidia Linux drivers here:

http://www.iapoce.com/drivers/6800gslinux.html

In particular, the following line caught my attention:

Quote:

Download a nVidia driver from nVidia site - (cause distributors didn't care to do it for you and include in the install disk)

This is incorrect. The distribution authors do care very much. They would really like to include these drivers for you. It is however difficult and often illegal for them to do so because of licensing. Yes, a totally non-physical limitation imposed by a foreign corporate entity stops them helping their own users. Pretty sad.

Furthermore, the "fault" of no competant Nvidia drivers for GNU/Linux and Xorg is not the fault of the open source community. It's the fault of Nvidia. GNU/Linux is not just software, it's a philosophy. The philosophy is that anyone is free (as in freedom) to have access to the source code of any software.

Many people don't care, but the reasons are clear: just like when you buy food at the supermarket and it MUST contain an ingredients list for your own safety, software should do the same. How many times do you read the ingredients list of food you buy at the supermarket? Do you understand what the complex chemicals and preservatives listed are? Do you know if they are dangerous for you? For most people, they don't. But that doesn't matter. They can hire someone who does to explain it to them, or look these up online. Likewise, for consumer safety, trust and freedom, software needs to do the same.

So this rant unfortunately targets "Linux" as the badguy. Let me make it clear: the "bad guy" is Nvidia. Petition them to release GPLed drivers, and you will see out of the box support for all Nvidia cards.

Back to the main article again:

http://www.iapoce.com/drivers/nolinuxforme.html

And I notice immediately that the author has made the same fault many people make when they try "linux". The first distro he tried didn't work. So what was the solution? Distro hopping. He goes on to try a grand total of 7 different GNU/Linux distros.

This immediately tells me the author does not understand "Linux". No, I'm not criticising his technical knowledge. In fact, he's gone as far as to join forums to search for technical help. This was one step he performed that should be acknowledged and congratulated. "Linux" has some of the best online community support out there, and 99.99% of the time your problems can easily be solved by forum goers.

What the author didn't understand was not the technical nature of GNU/Linux, but the philosophical nature. Distro-hopping is not the answer to technical problems. "Ubuntu", "Kubuntu", "Mandriva", "Linspire" - these are all GNU/Linux distros. What that means is that they all use similar kernels, similar init scripts, similar system and support software. Distributions are NOT different operating systems. They are different packaging techniques on the same operating system. They are different presentations. Distro-hopping generally is a waste of time when it comes to trouble-shooting your problems. If your hardware is not supported by the Linux kernel itself, there's little chance that changing distros will solve your problems.

Which brings me to my final point. The user's hardware.

Quote:

  • Mboard ABIT KN8 socket 939 for Athlon64 CPUs running on nVidia nForce4
  • Video Board nVidia 6800GS PCI-EX with 256DDR3 onboard video memory
  • Logitech Wireless desktop with optical mouse
  • Skystar2 satellite receiver
  • BUlk Atheros 108Mbps wireless network card
  • A 200Gb WD SATA hard drive and a 80Gb Maxtor PATA HD
  • Optical drivers (2) - Webcam - Printer - other small stuff (Card readers Floppies etc).
  • I'm a systems administrator. I deal day in and day out with all sorts of weird and obscure hardware and software. Hardware and software probably 5% of the people reading this have dealt with or even heard of. When choosing this hardware and software, there is ALWAYS one step that I MUST do without fault: check hardware compatability lists.

    Assumption is a big mistake. Assuming merely because your hardware fits together physically that it will therefor be supported by every piece of software on the planet is a mistake. NEVER assume. Or as the amusing saying goes: "Always assume your assumptions are wrong".

    The very first thing the author of this article should have done before even bothering to download a Linux distro was to check his hardware compatability. It's painfully obvious this step was missed.

    You wouldn't buy a PCI-Express video card if you owned an AGP motherboard. And if you did, you wouldn't blame your motherboard for being "out of date", or blame your new video card for "not being backwards compatible". You'd blame yourself for not doing the research.

    As a long time Linux user, I look through that list of hardware above and immediately spot 2 or 3 items that will cause problems under Linux (for starters, NForce4 support is limited - hence his USB problems). Which begs the question: did the author check his hardware against online documentation first? Did he post on friendly Linux forums about whether or not his system would work? I can only assume the answer to both questions are plainly "no".

    If you are serious about using Linux, you need to buy the right hardware for the job. People spend a great deal of effort researching the best video cards for gaming, or the right soundcards for pro audio. Yet they seem all too happy to just slap Linux on any old hardware without any prior research.

    People are all to quick to blame GNU/Linux for their problems. But GNU/Linux is like any other software: it has limits. No software can support everything (there's plenty of hardware out there that has no Windows support - stuff I deal with daily). But this is not the "fault" of Windows at all. And likewise, it would be my fault if I purchased this hardware for use on Windows without first checking the support status.

    So I emplore anyone reading this: if you have any doubts about what hardware is supported by Linux, I suggest doing the following:

    1. Checking the hardware support against online sources
    2. Posting in the forums of the distro you have chosen and asking the developers or volunteer helpers. Ubuntu in particular has BRILLIANT forums with friendly people who will help.
    3. Posting in here. Likewise, the folks here are friendly. A quick "hey, will hardware X be supported by Linux without any effort on my behalf?" type questions will be answered quickly and concisely. We like people trying Linux. But if we can tell you in advance that you may run into problems and save you some frustration, then we'll offer that advice.

    We might be grumpy, and we might pick a lot of fights in the Windows forums, but we are here to help. If you have ANY questions about Linux, and about hardware that will work with Linux, please do make a new thread and ask (or even respond to this one). Someone somewhere will help you out, and hopefully save you needing to write your own "Linux Rant" page.

Later in the thread a user posted stating that he believes companies should produce closed source drivers, it's their right to do this. "elvis" replied with:

The problem is that you see software as a commodity, or a product. It is not.

Another user came backing for more information on this, asking, how should we see software.

"elvis" replied with this:

The problem is that you see software as a commodity, or a product. It is not.

The 1970's Harvard Business school taught a generation of corporate Americans some very silly things. These are the same people who still believe downsizing PEOPLE is a way to increase PROFITS. These are the same people that treat quality staff like mere numbers and do nothing to keep intellect inhouse. These are the same people who consider training a rediculous and unecessary cost, and the same people who think they can constantly outsource labour to a cheaper supplier and still provide the same quality to their customers. These people are failing. Watch the tech stocks of the companies most guilty of these naive ideas, and see for yourself their "success" rates.

And these are the same people who think software algorithms are items that can be bought and sold. They are not. The EU recently had the common sense to overturn any further application for software patents. The next step is for them to realise the link between this decision and the decision to move to free software whenever and whereever possible.

As for firmware - the very idea of such a thing is ludicrous. In general items that require proprietary and closed firmware are underperforming and unreliable. Look at the humble PC BIOS. This is the most archaic part of a modern PC, and one that is holding the vast majority of desktop and server performance back. A free and open alternative would do far greater good for both the customers and the hardware manufacturers. Companies spend billions fighting amoungst themselves when instead they could be helping each other to increase technological performance exponentially.

As more and more people understand what software really is, more and more people embrace free software. Fewer and fewer people desire to have their computers controlled by a select minority of people with a vested interest in profits and not safety. We are on the knife edge of an era that will be enveloped by DRM and other rights-removing technology. Anyone who considers this and other closed source acceptible really needs to move away from the ideas of the 70's and come screaming into the 21st century.

Times have changed. The people who need to "move on" are those who think they can control software. Software is nothing but ideas on paper (or in thise case, electronic representation). The idea of "controlling software" is like trying to "control ideas". Hitler tried burning books, and that got him nowhere. The companies that continue to try and hiding their software from their users are learning that they simply cannot compete with the free alternative that offers users far, far more than just "value for money".

Corporates come and go. Code is made, and code is lost. Free software never dies and always improves, and anyone can benefit from it. The age of corporate software will not last forever. It can't last forever, as it is doomed to die by its own rediculous rules.

"elvis" writes very informative posts on OCAU but this one was a gem I felt worth re-posting.


Posted by DaveQB | Permanent Link