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: firstname.lastname@example.org. 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.
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
|Non-Linux FOSS: Seashore||May 10, 2013|
|Trying to Tame the Tablet||May 08, 2013|
|Dart: a New Web Programming Experience||May 07, 2013|
- RSS Feeds
- New Products
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Home, My Backup Data Center
- New Products
- Validate an E-Mail Address with PHP, the Right Way
- Developer Poll
- Trying to Tame the Tablet
- Deceptive Advertising and
23 min 48 sec ago
- Let\'s declare that you have
24 min 45 sec ago
- Alterations in Contest Due
25 min 51 sec ago
- At a numbers mindset, your
27 min 2 sec ago
- Do not get Just Almost any
30 min 31 sec ago
- A fantastic rule-of-thumb to
31 min 54 sec ago
- Keren mastah..
1 hour 29 min ago
- mini tablet compare
2 hours 48 min ago
- Looking Good
6 hours 21 min ago
- Hey God - You may not be
10 hours 35 min ago
Enter to Win an Adafruit Prototyping Pi Plate Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Prototyping Pi Plate Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- Next winner announced on 5-21-13!
Free Webinar: Linux Backup and Recovery
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.