The terminal emulator grew beyond its original purpose and by August 1991 Torvalds was able to announce to the comp.os.minix newsgroup on Usenet that he was “doing a (free) operating system (just a hobby, won’t be big and professional like GNU) for 386(486) AT clones.” The first iteration of the Linux kernel was written explicitly to explore the workings of the 80386 chip on Torvalds’s computer using GCC, the GNU C Compiler, and would “probably never support anything other than AT-hard disks, as that’s all I have.”
The kernel was machine-specific and monolithic, and quickly attracted followers and critics. GNU and Linux fulfilled a need among a growing band of enthusiasts and hobbyists, academics and coders, who had grown up in the age of the Sinclair QL and BBC Microcomputer and saw a computer as something you could open up and play with, break down and program – and, when push comes to shove, improve.
Others saw it differently. As early as January 1992 Tanenbaum declared Linux to be ‘obsolete’ on the grounds that Linux was tied to the quirks of the Intel chip and represented “a giant step back into the 1970s” – monolithic kernels were a thing of the past and would be replaced by microkernels, such as the GNU Hurd, which would give much greater performance, security, freedom and flexibility.
As events were to prove, the microkernel imposed problems on the Hurd developers that were hard to surmount, and a monolithic kernel made it easier to fulfil the first imperative of all free software developers, which was a working free operating system.
The Hurd slipped by the wayside, and in a few short years Linux, the kernel that wasn’t portable, was available on more devices across a wider range of hardware than any other operating system that has ever existed.
What might have been
However, all this might never have happened if the Hurd, or a version of BSD for Intel chips, had been in place by the middle of 1991. Work on the GNU operating system – “a complete UNIX-compatible software system called GNU (for ‘GNU’s Not UNIX’)” – had been started back in the early Eighties, and it had been seven or eight years in the making by the time that Linux came along.
“If the GNU kernel had been ready last spring,” Linus Torvalds wrote in January 1992, “I’d not have bothered to even start my project: the fact is that it wasn’t and still isn’t.”
Richard Stallman had founded the GNU project in September 1983, but before a kernel could come into being, the bits and pieces that made the kernel possible had to be written – the editors and compilers, Bash, Make, Autoconf, Emacs, GCC and all the others. The story of their evolution, and Stallman’s experience of the obstacles he encountered, especially during the development of GNU Emacs, led to a hardening of the philosophical concepts behind free software and their encapsulation in the GPL, which didn’t come into being until 1989. By then the tools were falling into place. The kernel was to be the last part of the jigsaw.