Oral History of Linus Torvalds
CHM Ref: X4147.2008 © 2008 Computer History Museum Page 10 of 41
Booch: So the university sort of viewed it as a closed problem, sounds like?
Torvalds: Yeah. And people really thought it was pretty odd that Linux came
out of Helsinki University
because-- including the people at Helsinki University, it did not kind of fit in the whole-- it was not what
they were teaching, it was not what people were kind of expected to do. Helsinki University was a great
place, but it didn't have the culture of doing operating system research. But actually, I'm happy to say
Linux changed that to some degree. I know they've had cla
sses in Linux since, so…
Booch: Now this may have been before or after your army experience? Around this time, you bought
your first IBM PC compatible?
Torvalds: Yes.
Booch: What machine was that, do you remember?
Torvalds: That was a white box, just the cheapest-- there's a theme here, the cheapest 32-bit PC I could
find. So I had grown up with the 6502 and then the Sinclair QL was a Motorola 68000-based machine.
So I always looked down on, I thought the Z80 was a horrible CPU. I thought the 8086 was just a Z80 on
steroids, not worth bothering with. But then the [Intel] 80386 came out and that kind of changed the
whole landscape.
Booch: How did it change it for you?
Torvalds: Suddenly, PCs didn't have this uninteresting hardware anymore. Suddenly PCs had the most
interesting CPU in the market, as far as I was concerned. I turned out to be right. But it was really, you
could already tell by then that the [Motorola] 68000 line was kind of, it was not really advancing. It was
not getting faster. It was really just standing still. And suddenly you could get these fairly cheap
machines that performed very well and had all these interesting things. I mean, one of things people hate
about the PC is its baroque instruction set. And it really is like very ASCII, and that was what I found very
interesting. I found the fact that, okay, you can actually do task switching in hardware. Hey, that's kind of
interesting to me. That was one of things that made me want to buy this thing and play with all the
features it had that I had not had access to in my previous machines. So basically, it was Christmas
money and whatever, stipends from the school, bonuses, things like that, and I scrounged up enough
money to buy my first PC. And I was never interested in running DOS in Windows, I was always
interested in-- actually the CPU itself was the most exciting part. And then I knew from university by then
that I wanted to run Unix on it, eventually.
Booch: Just trying to remember, this is '88 something? How much would that have cost? Give me
some sense for how much you had to scrounge together.
Torvalds
: Well, I think it was…
Booch
: ‘91, actually was that date, I think.
Torvalds: Yeah, it was. I got the machine January 2, 1991 I think. Maybe it was e
arly. It was like…
Oral History of Linus Torvalds
CHM Ref: X4147.2008 © 2008 Computer History Museum Page 11 of 41
Booch: Definitely post-Christmas.
Torvalds: After Christmas break, that why I know it was very early that year. I'd like to say it was 10,000
Fin[nish] Marks, roughly. And at that point, it was about 5 Fin Marks to the dollar. So…
Booch: How much memory did this beast have?
Torvalds: It had 4MB of RAM, and it did not have a floating point accelerator at that point. I ended up
buying one later, just-- not because I cared about floating point, but because I wanted to support the thing
in Linux. I mean, it was by far the fastest machine I'd ever had. I'd like to say that it was a DX2 running at
66-MHz, but now that I'm-- no, that was a 486. So that was the next machine, so it must have been like a
33 MHz 386 or something like that.
Booch: So is this the machine where you first began working on Linux?
Torvalds: Yes, yes.
Booch
: So tell me what inspired you to say: ‘I want to write a new operating system for myself.’
Torvalds: Well, nothing inspired me to say that. That was not what I actually started out doing. I
ordered MINIX off the, actually from a bookstore, because it actually came with, well, it was kind of the
companion to Andrew Tanenbaum's book. So you [wouldn't] actually go to a computer store to get
MINIX. You would actually go to a bookstore and order it. That took awhile to just arrive, and I was
playing around with the machine until it came. But even after I had Unix on the machine, remember what
I actually wanted to do was play with the CPU itself, so what I ended up doing, I just wrote my own
programs to boot off the floppy, with no OS at all because having the OS in between me and the CPU
was against the whole point of the exercise. So I wrote this boot loader. I wrote the program to get it to
protected mode, which is where you can actually start using all these features that the CPU had. And
that took me a long time just because, hey, this is a new architecture for me. Everything for me was
completely new. But I got it working and then I had MINIX for my real work. But I wasn't actually doing
anything there except connecting to the university computers. And so I took my small boot loader and--
MINIX actually had horrible terminal emulation packages. It was sad, it was really disgusting. So that
kind of made me think, okay, I can write my own terminal emulation package. And since I'd already done
this thing that switched tasks, which was what I wanted to do, I made my small task switching thing do
the-- read from the keyboard and right to the serial line to talk to my modem, and the other tasks would
read from the serial line and write to the screen, which is the simplest way to do terminal emulation
program, and it's how you actually do it under Unix. You'd do it as two different processes. And I did just
that, I just did it the hard way, right. I basically had this toy program that was useless for anything. I
couldn’t even download anything because I didn't have an operating system. So I couldn't write to disk
because there was no file system, there was nothing. So the only thing I could do was basically read
Internet news, which was what I did for awhile. And then at some point, I just wanted to download things
and realized that I actually had to extend my small program to the point where it kind of was an operating
system.