Linux and OpenSource

I have been using Linux for almost 20 years. This page used to have some of my thoughts about different Linux distributions, etc., but reviewing the page after more then 5 years since the last edit, I discovered that much of that was totally irrelevant and outdated information, so I have stripped it out. Same goes for all the sub pages regarding configuration of Linux systems; utterly useles, and now vanished.

The only things remaining is a brief introduction written in a way that is less prone to becoming outdated.

What is Linux?

Linux is the kernel for a computer operating system, originally written by Linus Torvalds while he attended the University of Helsinki. Linus released the source code for his kernel under the terms of the GNU General Public License in 1991, and since then thousands of developers from all over the world has contributed, turning Linux into a huge achievement in OpenSource (and in the public, probably the most well known).

Although the term Linux mainly refers to the Linux kernel, it is now commonly used to describe entire Unix-like operating systems, consisting of the Linux kernel and an overwhelming amount of system utilities and libraries, a lot of which are developed by GNU, mainly for the GNU/Hurd operating system. Richard Stallman, founder of the Free Software Foundation, argues that these systems should be called GNU/Linux-systems.

If you want to run Linux, you will not get far by only downloading a kernel. What you need is a Linux distribution.

What is a Linux distribution?

A Linux distribution (also known as a distro) is an entire Linux-system, comprising the needed kernel, libraries, utilities and applications.

My experience with Linux has taken me through a couple of different distributions. I started out using RedHat Linux 4.2. Then I switched to Gentoo and later Debian on servers and Ubuntu for desktop systems.

What is Free Software, copyleft and OpenSource

The term "free software" was coined by Richard Stallman who also founded the Free Software Foundation. It is important to note that in this sense the term "free" is related to freedom, not price. Or in a phrase that has become quite used: "Think free as in free speech, not as in free beer". The terms under which a piece of software must be released to be free software can be found in The Free Software Definition. Basically Free Software means the availability of the source code to anyone, allowing the study of how the program works, allowing free distribution of the software, and allowing you to improve the software and release your improvements.

A lot of free software is released under the terms of the GNU GPL, which is a copyleft-license. The copyleft (apart from being a word-play on the term copyright) means that in addition to the rights mentioned above, there is a restriction that the software once under a copyleft license cannot be "closed". In other words, if you make improvements to a copyleft piece of software, you are not only allowed to release the source code, you are actually forced to do so. This is a way of ensuring that developed software which is based on free software will return to the free software community for the benefit of anyone who may need these features or wish to improve it further. So basically copyleft is a subset of free software, and the GNU GPL is a copyleft license. The free software foundation has a nice list of licenses with a description of each, and whether it is free software, copyleft or compatible with the GNU GPL.

The Open Source Initiative (OSI) is a non-profit organization that promote Open Source as defined in the Open Source Definition. This is quite similar to free software, but has been created to give commercial software vendors a better opportunity to release their software. As Eric Raymond puts it in his The Revenge of the Hackers (also in his excellent book The Cathedral & the Bazaar):

"In conventional marketing terms, our job was to rebrand the product, and build its reputation into one the corporate world would hasten to buy."

So why is OpenSource better?

In essence, the ability to find software that does most of what you want and being able to tailor it to your needs is the main philosophy behind Open Source software. While some people say that they rely on proprietary software products because it makes them feel that there are someone they can hold accountable for problems that may arise, the reality is that this is a false sense of security. As Eric Raymond points out:

"One thing many people think the traditional mode buys you is somebody to hold legally liable and potentially recover compensation from if the project goes wrong. But this is an illusion; most software licenses are written to disclaim even warranty of merchantability, let alone performance - and cases of successful recovery for software nonperformance are vanishingly rare. Even if they were common, feeling comforted by having somebody to sue would be missing the point. You didn't want to be in a lawsuit; you wanted working software."

Open Source software is all about options: Say you need a particular function in some software package. If you use proprietary software, you are at the mercy of the software vendor to add the feature that you need, which in turn means you have to persuade the software vendor into thinking that the work put into implementing and supporting the feature will be beneficial to the software vendor (not to you). On the other hand, if you are basing your solution on Open Source, you have the choice of adding the feature you need in-house, or paying a third party to implement the feature. In either case you have control over the developed software, and you can choose to port this to other platforms etc. if the need should arise. You are therefore better protected against the software no longer being supported, or even worse, no longer being able to function properly because of changes in other software packages or libraries.

Also, once you have made an enhancement to an Open Source software product, it makes a lot of sense to release this back to the community (of course if the original software product is under a copyleft license, you are forced to do so). You have already paid to have this feature developed, so there is no cost in sharing this with the community. Actually you will most likely save yourself a lot of work by doing so, since others will use your code and build even greater enhancements, and you do not have to worry about re-merging your additional features into the software each time a new version is released.

A lot of the points presented here are based on Eric Raymonds The Cathedral & the Bazaar, and I share many other points from this essay (but I am too lazy to copy all of his work). I highly recommend reading this essay (and the other writings Eric has done), either online or in his book by the same name.

Last updated: 2017.07.14