A Study on Linux Kernel

Kernel is the central or most important part of something. Linux Kernel plays a role which is similar to that. Linux Kernel is the core or the most impotent part of an operating system. Some of the operating systems which have the Linux Kernel as the core are GNU/Linux, Ubuntu Linux, Linux Mint, Arch Linux, Deepin, Fedora, Debian and openSUSE.

Figure 00: Few Linux Distributions

The kernel is the part which loads first when the operating system starts and remains in the protected area of the main memory. Kernel is the hardware abstraction layer. It enables the application layer to connect with the hardware layer and vice versa. Kernel is in charge of memory management, process management, task management, and disk management.


Figure 01: Roll of the Kernel


History

In 1960 MIT, Bell Labs, and General Electric Developed an operating system called Multics(Multiplexed Information and Computing Service) for the GE-645 mainframe computers. Multics not only brought many new innovations but also had many problems.



Figure 01: GE-645

Bell Labs was pulled out from the project in 1969. Dennis Ritchie and Ken Thompson start leading a team at Bell Labs to create new operation and redo all the work they did during the Multics Project. In 1970 they were able to create the operating system called Unix. The name was suggested by Brian Kernighan. Unix was written in Assembly languages. Since Assembly code is CPU dependent, a code which runs on a certain cpu wasn't able to run on another cpu. To overcome this, Ken Thompson created the B language. It was given that name since it was a simplified version of the BCPL language (Basic Combined Programming Language). Later, Dennis Ritchie created the C Language, based on the B Language. Code written in C language is converted to the appropriate machine language by the gcc compiler.


 Figure 02: Ken and Dennis working together in 1969



            Figure 03: Ken and Dennis

In 1987, Andrew S. Tanenbaum created a minified version of Unix called Minix. The target of this was the students and other who were interested in learning operating systems. The code is described and explained in the Operating Systems Design and Implementation book by Tanenbaum. Within few months a community of about 40000 people was involved in discussing and improving Minix via a Usenet newsgroup, comp.os.minix. Linus was one of them. In 1991 Linus created his own Kernel called Linux which used Minix file system.

The Linux Kernel

Linus Torvalds was a student at the University of Helsinki in Finland where he used Minix. Then he started developing his own Kernel because he was curious about operating systems as well as frustrated by the licensing of MINIX which restricted the use of the OS only for the education purposes. He released the version 0.01 which is the first version of Linux Kernel by September 1991.



Figure 04: Linux Logo


Figure 05: Linus Torvalds

October 5th of 1991, Linus released the version 0.02 of the Linux Kernel. Which was still a basic version of Linux which needed Minix to operate. This version of Linux was able to attract many interesting people and it was rapidly developed by Linus and many other interesting volunteers. Stand-alone Linux was released on December 19 th of 1991 which was version 0.11. This was released under a freeware license created by him. Linux Version 0.12 was released on 5th January of 1995 under GNU General Public License. Linux Version 0.95 was released on 7th of March in 1995.  Here is the release note for the version 0.95.

After this, Linux became an interesting subject among a growing number of parties. People started to contribute and it became a more improved during the 90's. Version 2.2 was released in January of 2000 and it was a major update to the Linux Kernel. Version 2.4 was released in January of 2001 and it was another major upgrade which provided support for the  Intel Itanium architecture processors.

Open Source Development Labs (OSDL) was a non-profit organisation which was founded in 2003. Its aim was to accelerate the development of Linux for enterprise computing. And also to be the center-of-gravity for the Linux industry. Linus joined OSDL in 2003 and started working full time on Linux kernel. In 2007, OSDL merged with the Free Standards Group to create the Linux Foundation.

Linux was combined with the GNU system to create a complete free operation system.

Kernel Archive Link : https://www.kernel.org/linux.html


Figure 06: Linux Foundation Logo


Figure 07: Linux Milestones


 GNU/Linux

GNU project was started by Richard Stallman in 1983. The goal was to develope a fully free Software System compatible with UNIX.

Here is the link for a presentation done by Richard at TEDx: Free software, free society: Richard Stallman at TEDxGeneva 2014 LINK


Figure 07: Richard Stallman

GNU stands for “GNU's Not Unix”. Richard was a member of a software-sharing community when he was working at MIT Artificial Intelligence Lab in 1971. Sharing Software has been there for a long time and software sharing is a practice as  old as the computers. But this community had been doing that better. Most of the computer companies at that time also shared software freely.

But everything changed during the 80's. Almost all the software became proprietary. Helping neighbour to get things done with the computer made illegal. The rule was "If you share with your neighbour, you are a pirate. If you want any changes, beg us to make them". This made the way for GNU project.

Most significant software which runs on a computer is the operating system. We need to have a free OS first to get started using the free software. The first item on the free software movement was to create a free operating system.

They decide to make the os compatible with UNIX since its design was already proven better. Free Software Foundation was founded in 1985 to raise the funds for the GNU Project. By 1990, GNU project had all the major software needed for an operating system except the kernel. Linus made Linux kernel free in 1992 and it was combined with GNU to create the free operating system(GNU/Linux) which was a groundbreaking invention in the Technology industry. Now millions of people use GNU/Linux.
  • GNU system : https://www.gnu.org/

  • GNU Linux-libre: http://directory.fsf.org/wiki/Linux-libre

  • The Free Software Directory: http://directory.fsf.org/wiki/Main_Page

Linux Distributions



Linux Distribution is an Operating System which is consists of Linux kernel, GNU tools and libraries, software, documentation, a window system and manager, and a desktop environment. These distributions contain free software as well as proprietary software.

GNU maintains a kernel called "Linux-libre" which does not contain non-free firmware. The primary version of Kernel now contains non-free firmware. Unlike other distributions, GNU/Linux contains only free software.



  • GNU/Linux Distros: https://www.gnu.org/distros/

Next article about Linux will be a deep dive into Linux architecture.

Comments