Arduino Projects   |   Raspberry Pi   |   Electronic Circuits   |   AVR   |   PIC   |   8051   |   Electronic Projects

Introduction to LINUX

Twenty years ago, on August 25, 1991, a computer science student Linus Torvalds made a quaint announcement on the network that he’d been doing an operating system as a hobby for the 386(486) AT clones and now that he had good success in it, he would like to invite suggestions on what it should have and what not. Little did he know back then that he had just put the final piece of the big jigsaw puzzle called ‘Free Software Movement’ into its right place, Linux. This year, The Linux Foundation celebrated the 20th Anniversary Gala during August 17-19 at the Commodore Ballroom in Vancouver.

Graphic Image Symbolizing 20 Years of Linux
Fig. 1: Graphic Image Symbolizing 20 Years of Linux
By 1991, the world was witnessing an era of unprecedented hardware growth with more powerful computers being developed. The scenario was however poor on the software development front. By virtue of a highly successful marketing strategy, DOS reigned supreme and was the mainstay of almost every computer in all corners of the world. Macs were better, but had astronomical pricing. The other side of the rope was being tugged by UNIX developers. UNIX, whose source code was once taught to university students was now guarded and priced expensively.
With great zeal to teach his students the real working of operating systems, Professor Andrew S Tanenbaum developed MINIX OS from scratch, designed to run on 8086 microprocessors. MINIX was far from being superb, but its 12000 lines source code written in C and assembly language was available in his book on Operating Systems for anyone to read and understand. One of the students captivated by his work was Linus Benedict Torvalds. A 21 year old, second year CS student and a self-learned hacker, Linus loved to tinker with computers and push them to their limits.


Meanwhile, Stallman, by his programming prowess had ignited the free software movement at a time when every bright mind was selling their code under the market stalwarts as proprietary. He had developed many useful applications by then, including the GNU C Compiler and the GNU General Purpose License. Kernel ‘Hurd’ was also available but failed to garner support. BSD was released much before in 1977, but because it contained UNIX code, it got engulfed in a lawsuit which hindered its further growth. Thus when Linux v 0.01 was released in September 1991, it evoked a lot of enthusiasm. It was downloaded, tested, improved and returned to him such that by October, version 0.02 was ready. When Tanenbaum in his message to Linus discouraged him for the use of a monolithic kernel and termed Linux as obsolete, it only added more metal to Linus’ resolve.
Hordes of programmers developed it and finally Linux was licensed under the GPL. Vendors poured in, aggregated various softwares around the Kernel and distributed it, a few prominent vendors being Red Hat and Caldera. Parallely, computer programmers voluntarily developed their own distributions (distros) like Debian. The official mascot, Tux, the little penguin was announced by Linus in 1996 and the name was suggested by James Hughes as a derivative of Torvald’s UniX (TUX). With the development of GUI interfaces like KDE and GNOME, Linux became more popular. With increased popularity, Linux soon took off on varied platforms like handheld computers and clustered computing entities which, unlike supercomputers were rather cheap. Whatever popular platform is released, Linux is tweaked to support it within very few weeks, a feat that is hardly matched by other Operating Systems. Linux’s entry into the new millennia was marked by the release of a Linux 2.4.0 kernel. Newer releases like the SELinux, Fedora, Gentoo Linux, CentOS, RHEL etc. were released. The first smartphone based on Android was released in January 2010, which is based on Linux kernel. On its 20th birthday this year, Linux kernel 3.0 was released.


Diagram Explaining Linux Architecture
Fig. 2: Diagram Explaining Linux Architecture
Linux is basically a kernel around which applications are added and form an operating system. Like every other OS, Linux helps applications and operator to interact with the devices on the computer and perform the desired functions. While other operating systems like Windows and Mac OS cost a lot of money and full of proprietary documents, Linux is open source which means that the user is free to modify the code and also redistribute it under the GPL.  As an operating system, it is the piece of code that is loaded into the memory of computer on boot up and then manages the resources available, providing for the needs of users and applications. Typical components include:
Task Scheduler: Allocates resources and CPU to different tasks giving the user the feel of multitasking. The tasks may be user requests or tasks of the OS itself.
Memory Manager: System RAM and virtual memory from Hard Disk are controlled by this part of the OS.
Disk Manager: Deals with the creation and maintenance of directories and files on the disk.
Network Manager: Acts as a traffic controller, managing data flow between the systemand the network.
I/O Services Manager: Manages the input output devices like the monitor, keyboard, printers etc.
Security Manager: To maintain the security of information in the computer and managing access to them.

Architecture Contd.

