The history of Linux
by Dr. Oliver Diedrich
When Linus Torvalds released Linux 0.01 on the internet 20 years ago, his idea of a free Unix clone to which anyone could contribute touched a creativenerve in people. Today, it would be impossible to imagine an IT world without Linux.
It has been twenty years since Linus Torvalds programmed the first few lines of what would become the Linux kernel. An IT student at the time, Torvalds wasn't yet thinking of an operating system, he just wanted to explore the capabilities of his PC's 386 processor. Eventually, his memory management, process switching and I/O experiments developed into something that resembled a rudimentary operating system kernel.
As he was using Andrew Tanenbaum's educational, Unix-like Minix operating system at home and knew Unix from his university course, it was clear to Torvalds that his own operating system should be Unix-like. He therefore asked about the POSIX standard, which defines the Unix system interfaces, in the Minix newsgroup in July 1991. On 25 August 1991, Torvalds added another posting in which he first mentioned that he was working on an operating system for 386 processors ("just a hobby, won't be big and professional like GNU") and asked the Minix community to suggest any features that they would like to see.
Finally, on 17 September 1991, Torvalds made his "Linux 0.01" available to download on an ftp server (Torvalds wanted to call it "FreaX", but the ftp admin thought that "Linux" was a better name). The capabilities of Linux 0.01 were extremely limited: the kernel only ran on 386 processors, only supported the Finnish keyboard layout and only booted from floppy disk. In terms of applications, things were even more dire: programs were limited to the bash Unix shell and the GNU C compiler, which meant that the system wasn't really useful for anything.
However, Linux did touch a creative nerve: a number of Unix fans who found the capabilities of Minix too limited and Unix workstations too expensive took to the new operating system, sending Torvalds their suggestions, building drivers and porting the first programs. They based their work on the GNU project, which had been founded by Richard Stallman in 1984 and had programmed a multitude of classical Unix tools in such a way that they could be used on a variety of Unix systems. Only a kernel was missing to create a complete operating system, and that kernel was now being provided by Linus Torvalds – GNU/Linux was born, and is still used in the same form today (on the command line).
In November 1991, Torvalds accidentally deleted the Minix partitions on his PC and was now presented with the options of either reinstalling Minix or developing a usable Linux system. He chose Linux. In January 1992, he first released Linux version 0.12 under the GPL; a decision he has upheld to the present day, in spite of various disagreements with GPL author and FSF founder Richard Stallman.
At that time, the Linux geeks were meeting in the Minix newsgroup, but the increasing number of Linux discussions on the Minix forum got on IT professor and Minix creator Andrew Tanenbaum's nerves. His famous "LINUX is obsolete" posting in January 1991 sparked a heated exchange with Torvalds; eventually, the growing Linux community moved to a newsgroup of their own.
In 1992, the X Window System that is still in use today was added as a graphical user interface to Linux kernel version 0.95, which was now able to swap RAM data to and from disk thanks to its virtual memory management. The kernel hackers started working on the network stack. They developed the first SCSI and audio drivers, the Ext2 filesystem and the ELF format for binaries, ported the BSD print system, and implemented kernel modules that could be loaded at runtime and a /proc pseudo filesystem. As the usability of Linux increased, the first Linux distributions, SLS and Yggdrasil, were released in 1992; Slackware and Debian, started in the spring and summer of 1993, are still in existence today.
Following a long series of 0.99.x versions, Linux 1.0 was released in March 1994, introducing a development mode that would be used for a decade: at the same time as carefully developing the stable user kernel with an even version number (1.0), the developers began implementing new features in a developer kernel (1.1) that was started from the user kernel's codebase and would eventually become a new major version release.