Mikke pulls out an album containing the family’s few photographs. There’s Linus at the age of two or three, naked on the beach. There’s Linus, at the same age, shooting a moon outside a famous castle near Helsinki. There’s Linus as an early adolescent, looking thin and awkward. There’s Mikke at a sixtieth birthday party for her statistics-professor father. She points out her older sister and brother. “She’s a New York psychiatrist. He’s a nuclear physicist. And me, I’m the black sheep. Right? But I had the first grandchild,” she declares, then lights a Gauloises.
We eat lunch at a restaurant named for Wilt Chamberlain. Sara consults her mobile phone while Mikke orders multiple espressos. Mikke recalls the way she and Nicke argued over whether Linus should or should not be forced to give up his pacifier: they wrote notes to each other and left them on the counter. There is talk about Linus’s poor memory and his inability to remember faces. “If you’re watching a movie with him and the hero changes his shirt from red to yellow, Linus will ask, ‘Who is this guy?’” says Sara. There is talk about a family biking/camping vacation to Sweden. Sleeping on the overnight ferry. Having Sara’s bicycle stolen the first day. Spending the budget on a new bicycle. Erecting the tent on a cliff. Leaving Linus inside to read all day while mother and daughter swam and fished. And then, after a powerful windstorm blew in, realizing that the only thing preventing the tent from being whisked into the Baltic Sea was Linus, who had been sleeping inside, oblivious to the extreme change in weather.
Mikke laughs as she relives the years in which Linus hid in his room, slaving away on a computer. “Nicke kept saying to me, ‘Kick him out, make him get a job,’ but Linus wasn’t bothering me. He didn’t require much. And whatever it was he was doing with his computer, that was his business, his thing, and he had a right to do it. I had no idea what it was all about.”
Now she is as current as anyone on her son’s activities. Mikke and the other family members are on the receiving end of a continual barrage of media queries. Those requests are forwarded to Linus, who typically responds by telling his mother, father, or sister to use their own judgment when answering. But after they write a response, they generally forward it to Linus for his approval before sending it on to the reporter.
Months earlier, when I emailed Mikke requesting her recollections of Linus’s childhood, her response was lengthy and well-crafted. She titled her essay, “On Raising Linus from a Very Small Nerd.” In it, she recounted her early observations that her toddler son showed the same signs of scientific determination she saw in her father and older brother: “When you see a person whose eyes glaze over when a problem presents itself or continues to bug him or her, who then does not hear you talking, who fails to answer any simple question, who becomes totally engrossed in the activity at hand, who is ready to forego food and sleep in the process of working out a solution, and who does not give up. Ever. He—or she, of course—may be interrupted, and in the course of daily life often is, but blithely carries on later, single-mindedly. Then you know.” She wrote about the sibling rivalry between Linus and Sara, and about the irreconcilable differences. (Sara: “I don’t LIKE the taste of mushrooms/liver/whatever.” Linus: “YES YOU DO!”) And the grudging respect. “Linus once expressed his awe of his sister very succinctly at an early age. He might have been five or seven or whatever, when he very seriously told me: ‘You see. I don’t think any new thoughts. I think thoughts that other people have thought, and I rearrange them. But Sara, she thinks thoughts that never were before.’”
These reminiscences may reveal that I still don’t think Linus has any ‘special’ talent and certainly not for computers—if it weren’t that, it would be something else. In another day and age he would focus on some different challenge, and I think he will. (What I mean is, I hope he won’t be stuck in Linux maintenance forever). For he is, I think, motivated not by ‘computers,’ and certainly not by fame or riches, but by honest curiosity and a wish to conquer difficulties as they arise, and to do it the right way because that’s the way it IS and he won’t give up.
I suppose I have already answered the question of what Linus was like as a son—easy to raise, yes. All he needed was a challenge and he did the rest. When he did start concentrating on computers as a youngster, it was even easier. As Sara and I used to say, just give Linus a spare closet with a good computer in it and feed him some dry pasta and he will be perfectly happy.
Except… and this is where my heart was in my throat when he was growing up: How on Earth was he going to meet any nice girls that way? I could only once more resort to the tried and true parenting measure of keeping my fingers crossed. And lo and behold: It worked! He met Tove while teaching at the university, and when she made him forget both his cat and his computer for several days, it was immediately obvious that Nature had triumphed, as is her wont.
I only hope the Ghouls of Fame won’t distract him too much. (Fame seems not to have changed him, but he has mellowed, and now tends to talk to people when they approach him. He even seems to have difficulty saying no. But I suspect it has more to do with his having become a husband and father than with all the media hullabaloo).
And it’s obvious that both mother and daughter stay abreast of that hullabaloo. It is late January 2000, the day following Transmeta’s big public announcement of what it has been up to, and early in our lunch, Mikke asks Sara, “Was there anything in the paper today about you-know-who and you-know-what?”
That night, on her way to work, Mikke asks her taxi to wait outside my hotel while she drops off a pine child’s chair she’d like me to hand-deliver to Patricia. That, and a floor plan of the available apartment for Linus.
About my first memory of Linus doing something remarkable.
I think it was early 1992. I was visiting Linus at his completely messy home once again-by bike and with no agenda. While watching MTV, as usual, I asked about Linus’s operating-system development. Normally he answered something meaningless. This time, he led me to his computer (from Torvalds’ messy kitchen to his totally chaotic room).
Linus gave the computer his username and password and got to a command prompt. He showed some basic functionality of the command interpreter-nothing special, though. After a while, he turned to me with a Linus grin on his face and asked: “It looks like DOS, doesn’t it?”
I was impressed and nodded. I wasn’t stunned, because it looked like DOS too much-with nothing new, really. I should have known Linus never grins that way without a good reason. Linus turned back to his computer and pressed some function key combination-another login screen appeared. A new login and a new command prompt. Linus showed me four. individual command prompts and explained that later they could be accessed by four separate users.
That was the moment I knew Linus had created something wonderful. I have no problem with that-I still dominate the snooker table.
– Jouko “Avuton” Vierumaki
For me, it meant mainly that the phone lines were constantly busy and nobody could call us… At some point, postcards began arriving from different corners of the globe. I suppose that’s when I realized people in the real world were actually using what he had created.
– Sara Torvalds
V: The Beauty of Programming
I don’t know how to really explain my fascination with programming, but I’ll try. To somebody who does it, it’s the most interesting thing in the world. It’s a game much more involved than chess, a game where you can make up your own rules and where the end result is whatever you can make of it.
And yet, to the outside, it looks like the most boring thing on Earth.
Part of the initial excitement in programming is easy to explain: just the fact that when you tell the computer to do something, it will do it. Unerringly. Forever. Without a complaint.
And that’s interesting in itself.
But blind obedience on its own, while initially fascinating, obviously does not make for a very likable companion. In fact, that part gets pretty boring fairly qu
ickly. What makes programming so engaging is that, while you can make the computer do what you want, you have to figure out how.
I’m personally convinced that computer science has a lot in common with physics. Both are about how the world works at a rather fundamental level. The difference, of course, is that while in physics you’re supposed to figure out how the world is made up, in computer science you create the world. Within the confines of the computer, you’re the creator. You get to ultimately control everything that happens. If you’re good enough, you can be God. On a small scale.
And I’ve probably offended roughly half the population on Earth by saying so.
But it’s true. You get to create your own world, and the only thing that limits what you can do are the capabilities of the machine—and, more and more often these days, your own abilities.
Think of a treehouse. You can build a treehouse that is functional and has a trapdoor and is stable. But everybody knows the difference between a treehouse that is simply solidly built and one that is beautiful, that takes creative advantage of the tree. It’s a matter of combining art and engineering. This is one of the reasons programming can be so captivating and rewarding. The functionality often is second to being interesting, being pretty, or being shocking.
It is an exercise in creativity.
The thing that drew me into programming in the first place was the process of just figuring out how the computer worked. One of the biggest joys was learning that computers are like mathematics: You get to make up your own world with its own rules. In physics, you’re constrained by existing rules. But in math, as in programming, anything goes as long as it’s self-consistent. Mathematics doesn’t have to be constrained by any external logic, but it must be logical in and of itself. As any mathematician knows, you literally can have a set of mathematical equations in which three plus three equals two. You can do anything you want to do, in fact, but as you add complexity, you have to be careful not to create something that is inconsistent within the world you’ve created. For that world to be beautiful, it can’t contain any flaws. That’s how programming works.
One of the reasons people have become so enamored with computers is that they enable you to experience the new worlds you can create, and to learn what’s possible. In mathematics you can engage in mental gymnastics about what might be. For example, when most people think of geometry, they think of Euclidean geometry. But the computer has helped people visualize different geometries, ones that are not at all Euclidean. With computers, you can take these made-up worlds and actually see what they look like. Remember the Mandelbrot set—the fractal images based on Benoit Mandelbrot’s equations? These were visual representations of a purely mathematical world that could never have been visualized before computers. Mandelbrot just made up these arbitrary rules about this world that doesn’t exist, and that has no relevance to reality, but it turned out they created fascinating patterns. With computers and programming you can build new worlds and sometimes the patterns are truly beautiful.
Most of the time you’re not doing that. You’re simply writing a program to do a certain task. In that case, you’re not creating a new world but you are solving a problem within the world of the computer. The problem gets solved by thinking about it. And only a certain kind of person is able to sit and stare at a screen and just think things through. Only a dweeby, geeky person like me.
The operating system is the basis for everything else that will happen in the machine. And creating one is the ultimate challenge. When you create an operating system, you’re creating the world in which all the programs running the computer live—basically, you’re making up the rules of what’s acceptable and can be done and what can’t be done. Every program does that, but the operating system is the most basic. It’s like creating the constitution of the land that you’re creating, and all the other programs running on the computer are just common laws.
Sometimes the laws don’t make sense. But sense is what you strive for. You want to be able to look at the solution and realize that you came to the right answer in the right way.
Remember the person in school who always got the right answer? That person did it much more quickly than everybody else, and did it because he or she didn’t try to. That person didn’t learn how the problem was supposed to be done but, instead, just thought about the problem the right way. And once you heard the answer, it made perfect sense.
The same is true in computers. You can do something the brute force way, the stupid, grind-the-problem-down-until-it’s-not-a-problem-anymore way, or you can find the right approach and suddenly the problem just goes away. You look at the problem another way, and you have this epiphany: It was only a problem because you were looking at it the wrong way.
Probably the greatest example of this is not from computing but from mathematics. The story goes that the great German mathematician Carl Friedrich Gauss was in school and his teacher was bored, so to keep the students preoccupied he instructed them to add up all the numbers between 1 and 100. The teacher expected the young people to take all day doing that. But the budding mathematician came back five minutes later with the correct answer: 5,050. The solution is not to actually add up all the numbers, because that would be frustrating and stupid. What he discovered was that by adding 1 and 100 you get 101. Then by adding 2 and 99 you get 101. Then 3 and 98 is 101. So 50 and 51 is 101. In a matter of seconds he noticed that it’s 50 pairs of 101, so the answer is 5,050.
Maybe the story is apocryphal, but the point is clear: A great mathematician doesn’t solve a problem the long and boring way because he sees what the real pattern is behind the question, and applies that pattern to find the answer in a much better way. The same is definitely true in computer science, too. Sure, you can just write a program that calculates the sum. On today’s computers that would be a snap. But a great programmer would know what the answer is simply by being clever. He would know to write a beautiful program that attacks the problem in a new way that, in the end, is the right way.
It’s still hard to explain what can be so fascinating about beating your head against the wall for three days, not knowing how to solve something the better way, the beautiful way. But once you find that way, it’s the greatest feeling in the world.
VI
My terminal emulator grew legs. I was using it regularly to log onto the university computer and read email or participate in the discussions of the Minix newsgroup. The trouble is, I wanted to download things and upload things. That meant I needed to be able to save things to disk. In order to do that, my terminal emulator would require a disk driver. It also needed to get a file system driver, so that it would be able to look at the organization of the disk and save the stuff I was downloading as files.
That was the point where I almost gave up, thinking it would be too much work and not worth it. But there wasn’t much else to do. I was going to classes that spring, and they weren’t especially challenging. My sole outside activity was the weekly meeting (party) of Spektrum each Wednesday night. Social non-animal that I was, that became my only occasion to do anything other than program or study. Without those meetings (parties), I would have been a total recluse that spring, instead of a near-total recluse. Spektrum provided a built-in framework for a social life of some sort, and I don’t think I over missed one of their events. They were important to me—so important, in fact, that I sometimes lost sleep anticipating those meetings, hoping not to feel self-conscious about my lack of social graces or my nose or my obvious absence of a girlfriend. This is standard geek stuff.
What I’m trying to say is that I didn’t have a heck of a lot of other interesting things going on. And the disk driver/file system driver project would be interesting. So I said, I’ll do this. I wrote a disk driver. And because I wanted to save files to my Minix file system—and because the Minix file system was well-documented anyway—I made my file system compatible with the Minix file system. That way, I could read files I created under Minix and write th
em to the same disk so that Minix would be able to read the files I created from my terminal emulation thing.
This took a lot of work—a program-sleep-program-sleep-program-eat (pretzels)-program-sleep-program-shower (briefly)-program schedule. By the time I did this it was clear the project was on its way to becoming an operating system. So I shifted my thinking of it as a terminal emulator to thinking of it as an operating system. I think the transition occurred in the hypnosis of one of those marathon programming sessions. Day or night? I can’t recall. One moment I’m in my threadbare robe hacking away on a terminal emulator with extra functions. The next moment I realize it’s accumulating so many functions that it has metamorphosed into a new operating system in the works.
I called it my “gnu-emacs of terminal emulation programs.” Gnu-emacs started out as an editor, but the people who created it built in a host of functions. They intended it to be an editor that can be programmed, but then the programmability part took over and it became the editor from hell. It contains everything but the kitchen sink, which is why sometimes the icon for the editor is actually a kitchen sink. It’s known for being a huge piece of programming effort that has more functions than any editor needs. The same thing was happening with my terminal emulator. It was growing to be much more.
From: [email protected] (Linus Benedict Torvalds)
To: Newsgroup: comp.os.minix
Subject: Gcc-1.40 and a posix question
Message-ID: <1991Jul3,[email protected]>
Date: 3 Jul 91 10:00:50 GMT
Hello Netlanders,
Due to a project I’m working on (in minix), I’m interested in the posix standard definition. Could somebody please point me to a (preferably) machine-readable format of the latest posix rules? Ftp-sites would be nice.
Just for Fun : The Story of an Accidental Revolutionary Page 8