Tuesday, 20 September 2011

Linux: A bit of history

MINIX(1984), created from scratch by Andrew Tanenbaun, for educational purposes in order to reach how to design and implement  OS.

Andrew Tanenbaun

MINIX was mainly designed for educational purpose rather than professional activities. MINIX was mainly running on most successful 8086 platform. The advantage of this kernel was the source code was available to anyone from Tanenbaun's teaching books on OS.

1990, FSF(Free Software Foundations) and GNU project, motivated many programmers to promote quality and free distributed software's.Aside from software, work was being done on the kernel OS known as HURD.

1991, Finnish student Linux Torvalds presented version 0.0.1 of his kernel which he called as "Linux" designed for i386 architectures and offered GPL license to community of programmers, Internet community for testing,they liked it and stared helping with its development.

Linux Torvalds

Distinguish Linux from other OS(UNIX) :

1. Open Source: Anyone can have access to source code, change them and create new version that can be shared under GPL license.

2. Portability: Independent of any architecture but with a 'C' compiler such as GNU gcc.GNU/Linux runs almost all architectures like Intex X86, IA64, AMD x86, x86_64, Sun's SPARC, Power PC, IBM S390, ARM ....

3. Monolith type kernel: Design of the kernel is joined into a single piece but is conceptually modular in its different tasks. Problem with monolith was when they grow they become very large and untreatable for development; DDL were used to try to resolve this.

4. DLL: These make it possible to have the parts of OS, such as filesystems, devices, as external parts that are loaded(or linked) with the kernel at run-time on demand.
This would simplify the kernel as these functionalities as elements that can be separately programmed.

5. Projects succeeded with Linux kernel:
    - people of FSF, with the GNU utility software and above all with GCC C compiler joined projects like XFree, Gnome, Kde.
    - Internet development with projects like Apache web server, Mozilla navigator, MySQL, and PostgreSQL databases ended up giving Linux kernel sufficient coverage to compete with proprietary systems.

New companies that created GNU/Linux distributions(packaging of kernel + applications) and supported it such as Red Hat, Mandrake, Suse, made an unstoppable growth that we are witnessing today.

Highlights of GNU's contribution:

    - C and C++ compilers
    - bash shell
    - Emacs editor
    - Postscript interpreter
    - Standard C library (glibc)
    - Debugger (gdb)
    - Makefile (GNU make)
    - Assembler
    - Linker

In further article we see how above scientists made an approach and what would be the functionality of Monolithic and Micro-kernel