In 1988, a young Finnish man entered the Helsinki University to study Computer Science. His name was Linus Torvalds. It would have been impossible to imagine that the operating system he would create would be eventually used by tens of millions of users across the globe. This is how Linux begun.
The first contact with Unix and Minix
Linus was at the beginning of his third year of studies, in the autumn of 1990, when he first came in contact with Unix. The university had a short Unix course, which could only take 16 students because the university's MicroVAX hardware couldn't support more users.
From the very beginning, Linus loved Unix. Until then, he had been programming on a Commodore Vic-20 and then a Sinclair QL. Unix's programming interface quickly won him over, and he found the whole operating system very simple to use.
Interested in learning more about operating systems, Linus worked on Andrew Tanenbaum's book Operating Systems: Design and Implementation, which was one of the University's coursebooks.
Apart from detailed information about how to write an operating system, this particular coursebook came with the source code for Minix.
Minix, from "mini-Unix", is an operating system created by Tanenbaum himself, for educational purposes. It was originally written for Intel 8088 and later ported to the Intel 80386.
The PC where Linux was developed
Linus was particularly fond of the 80386, regarding it as "a lot better than any of the previous chips". Wanting to work with Minix, he decided to buy his first IBM compatible PC.
The Finnish university system allowed Linus to get a student loan. Since he was living with his mother at the time, Linus didn't have a high cost of living, so he invested part of his student loan for the PC. He also got Christmas money, and on January 5th, 1991, he bought the first PC.
It was a good built, at the time. It had the Intel 386, 4 Megabytes of RAM, and a 40MB hard drive. It didn't have a co-processor, and six months later Linus had to buy a floating-point unit, to make sure his operating system would work on PCs with a floating-point unit.
The first experiments with 80386
Even though Linus had the book, it took several months before he received the floppy disks with Minix. Waiting for that, Linus would play Prince of Persia and other video games on MS-DOS, and also explore the 80386's architecture.
As he had never programmed for an Intel processor before, Linus wrote simple code for the first couple of months. One of his first experiments was to test the task-switching capabilities of the processor. He created two processes, one that would write the letter A and one that would write the letter B, and a timer that switched tasks.
This very simple system later became the seed that grew into the Linux kernel.
Instead of printing A and B on the screen, Linus changed the one process to be reading from the keyboard and sending the data to the modem. The second process would read from the modem, and send the data to the screen.
Linus had already written a keyboard driver and a driver for text-mode VGA. He just needed a driver for the serial line, to connect to the University network. We wrote this driver, and now he could visit the newsgroups.
The building blocks of an Operating System
Linus's initial interest was reading news on the newsgroups, and asking technical questions.
Wanting to download files on his PC, Linus he had to write a disk driver and a file system, to read the Minix file system and be able to write and read files.
So, he now had task-switching, a file system, and device drivers. This is an operating system in its simplest form. This was the birth of Linux. But it wasn't yet named so.
Linux instead of Freax
One subject that interested Linus on the newsgroups was the POSIX. POSIX stands for Portable Operating System Interface, and it is a set of standards to ensure compatibility between different Unix-like operating systems.
Ari Lemmke, a member of the Helsinki University staff, informed Linus that the POSIX wasn't free online, and Linus wasn't in the position to pay for it. However, Lemmke was also interested in kernels and operating systems. So, he decided to create a directory on the ftp.funet.fi server for Linus. The directory was /pub/os/linux.
Linux was Linus's working name. He didn't want to use it for the operating system because he didn't want people to think he was so egomaniac to name it after himself.
Unfortunately, the name he chose was awful. He wanted to call it Freax, for "Free Unix". Fortunately, Ari Lemmke ignored the "Freax" nonsense and used the working name instead.
Linux goes public
In the beginning, Linus wasn't interested in taking Linux public. When he created the first version, he only sent personal emails to a few people that had shown interest from the newsgroups.
This first version was also a bit hurried. Having the disk space on the FTP for a month at that time, Linus felt that he had to upload something because he had this site.
The second version of the Linux kernel was much closer to what Linus wanted, and Ari Lemmke convinced him towards a public announcement.
Linus announced the second Linux kernel on the comp.os.minix newsgroup on Usenet, on August 25th, 1991, with a now famous post:
Linus doesn't know how many got that first public version, but he estimates that there shouldn't have been more than 10-20 people.
As it turned out, there were enough people to start the process that has made Linux big, professional, and with tens of millions of users worldwide.
Read Linus Torvald's actual words
Journalist and author Glyn Moody interviewed Linus Torvalds in 1996, way before Linux blew up. You can read how Linus describes the birth of Linux in his words, on this Ars Technica UK post, commemorating the 24th anniversary since the first public announcement on Linux.
Moody has also written the book Rebel Code: Linux and the Open Source Revolution, published in 2001.