History of Linux
by Ragib Hasan (Copyright: Ragib Hasan 2000)
Table of Contents
a. In The Beginning b. New Baby in horizon c. Confrontation and development d. Some Linux Cookies e. Ackknowledgments
a. In The Beginning
It was 1991, and ruthless agonies of cold war was gradually coming to an end. There was an air of peace and tranquility that prevailed in horizon. In field of computing, a great future seemed to be in offing, as powerful hardware pushed limits of computers beyond what anyone expected.
But still, something was missing.
And it was none other than Operating Systems, where a great void seemed to have appeared.
For one thing, DOS was still reigning supreme in its vast empire of personal computers. Bought by Bill Gates from a Seattle hacker for $50,000, bare bones operating system had sneaked into every corner of world by virtue of a clever marketing strategy. PC users had no other choice. Apple Macs were better, but with astronomical prices that nobody could afford, they remained a horizon away from eager millions.
The other dedicated camp of computing was Unix world. But Unix itself was far more expensive. In quest of big money, Unix vendors priced it high enough to ensure small pc users stayed away from it. The source code of Unix, once taught in 1universities courtesy of Bell Labs, was now cautiously and not published publicly. To add to frustration of PC users worldwide, big players in software market failed to provide an efficient solution to this problem.
A solution seemed to appear in form of MINIX. It was written from scratch by Andrew S. Tanenbaum, a dutch professor who wanted to teach his students inner workings of a real operating system. It was designed to run on Intel 8086 microprocessors that had flooded world market.
As an operating system, MINIX was not a superb one. But it had advantage that source code was available. Anyone who happened to get book 'Operating System' by Tanenbaum could get hold of 12,000 lines of code, written in C and assembly language. For first time, an aspiring programmer or hacker could read source codes of operating system, which to that time software vendors had guarded vigorously. Students of Computer Science all over world poured over book, reading through codes to understand very system that runs their computer.
And one of them was Linus Torvalds.
b. New Baby in Horizon
In 1991, Linus Benedict Torvalds was a second year student of Computer Science at University of Helsinki and a self-taught hacker. The 21 year old sandy haired soft-spoken Finn loved to tinker with power of computers and limits to which system can be pushed. But all that was lacking was an operating system that could meet demands of professionals. MINIX was good, but still it was simply an operating system for students, designed as a teaching tool rather than an industry strength one.
At that time, programmers worldwide were greatly inspired by GNU project by Richard Stallman, a software movement to provide free and quality software. The much awaited Gnu C compiler was available by then, but there was still no operating system. Even MINIX had to be licensed. Work was going GNU kernel HURD, but that was not supposed to come out within a few years.
That was too much of a delay for Linus.
In August 25, 1991 historic post was sent to MINIX news group by Linus .....
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> 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 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, andI'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@example.com) 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 :-(.
As it is apparent from posting, Linus himself didn't believe that his creation was going to be big enough to change computing forever. Linux version 0.01 was released by mid september 1991, and was put on net. Enthusiasm gathered around this new kid on block, and codes were downloaded, tested, tweaked, and returned to Linus. 0.02 came on October 5th, along with this famous declaration from Linus:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: Free minix-like kernel sources for 386-AT Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI> Date: 5 Oct 91 05:41:06 GMT Organization: University of Helsinki Do you pine for nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your ; needs? Are you finding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be just for you :-) As I mentioned a month(?) ago, I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached stage where it's even usable (though may not be depending on what you want), and I am willing to put out sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I've successfully run bash/gcc/gnu-make/gnu-sed/compress etc under it. Sources for this pet project of mine can be found at nic.funet.fi (126.96.36.199) in directory /pub/OS/Linux. The directory also contains some README-file and a couple of binaries to work under linux (bash, update and gcc, what more can you ask for :-). Full kernel source is provided, as no minix code has been used. Library sources are only partially free, so that cannot be distributed currently. The system is able to compile "as-is" and has been known to work. Heh. Sources to binaries (bash and gcc) can be found at same place in /pub/gnu. Linux version 0.03 came in a few weeks. By December came version 0.10. Still Linux was little more than in skeletal form. It had only support for AT hard disks, had no login ( booted directly to bash). version 0.11 was much better with support for multilingual keyboards, floppy disk drivers, support for VGA,EGA, Hercules etc. The version numbers went directly from 0.12 to 0.95 and 0.96 and so on. Soon code went worldwide via ftp sites at Finland and elsewhere.