Linux is made with a modular approach like that of UNIX, uses a monolithic kernel which takes care of functions like process control, networking, file and peripheral access. Device support drivers can be integrated into the kernel itself, or may be added as modules which load after the operating system has booted. Operation of the Linux OS may be through a Command Line Interface (CLI) over the terminal emulator or a Graphical User Interface (GUI) provided by modules like KDE, GNOME and Xfce. It supports a plethora of programming languages backed by the GNU like the GCC which provides compilers for Ada, C, C++, Java etc. Support for dynamic lanuguages like Perl, PHP and Python can also be added.
Block Diagram Showing Detailed View of Linux Architecture
Fig. 3: Block Diagram Showing Detailed View of Linux Architecture
There are more than 300 flavors of Linux available and one can choose between any of them depending on the kind of applications that they might need to use on it. But most of these distros adhere to standards like POSIX, SUS, ISO and ANSI ensuring interoperatibility with other operating systems and computing standards, thus allowing co-existence with other OS. Ubuntu is one of the most popular Linux distributions for desktop users.


But this is not all about Linux. Linux has been more of a phenomenon than just being an operating system. It represents an ecosystem of more than $40 billion. Owing to the fact that Linux is developed collaboratively and there is no sole company responsible for its support and development, anyone and everyone can share the burden which has helped develop a large and efficient ecosystem. More than 3200 developers hailing from a diverse background of more than 200 different companies have been contributing for the evolution of the kernel itself. In fact, an analysis between December 2008 and January 2010 revealed that 75% of the Linux kernel code was developed by programmers from corporations and only about 18% was developed by Open source community. Corporations with share in this contribution include Dell, IBM, HP, Oracle, Novell etc. with companies like Red Hat and Novell having large business revolving around Linux distros. These companies generally earn through the commercial support offered with the free distribution of Linux.

Why Linux

But then, a question generally arises that why should one choose Linux over the popular and the familiar Windows system. The foremost reason could be the cost. While the hardware costs for both Windows and Linux systems are fairly the same, the software cost in Linux is virtually nil since it is open source. Most of the viruses of the present seldom involve attacking the Master Boot Record of the victim, but generally tend to compromise the system through open ports and then hog on to the networks, launching Denial of Service attacks. Windows does not generally keep all the ports closed and hence leaves room for vulnerability which is patched only after the vulnerability is traced. Linux on the other hand, is designed in such a way that ports are opened only when need arises and hence leave little scope for viruses.
Apart from this, Linux offers a dozen more reasons for anyone to choose it over any other OS. It is customizable to extents Windows is not and that too at a very small space cost while the memory requirements of Windows bloat up with every new release. Side by side, Linux also provides support for Command Line which is not the case with Windows. On one hand, a windows machine is like a Swiss Army Knife where a user can perform functions that he has paid for and nothing else, whereas in the case of a Linux machine which is more like a foundry, everything is limited to the ability of the user to innovate and tweak, mould and forge.  A Linux system may be cloned limitlessly without having to pay for additional licensing fees. Linux comes with advanced features like Apache webserver, router/firewall capabilities etc. which would otherwise cost a lot on a windows platform in the form of separate packages.
However, the advantages of a modular kernel of Linux can sometimes be perceived as disadvantages too, referred to as the ‘Oops’ issue. The kernel is designed such that in case a part of the kernel fails, the process with user space above that part only is killed rather than the entire machine. In a way it is good, but the process killed might be linked to processes beyond that part of the kernel which may result in the system hanging.


Image Showcasing Future Prospects of Linux
Fig. 4: Image Showcasing Future Prospects of Linux
But this does not seem to hinder the growth of popularity of Linux which is now transcending platform domains. 91% of the world’s supercomputers have been running on Linux. Production lines in manufacturing units like the steel giant Thyssen Krupp Electrical Steel use Linux achieving measurements on microseconds scales. London Stock exchange’s high volume trading is taken care of by Linux. Banks, both big and small like the UMB Financial Corp., America Retail businesses like Café Coffee Day chain etc. use Linux. Space research in NASA utilizes real time variants of Linux for astronomical observations from Hale Telescope’s Adaptive Optics system, and so does German Air Traffic control for radar data processing. Server market is one of the biggest platforms Linux has been catering to owing to its attractive and reliable features. Android has been more of a sensation in the Smartphone OS segment and continue to take a large chunk of market share away from other operating systems like Symbian and Windows. Linux is so widespread that everytime anyone hooks on to the internet, he/she is using Linux in some form or the other in the form of email, database or any form of server. Google, Yahoo and een Microsoft Bing use Linux for content delivery owing to the scalability of Linux.
But still there are frontiers to be captured by Linux. Though it is a strong shareholder in data centers, Linux does not fare very well in the desktop market segment. Vendors have started rolling out Linux preinstalled on their systems, but the proportion is still low in terms of quantity as compared to proprietary OS. It has found favor with government agencies and a few private firms too as a desktop solution. With the debut of Ubuntu Linux, desktop market for Linux has shown some progress but the target of having 200 million users by 2015 set by the Ubuntu founder Mark Shuttleworth might at present be highly unlikely when market trends estimate Linux desktop share of a meager 1%.
The road ahead is tough as the vendors of Linux move in for increased profits with their usage of Linux and eventually increasing instances of patent infringement suits. But one thing that is not going to change is that Linux is open source and would be available for anyone who needs one. So let’s wish Tux a prosperous (belated) birthday, and a prospective decade ahead.


Very Good Arctical......