Search This Blog

Wednesday, November 5, 2014

Introduction to Open Source Software and GNU/Linux


Introduction to Open Source Software and GNU/Linux.

I have introduced the concept of software and the concept of license. We also discussed how proprietary software poses challenges where we can’t see the Source Code of the software or distribute it freely.

In this post I am going to introduce to you the concepts of Open Source, Free software GNU and Linux. We will talk about how we have a solution to the challenges posed by Proprietary software and their license in Free and Open Source Software.

I have already introduced the history of the computers and software in my previous post. I am going to base this post on that and continue the discussion like I promised.

Open Source Software by definition:- Open-source software (OSS) is computer software with its source code made available with a license in which the copyright holder provides the rights to study, change and distribute the software to anyone and for any purpose. Open-source software is very often developed in a public, collaborative manner.

Open Source Software is exact opposite of the Proprietary software. You can view the source code, and make changes to it. You are free to make any changes and then re-distribute those.

There are various Open Source Licenses under which different projects release their software. For example, GPL, V2, V3. LGPL. Apache MIT BSD etc.. All these licenses allow you to see and modify the source code of the software. However the conditions of each of license are different.You get to do different things with the source code. Some require to contribute the changes back to the project and some do not. You can ask Wikipedia about all these licenses.

Let us star by Introducing Linux to you.

Linux by definition : is a Unix-like and mostly POSIX-compliant computer operating system assembled under the model of free and open-source software development and distribution. The defining component of Linux is the Linux kernel an operating system kernel first released on 5 October 1991 by Linus Torvalds.

What was there before Linux? Since Linux is a Unix-like Operating System. It is oblivious that Unix Was before Linux.

What was there before Unix? Before Unix around 55 years ago, Computers were huge in size and every single computer had a completely different and unique operating system. Computers were huge and expensive. Operating systems were written in Assembly Language which was very complex like i said in earlier post.

When did things start changing? It was in the year 1969 when Bell Labs Laboratory started development of something amazing, something that was going to change the Word for ever. They called this UNIX. You could take UNIX and it would run on different computers without the need of writing everything from scratch.It was first written in ALP like other software at that time. It had a simple design and robust architecture. UNIX continued to be in the confines of Bell Labs for a few more years. It was after Dennis Ritchie invented C language as a Systems Programming Language for UNIX, That UNIX was completely re-written in C which allowed for greater portability. It was in 1972 and the first public release was in the year 1973. Unix continued to be widely adopted despite being quite expensive and proprietary in nature.

When was Linux born?
Since UNIX was proprietary and was not easy to get hands on because it was very expensive, people began attempting making UNIX-LIKE operating systems,One such operating system was MINIX written in C by Andrew S. Tanenbaum.

It was at the University of Helsinki, where a Computer Science student Linus Torvalds was not happy about the licensing of MINIX as educational only. He was also curious about Operating Systems at that time. Being a Computer Science student and a programmer he decided that would build his own Operating System like UNIX. This would later become the Linux kernel.

Torvalds began the development of the Linux kernel on MINIX and applications written for MINIX were also used on Linux. Later, Linux matured and further Linux kernel development took place on Linux systems.

What was the first response like?

Linus got an overwhelmingly positive response to the kernel. So the development processed kicked off which continues till date. Linus and his team (Thousands of developers world wide) release a new version in every 45-60 days. Surprising us all with amazing new features.

Linux is just the kernel so what is the whole system?

Yes, It is true that Linux is just the kernel which the user can't directly talk to. User can directly interact with the Applications which in turn can talk to the kernel depending on the type of application.

When Linus released the kernel in 1991, at that time someone already had made everything else but a kernel available for building the Free Operating System. The project which had already conceived the need of a complete and free UNIX like OS was the GNU Project.

The GNU Project, started in 1983 by Richard Stallman, had the goal of creating a "complete Unix-compatible software system" composed entirely of free software. Work began in 1984.[22] Later, in 1985, Stallman started the Free Software Foundation and wrote the GNU General Public License (GNU GPL) in 1989. By the early 1990s, many of the programs required in an operating system (such as libraries, compilers, text editors, a Unix shell, and a windowing system) were completed, although low-level elements such as device drivers, daemons, and the kernel were stalled and incomplete.

Linus gave the kernel for free and the combination of GNU tools and Linux kernel became GNU/LINUX

Linus Torvalds has said that if the GNU kernel had been available at the time (1991), he would not have decided to write his own

So Linux was a complete operating system from a purely technical perspective. Because Kernel is the most important part. Kernel takes care of all the magic, Resource allocation, Memory management processes threads scheduling etc.

GNU complemented the kernel and vice versa, so it becomes easy to use and interact with for the end user. The complete system is what we all use today and call it Linux. It is actually GNU/Linux.

The Linux Systems we use today, Like Debian, OpenSuse, Ubuntu ,Arch, etc what are they? Are they also GNU Linux?

Yes the Linux systems we use today are also GNU/LINUX. The term GNU Linux is the general family name of all Linux Systems today (Except Android)

Since Linux and GNU are free to use free to distribute, they distributed and used in the form of what we call a Distribution of GNI/Linux. Debian, OpenSuse, Ubuntu, RedHat, Arch etc.. are all distributions of GNU/Linux

Since there is so much freedom with GNI/Linux, we have a huge number of GNU/Linux distributions today. You can visit www.distrowatch.com to see the list.

By the way Linux Kernel is licensed under GPL V2.