Archive for March, 2007

Evolution of GNU/Linux system, Must read for newbies

Saturday, March 3rd, 2007

I would like to introduce you to a chronology of events that happened in the early 80’s and 90’s.

For Richard Stallman things started to look bad with the collapse of the free community at the Artificial Intelligence lab at MIT in the early 80’s, with modern era operating systems, none of them free software, were coming with a nondisclosure agreement which said, you are not allowed to share or change the software and if you want to get something changed, ask us to do it for you.

This sounded anti-social to the software-sharing community that had existed for many years at the MIT, who enjoyed and agreed sharing their programs with universities and companies. And to see or to change the source code of an unfamiliar program to create a new one was quite common.

After losing his community, Stallman always had the choice of joining the proprietary software world, writing code under nondisclosure agreements, which he believed divided the software society and a means for not helping a fellow hacker (“Someone who loves to program and enjoys being clever about it”) or quitting the computer field, which was rather an unpleasant thing to do as it would have wasted his skills as an operating system developer. Other way round was to build the community back by writing free programs again.

GNU Project

Now the idea was pretty clear, what was needed first is an operating system. With a free operating system, a community of cooperating hackers would be able to use a computer without starting to deprive his or her friend. He chose to make the system compatible with UNIX so that it would be portable, and UNIX users could easily switch to it. The name GNU was chosen for the project following a hacker tradition, as a recursive acronym for “GNU’s Not Unix”.

The GNU project started with an objective to create a “free software” society, here the term “free” is often misunderstood and it has nothing to do with price. It is about freedom. It is defined as:

  • You have the freedom to run the program, for any purpose.
  • You have the freedom to modify the program to suit your needs. (To make this freedom effective in practice, you must have access to the source code, since making changes in a program without having the source code is exceedingly difficult.)
  • You have the freedom to redistribute copies, either gratis or for a fee.
  • You have the freedom to distribute modified versions of the program, so that the community can benefit from your improvements.

After quitting his job at MIT in 1984 Stallman began writing the GNU software. First he began by writing a compiler from scratch, which is now popularly known as GCC and the GNU Emacs editor for writing and editing his programs.

Free Software Foundation

As users of Emacs were growing, more people were getting involved in the GNU project, and this forced Stallman to look for some funding. So in 1985 the Free Software Foundation (FSF) was created, a tax-exempt charity for free software development. Since then Free Software Foundation employees have written and maintained a number of GNU software packages, two notable ones are the C library and the shell.

Gradually more and more programs were added to the GNU system and most of them gained popularity as they could run on the Unix systems, and users began extending them and porting them to the various incompatible versions of Unix, and sometimes to other systems as well.

By 1990 the GNU system was almost complete, with a major missing link, the kernel, which actually does the job of managing the system resources. The decision was to implement the kernel as a collection of server processes running on top of Mach, a microkernel developed at Carnegie Mellon University and then at the University of Utah. This kernel named the GNU HURD (or “herd of gnus”) could run on top of Mach, and do the various jobs of the UNIX kernel.

GNU/Linux System

In 1991, a student from Finland named Linus Torvalds developed a Unix-compatible kernel and called it Linux. And around1992, combining Linux with the not-quite-complete GNU system resulted in a complete free operating system, the GNU/Linux system. It is due to Linux that a version of the GNU system could be run today.

GPL (GNU General Public License)

All the software under the GNU project were distributed under the GPL, which says that you can copy and distribute exact copies of the program’s source code as you have received it. You can make changes or modify the program and again redistribute under the first mentioned condition, with clear notices of your changes and date of that change.

Linux Distributions

Many Linux distributions based on the GNU/Linux system are currently available both as free copies and commercial distributions. Most of these distributors add up their own features, targeting specific areas like Enterprise, Desktop, Multimedia etc., to the existing GNU system, to cater diverse user sections. Some noted ones are RedHat, Fedora (an open project by RedHat), Debian, Suse from Novell, Mandriva, Ubuntu, Sabayon, PCLinuxOS, SimplyMEPIS, Knoppix, Gentoo etc. All these distributions intend to target different set of users. So you, now have the options of choosing the distribution based on your intended use, like suse, ubuntu, PCLinuxOS for user friendliness, debian, fedora for development, RedHat for Enterprise and so on. Least to say programming would be delightful on all of them.

Where do I get Linux?

Most of the Linux distributions are freely available for download from the Internet;

Fedora from

Suse from

Debian from

There are also other links from where you can pull down these distributions. And if you do not want to waste time downloading, buy them from people like, etc., but I am sure you would definitely find one, among your colleagues