Linux is an example of what is called Free and Open Source Software (FOSS), but the word free may require just a little unpacking to get at what is meant here. Free can mean “does not require the payment of money”, and to Linux users this is often stated as “Free as in beer.” This can lead to the obvious question “Where do you get beer for free, anyway? I always have to pay for it at the store.” Still, the intent here is clear enough, we are defining “free” in economic terms. Well, that may be good in some ways, but it ought to lead you to wonder where all of this free software is coming from. In my e-mail sig I have the acronym “TANSTAAFL”, which stands for There Ain’t No Such Thing As A Free Lunch. (An aside: When I was in graduate school in the economics department of the University of Michigan, the grad students put out their own department newsletter and called it “The Free Lunch.” I think the idea was that we could plausibly deny that it existed.) I got this acronym for Robert A. Heinlein, who used it in his book The Moon Is A Harsh Mistress, but I suspect he got it from somewhere else.
The other meaning of free is “free from restrictions”, and in the Linux community this is condensed as “Free as in speech.” In the more advanced democracies, at least, there is some legal protection for people who wish to express their own ideas, even if those ideas are critical of the government or unpopular. This is not just free, but it is freedom. In terms of the software world, this is best summed up by the Free Software Foundation’s definition of Free Software:
* The freedom to run the program, for any purpose (freedom 0).
* The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.
* The freedom to redistribute copies so you can help your neighbor (freedom 2).
* The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Now the thing that you may notice here is that this definition does not in any way suppose that the software needs to be free of charge. The FSF definition is completely compatible with charging money, though it removes some of the ways that companies might enforce the payment of money. The point is that FSF concern here is not economic, it is about the freedom of the individual software user to use the software in any way they wish. By this definition any software that comes with an End-User License Agreement (EULA) is not free. EULA’s exist expressly to place limitations on what you can do with your software.
I think this distinction is important in several ways. First of all, the people who write software do have to eat, they do have to pay their bills, and so on. We should never kid ourselves about this, and we do have a responsibility to support the people who write the software we depend on. Back when I first got into computers, I made it a point to pay for shareware if I ended up using it. In the FOSS world, software is offered free of charge, but many software authors do have a PayPal button for donations. Last year I hit that button for PortableApps, and got an e-mail in reply from the author which made me think that it is rare for people to make a donation. That is just wrong. If you use the software (and PortableApps is software you should be using if you want to run anything from a USB thumb drive), you should support it. Just recently I signed up to “Adopt a line of code” in Miro, the open-source video app. I use this app daily, so I have a responsibility to support it. Now there are always going to be some people who just cannot spare the money, and I don’t think anyone should stop feeding their children to pay for software, but many of us can hit the PayPal button for $5 or $10 without having our homes repossessed, and we should do so any time it is software that we will be using regularly.
With Linux distros, the situation is a little different. Most of them do not expect to get your money nor do they ask for it. I can download Ubuntu, OpenSUSE, Fedora, Debian, Mint, etc. and never see a PayPal button. That does not mean I have no responsibility to support the distro, it only means that the way I support the distro is a little different. When you are talking about a Linux distro, you should mentally replace the word “free” with the words “Community supported.” And when we use the word community, we mean you. If you are using the software, you are part of the community. There is a saying in the United States that “Freedom is never free,” and it applies in a slightly different way to Free Software. If we do not participate in the production of free software, that quantity and quality of that software will diminish over time, until we are at the mercy of EULAs for everything we do.
Most of us cannot participate by writing code (though there are never enough coders, so if you can code, by all means offer your services), so I am addressing this primarily to person is just using FOSS but has never gone beyond downloading some software and using it. Every project I know of, from major Linux distros to small utility applications, needs lots of different contributions that call upon a wide range of skills. These can include marketing, public relations and publicity, graphic design, writing documentation, managing forums, and so on. The list can get quite large really. Maybe you can help in one of these areas, and if so, they would be glad to have you. But you may think “Gosh, I don’t have any of those skills. I don’t think there is any way I can contribute.” And you would be wrong.
The one thing every FOSS user can do, and should do, is to submit bug reports. Anyone who uses software will eventually have it go pear-shaped on them, and when that happens you can file a bug report. Maybe you have a software configuration that is unusual, or combination of hardware that no one looked at before, or maybe you just did something that no one else ever thought to do. Whatever the cause, you just discovered a bug. You might even be the first to discover it, or maybe you will be added to other users and help the developers find the common factor that leads to patching the bug. The key point here is that bugs never get patched unless they are reported, and the more reports the developers get, the easier it is for them to find the solution and fix the bug.
I feel strongly about this, so my New Year’s resolution is to devote some of my time and space here to writing how-tos and promoting bug reporting. I may have more information about Ubuntu, since that is the ecosystem I live in, but I will try to get some material on other distros as well. And if anyone reading this has information about bug reporting in other distros (on in Ubuntu, I may have missed something), please send it along to me at email@example.com.