Oral History of Linus Torvalds
CHM Ref: X4147.2008 © 2008 Computer History Museum Page 34 of 41
give me something to work on because otherwise I'll be bored and I'll be done with my project. I want
people to give me feedback. And I think that was really important because a lot of people start doing--
they have some design decision that they're attached to and they do everything according to that design
decision. And it turns out reality doesn't work that way. Reality is not black and white. And if you actually
want to be useful, you need to be able to just say, okay, that works most of the time. But we'll need to do
this ugly other case for people who don't want to work that way.
Booch: Would it be fair to say that Linux' architecture is more accidental than intentional?
Torvalds: I wouldn't say accidental. I'm a huge believer in biology and evolution, right. And I would say
organic…
Booch: Oh, organic.
Torvalds:
…in the sense that the one driving goal has never been this vision. It has more been,
okay,
what do people need and what works, what doesn't work, and being flexible in that way.
Booch: So, in the history of from the point zero aught versions to where you
are today, can you identify
major architectural transformations or was it really an organic evolutionary process?
Torvalds: Yeah, there hasn't really been any. I mean, part of that has been that obviously we started
with a very solid pace. Unix itself had a few guiding goals like the whole-- everything is a process and
everything is a stream of bytes. But at the end of the day when you look at what actually happened over
the history of Unix, yeah, everything is a process and everything is a stream of bytes except when it isn't.
So, Unix itself, over time, kind of got more of the dose of reality. And then Plan 9 tried to re-imagine the
original beauty of Unix.
Booch
: Plan 9, to get this on tape, that was to … tell us the individuals involved on that one?
Torvalds: It's all the Bell Labs people and who's the-- I mean, Ritchie was involved.
Booch: Was it Ritchie? Dennis Ritchie, yeah.
Torvalds: But I think Dennis Ritchie was actually more of a manager of the team and--
background> what's he saying? I met them. They're incredibly bright people, but I think they were the
example of people who are a bit too-- they have too much of an agenda, where being clean is very
important and sometimes more so than be practical. So, that is one thing I've, I mean, I've tried to be very
pragmatic in everything, including…
Booch: So, that's more of a guiding principle for you?
Torvalds: Yeah. The whole pragmatism. And also including when it comes to the whole license thing I
think you don't have to be so black and white when it comes to licenses. I used to use this commercial
source control management program for maintaining the kernel just because it was the best one out
there. And it worked wonderfully well for three years until things didn't work anymore.
Oral History of Linus Torvalds
CHM Ref: X4147.2008 © 2008 Computer History Museum Page 35 of 41
Booch: Which one was that? What commercial program?
Torvalds: It was a program called BitKeeper.
Booch: And now you're moving to Git.
Torvalds: And the reason I wrote Git was that there ended up being all these horrible political and
frightening-- and then license discussions and it was just-- at one point it was like, okay, I'm walking away
from this. And quite frankly, everybody in the whole source control management system world is a
complete moron. And I can do something better in two weeks and I did. And three years later somebody
else is actually maintaining what I did. But it was one of those things where part of the problem had been
that I was very flexible. I didn't think that licensing was something to be religious about. Let's do the best
thing we can do. And I chose a commercial program that was free to be used in the sense that it didn't
cost anything for open source programming. But…
Booch: In addition to pragmatic as a guiding principle, it also sounds like from what you said that a drive
towards simplicity is very important for you as well too.
Torvalds: It is, but within reason. I mean, you can certainly take simplicity as one of those guiding goals
and just taking it way too far to the point where it's so simple that it's not useful anymore so. So, the other
thing I've been good at, because I don't care is the letting-go part that I already kind of alluded to, where
it's too easy to try to be controlling. I'm really lazy. I consider it to be the-- like the primary goal in my life
is literally to sit on the beach sipping a margarita, going out for a scuba dive. I mean, that's what I want to
do. I'd be bored to death doing that, but it's kind of my mental model of what everybody should strive for.
And part of that is, hey, if you can actually make things easier for you, go for it. So, all my workflow has
been so automated I can merge easily tens of thousands of patches in a day. And in order to do that I
need to trust people and I need to be able to find people who are worthy of being trusted. But…
Booch: In addition to that release process, what's been the testing philosophy for Linux as well, too?
Torvalds: It's always been okay. If it compiles, ship it and let the users-- I mean, I say that. It's actually
true and not true at the same time. Because it's this multiphase thing where we actually have different
levels of confidence in our trees. So, individual developers have their own thing that they're working on
and they should release it openly and talk about it openly and try to get people to use that. But on the
other hand, they should not try to push it to me until it has been tested by others. So, that's kind of like
the CERUF [ph?] level of testing is even before it comes even close to me, it should get as wide a testing
as possible. But then when it comes to me, we have a separate merge window when we say, okay, this
is when we do merging of new features. And that's two weeks out of our release window that is two-and-
a-half months. So, really, just 20 percent of the whole release window is for merging new stuff and 80
percent is for testing and finding regressions. And if we find a regression that we can't easily fix, the rule
is we remove that feature immediately.
Booch: Are you driving the release schedule?