Happy Birthday, Linus

Today is the birthday of Linus. Although that's essentially a private event for him, there's an interesting historical link to the creation of the Linux kernel, too.

As is well known, before he started writing Linux, Linus coded on a Sinclair QL, a brilliant if rather bizarre system that was based on a cut-down version of the Motorola 68000 chip used in the Amiga, Atari ST, Apple Lisa and Macintosh. Linus was prepared to put up with the limitations of that chip because it offered multi-tasking – and hence the possibility of some advanced programming.

It was for similarly rigorous reasons that he avoided buying a PC for some time: he disliked the underlying architecture of Intel's chips. But when the 80386 came out, Linus finally succumbed, and at the end of 1990, decided to buy a PC. The only problem was finding the funds to pay for it.

One source was a grant from the Finnish government. This was actually a student loan meant for general living costs during his time at university, rather than specifically for buying computers, but Linus not unreasonably felt that a PC was an indispensable item for a student studying computing science, and hence a permitted expense. He finally paid off that debt in November 1992.

To this student loan, Linus added what he termed “Christmas money”. As anyone who has a birthday very near Christmas will tell you, such “Christmas money” almost invariably includes money for the birthday bundled in too, so it's likely that some funds for the PC arrived in the form of birthday presents. Significantly, Linus wasted no time in buying the new computer after Christmas – and hence his birthday. As he told me in 1996: “ I remember the first non-holiday day of the New Year I went to buy a PC.” The specification is rather sobering:

386, DX33, 4 Megs of RAM, no co-processor, 40 Megs hard disc

Having acquired the hardware, Linus then had to wait for the software he wanted – Tanenbaum's Minix operating system. This was one reason why he had finally opted for the PC: Tanenbaum's Unix-like system had been ported to the 80386, and ran quite quickly on it, as Linus discovered during his university studies, which whetted his appetite for this educational tool.

Minix may have been fast on the PC but it was painfully slow in arriving. In his first published interview, in Linux News, Linus recalled what exactly he got up to in the meantime:

As it turned out, Minix wasn't available in Finland (at least I wasn't able to find it easily), so while I got my machine on January 5th 1991 (easy date to remember due to the monthly payments :-), I was forced to run DOS on it for a couple of months while waiting for the Minix disks. So Jan-Feb was spent about 70-30 playing "Prince of Persia" and getting aquainted with the machine.

When Minix finally arrived, I had solved "PoP", and knew a smattering of 386 machine code (enough to be able to get the machine into protected mode and sit there looping). So I installed Minix (leaving some room for "PoP" on a DOS partition), and started hacking.

Getting Minix wasn't altogether a pleasant experience: the keyboard bindings were wrong, and it didn't exactly act like the suns I was used to (ugghh. I *hate* the bourne shell for interactive work). The keyboard was easy to correct (although I didn't like the Minix keyboard driver code), and applying Bruce Evans' 386-patches made the system a bit more "real".

So somewhere around March-91, I had a 386 system running Minix-386, and I was able to install awb's gcc-1.37.1 port. After that, I was able to port bash to the resulting mess, and things looked a bit better. I also spent my time generally fooling around (porting gcc-1.40 and various other programs), and kept on learning about the 386 while doing so (writing small boot-disks that would set up a protected mode environment and print out various inane messages).

In that interview, Linus modestly described the genesis of Linux thus:

"Linux" didn't really exist until about August-91 - before that what I had was essentially just a very basic protected mode system that had evolved from a glorified "Hello world" program into a even more glorified terminal emulator. Linux stopped for quite a while at the terminal emulator stage: I played around with Minix, and used my protected mode program to read news from the univerity machine. No down/upload, but it did a fair vt100 emulation, and did it by using two tasks which communicated from keybodard->modem and modem->screen.

By mid-summer -91, "Linux" was able to read the disk (joyful moment), and eventually had a small and stupid disk driver and a simple buffer cache. So I started out trying to make a filesystem, and used the Minix fs for simple practical reasons: that way I already had a file layout I could test things on. After some more programming (talk about glossing things over), I had a very simple UNIX that had some of the basic functionalities of the real thing: I could run small test-programs under it.

By that time I looked around for some standards texts - I decided early on that I didn't want to write the user-level programs, and that in order to easily port things I'd either have to make the new system compatible with Minix (ugghh) or follow some other kind of standard. What I wanted was a POSIX guide, not so much to be 100% posix, but in order not to do anything really stupid I'd regret later.

My quest for the posix standards failed, as the posix standard committee sells the standard to feed itself as I found out, but I did get a good pointer to the (then very alpha and unsupported) GNU libc.a, which had an early manual accompanying it. The manual was of some help, but the biggest help was actually the contact to the person who pointed it out to me: arl@sauna.hut.fi. He was/is the organizer of the pub/OS subdirectory at nic.funet.fi, and was interested in giving Linux a home at nic.

Back then, I was only idly thinking about making my system available (and I had no real time-table), but arl happily created a pub/OS/Linux subdirectory at nic, and thus also gave the system it's name. I wasn't really ready for a release yet, so the directory contained just a README for about a month ("this directory is for the freely distributable Minix clone" or something like that). Arl probably thought the project wouldn't come to anything.

I think we can safely say that “arl” - Ari Lemmke, a member of the Helsinki University staff – was a little mistaken on that point. It's truly extraordinary to contemplate that Linus's “glorified "Hello world" program” is now running nearly 90% of the world's top supercomputers. And at the other end of the scale, it is making huge in-roads into the smartphone market, which means that one day there may be billions of people with the Linux kernel in their pocket.

Indeed, it is difficult to imagine what the world would be like today had Linus not bought that PC in 1991 with his Christmas and birthday money. There could hardly be a better time than today to thank him for Linux, his amazing gift to us, and to wish him many happy returns.

Follow me @glynmoody on Twitter or identi.ca.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Josh C - any chance that you

Anonymous's picture

Josh C - any chance that you are thinking about Hans Reiser?

Happy Birthday Linus

Jonathan McDowell's picture

Happy birthday to Linus! Thanks for making it possible for scientists to work as productively at home as at the office, thus destroying any last chance at a social life :-)

Happy Birthday

Tom Wickline's picture

Happy Birthday Linus!

Happy Birthday

Adrian Otto's picture

Happy Birthday Linus! What a long way you have come. I'm sure you'll see just as much success looking into the future. Cheers!

Happy birthday, Thanks for

Carl Andersen's picture

Happy birthday, Thanks for linux

Happy birthday

Mereghost's picture

Happy birthday, dude. Thanks for linux! :D

happy birthday then

Renas's picture

Happy Birthday Linus!

Happy Birthday and Thank you

Anonymous's picture

Happy Birthday and Thank you Linus

Have a great birthday Linus,

geo's picture

Have a great birthday Linus, and thank you for Linux, I truly wish you all the best

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix