An Operating system is a set of software programs that keep your computer running. It manages the hardware resources, and lets you perform your tasks using your computer (or some other device such as your smartphone or router). An operating system provides an interface for a user to interact with his/her computer. Some examples of Operating systems are MAC OS X, Unix, GNU/Linux, MS-DOS, Microsoft Windows, Android (used in many mobile phones) etc. Generally people confuse Linux to be an OS. But let me tell you, Linux is NOT an Operating System. This article discusses common ideas about Linux, GNU, Open Source Softwares and free software methodology.
The Free Software Foundation
The Free Software Foundation, founded by Richard Stallman is the motivation for all the open source and free softwares. Let's have a look at how all this started.
Around 1980, Richard Stallman was working at MIT Artificial Intelligence lab, when he started the GNU Project. Once he was working on some printer that had an issue. To resolve the issue with the printer, he needed the source code of the driver. But the source code of the driver was not included in the package. When he tried to obtain the source code, he was told that the source code was not made publically available. This was the motivation for his project. He decided to create Free Software Foundation (FSF) and GNU, the free operating system.
The Free Software Foundation advocated the free software. The term "free" in free software has nothing to do with price of software, but it is the liberty, the freedom to use the software. According to gnu.org,
“free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”.
A program is free software if the program's users have the four essential freedoms:
• The freedom to run the program, for any purpose (freedom 0).
• The freedom to study how the program works, and change it so it does your computing as 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.
The GNU Operating System
Richard Stallman was against the proprietary softwares. So he refused to use Unix, and decided to create a free operating system. He developed an operating system that was compatible with Unix, but was not Unix. He named it GNU, GNU is Not Unix (a recursive acronym). It had no Unix code. In order to maintain the freedom of the software, he created a license, the General Public License (GPL) and released GNU under this license. This is a copyleft license (because it opposes the copyright licenses).
GNU / Linux
The development of GNU was started around 1984, but it was not complete until the start of next decade. Almost whole OS was ready, but it lacked the kernel. The kernel for GNU was named HURD. But its development was taking too long. In the meanwhile, in 1991, a Finnish student, Linus Torvalds started working on a personal project on the development of a kernel. He announced his system in a Usenet group comp.os.minix in August 1991:
From: [email protected] (Linus Benedict Torvalds)
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
Linus ([email protected])
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
Later, this OS Kernel became popular as Linux. Linus Torvalds released his kernel under GPL, along with GNU OS. So, the GNU OS and Linux kernel together became GNU/Linux. But, many people call this Operating System as just "Linux", which actually is GNU/Linux.
These days, many Linux distributions such as Ubuntu, Red Hat Enterprise Linux, Fedora, gNewSense etc. are becoming popular. All these distributions contain the Linux kernel.
Open Source Softwares
Open Source software is a development methodology. The open source softwares have their source codes available to public along with the software itself. In the development of open source softwares, the community contributes. There is difference between free software and open source software. As gnu.org puts,
In 1998, some of the people in the free software community began using the term “open source software” instead of “free software” to describe what they do. The term “open source” quickly became associated with a different approach, a different philosophy, different values, and even a different criterion for which licenses are acceptable. The Free Software movement and the Open Source movement are today separate movements with different views and goals, although we can and do work together on some practical projects.
The fundamental difference between the two movements is in their values, their ways of looking at the world. For the Open Source movement, the issue of whether software should be open source is a practical question, not an ethical one. As one person put it, “Open source is a development methodology; free software is a social movement.” For the Open Source movement, non-free software is a suboptimal solution. For the Free Software movement, non-free software is a social problem and free software is the solution.
Linux communities are a group of developers and users. Developer communities will support / maintain distributions. The present Developer communities include 1000 of volunteers from different companies who contribute to linux (mainly kernel). All contributors are required to sign off on their code, stating that the code can be distributed with the kernel under the GPL. Linux operating system is written in C , C++ , Java, Perl and Lisp. 95% of kernel program is written in C language. Linus Torvalds is not really into kernel coding these days but he still have big role in managing linux and its publicity. Greg Kroah-Hartman is current stable kernel maintainer and work for Linux.com.