old-www/LDP/LG/issue32/rubini.html

371 lines
19 KiB
HTML

<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>An Interview with Linus Torvalds LG #32</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">An Interview with Linus Torvalds</font></H1>
<H4>By <a href="mailto:rubini@pop.systemy.it">Alessandro Rubini</a></H4>
</center>
<P> <HR> <P>
<P>
<B>Alessandro</B>: Can you please dedicate some of your time to us?
<blockquote> <font color="navy">
<B>Linus</B>: Sure, no problem, I'll try my best.
</font></blockquote>
<B>Alessandro</B>: Are you happy with living in the States? I preferred having
a Finnish leader rather than another american ruler.. how do
you feel in this respect? Do you plan to come back?
<blockquote> <font color="navy">
<B>Linus</B>: I've been very happy with the move: I really enjoyed being at the
University of Helsinki, but I decided that trying out something different
was worthwhile, and so far the experience has been entirely positive.
</font></blockquote>
<blockquote> <font color="navy">
I agree that Finland is a lot more "neutral" in many ways, and that had
its advantages in Linux development: I don't think anybody really dislikes
Finland, while a lot of people are nervous about or even actively dislike
the US. So in some sense that could have been a downside, but I felt that
most people trusted me more as a person than as a Finn, so I didn't feel
it to be a major issue.
</font></blockquote>
<blockquote> <font color="navy">
Moving to the US has meant a lot better weather (even though this has been
one of the rainiest winters in a _long_ time here in the Bay Area), and
has also been very interesting. While I really liked my work at the
University, the new stuff I'm doing is more exciting - more on the edge,
so to say.
</font></blockquote>
<B>Alessandro</B>: We all know about the USA restrictions on cryptography; do
they affect Linux features in the field?
<blockquote> <font color="navy">
<B>Linus</B>: It doesn't seem to be a real issue. The idiocy of the US cryptography
export rules were a problem even before I moved here: mainly because
if/when we add strong cryptography to the kernel we would have to make it
modular anyway in order to let the CD-ROM manufacturers (many of whom are
based in the US) take it out in order to sell overseas. So me moving here
didn't really change that fact - it only made it apparent that I can't be
the person working on cryptography (something that was fairly obvious
anyway, as I'm not really an expert in the area).
</font></blockquote>
<blockquote> <font color="navy">
Anyway, regardless of the above I sincerely hope that the US cryptography
rules will be changed in the near future. The US rules have made a lot of
things more difficult than they should have been. (In all fairness the US
isn't the only country with problems: the French have even more of a
problem in this area and are trying to get other European countries to do
the same thing. Happily the French are a fringe group of loonies in this
matter, while the US has been a real problem due to being so central when
it comes to information technology).
</font></blockquote>
<B>Alessandro</B>: Did you ever think about leaving your role as Linux coordinator
or is it fun like it was in the beginning? If you would
leave, what would your next project be?
<blockquote> <font color="navy">
<B>Linus</B>: I've never seriously considered leaving - the only times the issue has
come up is really when somebody has asked me what the succession would be
in the case I no longer felt interested. Linux has always been so much fun
to coordinate that while it obviously takes a lot of my time I have always
felt that it was more than worth it.
</font></blockquote>
<B>Alessandro</B>: Out of curiosity, how long do you write code daily, and what
is your current main activity?
<blockquote> <font color="navy">
<B>Linus</B>: I usually don't spend all that much time coding on Linux any more:
occasionally I have bursts of things I do when I code full-day for a few
weeks or so, but those are fairly rare, and mainly happen when there is
some fundamental shift in the kernel that I want to get done. During the
last year it's happened four or five times, mainly with regards to SMP or
the so-called "dentry" filesystem cache.
</font></blockquote>
<blockquote> <font color="navy">
Most of the time I spend reading and reacting to emails - coordinating the
others working on things, commenting on ideas, and putting together
patches. This is by far the most work: I'd say that my coding is only
about 10%, while the coordination is 90% of the work.
</font></blockquote>
<B>Alessandro</B>: How did you manage to write a free kernel and still earn your
living?
<blockquote> <font color="navy">
<B>Linus</B>: Initially, I was a university student at the University of Helsinki. What
that means in Finland is that you get support by the goverment for a
number of years in order to be able to finish your degree, and there is
also a possibility to get special student loans. I suspect Italy has
something similar, although probably not as comprehensive as the Finnish
system.
</font></blockquote>
<blockquote> <font color="navy">
And after a year or two I was actually employed by the university as first
a teaching assistant and then later a research assistant, and the
university also actively encouraged me to be able to write Linux at the
same time.
</font></blockquote>
<blockquote> <font color="navy">
Right now, I obviously work at a commercial company, but even here I get
to do a lot of Linux work even during work hours because even though
Transmeta doesn't sell Linux or anything like that, there is a lot of
_use_ of Linux inside the company, so me continuing to work on it is
obviously supportive of the company.
</font></blockquote>
<blockquote> <font color="navy">
So I've always been able to do Linux together with doing my "real" work,
whether that was studying or working for a university or working for a
commercial entity. There has never been much of a clash, even though
obviously my working hours aren't exactly nine to five..
</font></blockquote>
<B>Alessandro</B>: Why didn't you turn to commercial support like Cygnus did? (I think I
know why :-)
<blockquote> <font color="navy">
<B>Linus</B>: I just never felt the interest to turn any part of Linux commercial: it
would have detracted a lot more from my time to maintain a company or
something like that, and it was never what I was interested in.
</font></blockquote>
<blockquote> <font color="navy">
It would also have implicated Linux money-wise: I wouldn't have been free
to do what I wanted technically because I would be bound by constraints
brought about by having to feed myself and my family. In contrast, working
at the University or here at Transmeta, I make a living without having to
involve doing Linux-decisions into it - so I'm free to do whatever I want
with Linux without having to worry whether it will pay my next months
rent..
</font></blockquote>
<blockquote> <font color="navy">
I feel a lot happier not having those kinds of pressures on Linux, and I
think most other developers feel the same way (they don't have to worry
about my technical judgement being corrupted by any financial issues).
</font></blockquote>
<B>Alessandro</B>: Do you think you changed the world or just fired the straw? (Again,
I know you)
<blockquote> <font color="navy">
<B>Linus</B>: I started it, and I feel very proud of that. I don't hink I "changed the
world", but I feel privileged in being instrumental in changing a lot of
lives - it's a good feeling to know that what you do really matters to a
lot of people.
</font></blockquote>
<blockquote> <font color="navy">
I wouldn't go as far as saying that it "gives my life meaning", but Linux
definitely is a _part_ of my life, if you see what I mean.
</font></blockquote>
<B>Alessandro</B>: What's your opinion of Richard Stallman's work and philosophy?
<blockquote> <font color="navy">
<B>Linus</B>: I personally don't like mixing politics with technical issues, and I don't
always agree with rms on a lot of issues. For rms, there are a lot of
almost religious issues when it comes to software, and I'm a lot more
pragmatic about a lot of things. As a result, we know we disagree about
some things, and we actively don't try to work together too closely
because we know it wouldn't work out very well.
</font></blockquote>
<blockquote> <font color="navy">
The above may make it sound like I dislike rms, and at the same time that
is not at all true. Rms has obviously been the driving force behind most
of the current "free software" or "open source" movement, and without rms
the world would be a poorer place. And he _needs_ to be religious about it
to be that driven.
</font></blockquote>
<blockquote> <font color="navy">
So I guess the best way of saying it is that I really admire rms, but I
wouldn't want to be him, because our worldviews are different.
</font></blockquote>
<B>Alessandro</B>: On the practical side, what's the schedule for 2.2? What are the
main differences between 2.0 and the upcoming 2.2?
<blockquote> <font color="navy">
<B>Linus</B>: As I looks now, 2.2 should be sometime early summer or so, but it's hard
to judge: there are a few things that really need to get fixed, and before
they are fixed there's no point in even thinking about it. Right now
there's a bad TCP performance problem that is holding things up:
everything _works_ ok, but it is serious enough that I can't imagine a 2.2
before it is fixed.
</font></blockquote>
<blockquote> <font color="navy">
The changes 2.2 will have are mainly much more mature support for the new
things in 2.0, namely SMP and multiple architectures. There are a _lot_ of
other things in there (the new dentry code, totally rewritten NFS etc),
but the SMP and architecture maturity is one of the most fundamental
things that 2.2 will have.
</font></blockquote>
<B>Alessandro</B>: Bruce Perens claims "world domination: 2003"; is that realistic?
In your opinion, will the concept of free software gain
polularity in the mass market? In this respect, what's your
opinion about the move of Netscape Corp.?
<blockquote> <font color="navy">
<B>Linus</B>: The "World Domination" thing is obviously always a bit tongue-in-cheek,
but I think that yes, a five-year timeframe for the free software movement
and Linux to make a major noticeable impact is not at all unrealistic. The
Netscape open source thing is one of the first indications of this, and I
think we'll see others doing similar things.
</font></blockquote>
<B>Alessandro</B>: How will the various free OS's coexist, in your opinion?
<blockquote> <font color="navy">
<B>Linus</B>: I think the current setup where people are aware of each other, but there
is no organized or official co-operation is probably how it will continue.
The whole point of Linux is that there is definitely room for more than
one operating system (especially if that one operating system is a bad one
made by microsoft ;), and I don't see that changing - the FreeBSD's and
other operating systems will be around. Maybe not in the same form (more
specialization etc), but I don't see any fundamental issues here..
</font></blockquote>
<B>Alessandro</B>: Or do you think that development of Wine and other tools will
lead to the cohexistence of two systems of similar technical
value, one free and the other proprietary, running the
same application programs? (Horrible question, IMHO).
<blockquote> <font color="navy">
<B>Linus</B>: No, I think the development of Wine will be an important step for the PC
operating systems arena, but that step will be in the way of leveling the
playing ground: when just about everybody can run the basic legacy Windows
applications like MS Office etc, that allows the systems to really compete
on being good at other things.
</font></blockquote>
<blockquote> <font color="navy">
So rather than having two systems of similar technical value, I think that
you'd have many systems that are all able to run the same basic
applications, but where the emphasis is on different things. Microsoft,
for example, ha salways emphasized mediocrity and high volume, while Linux
has (and will continue to) emphasized more technical issues.
</font></blockquote>
<B>Alessandro</B>: Currently we lack free office applications. Is this a matter of
time, or do you think that these programs will only be available
from commercial companies?
<blockquote> <font color="navy">
<B>Linus</B>: I think that there will always be a niche for commercial programs, and
while I think we'll see free office applications proliferate, I don't
think that we necessarily _have_ to have them.
</font></blockquote>
<blockquote> <font color="navy">
The reason I personally want a free operating system and basic
applications is that I really think that if the basics aren't stable and
you can't modify them to suit your own needs, then you are in real
trouble. But when it comes to many other areas, those issues are no longer
the most pressing concerns, and then it is not as critical that you have
free access to sources.
</font></blockquote>
<B>Alessandro</B>: Sometimes we hear of so-called ``standards'' that remain proprietary
(like I2O), is this the last rant of dying companies, or
is free software at risk?
<blockquote> <font color="navy">
<B>Linus</B>: I don't worry too much about I2O and other proprietary standards. The
whole idea of a proprietary standard has always failed - all of the
successful standards these days are fairly open. Sometimes they are
proprietary because the company that made them had enough clout to force
it to be that way on its own, but I don't think that kind of clout exists
anywhere else than at Intel and at Microsoft, and that even those two are
being eroded by competition.
</font></blockquote>
<B>Alessandro</B>: What is your position about the availability of Linux
modules in binary-only form?
<blockquote> <font color="navy">
<B>Linus</B>: I kind of accept them, but I never support them and I don't like them.
</font></blockquote>
<blockquote> <font color="navy">
The reason I accept binary-only modules at all is that in many cases you
have for example a device driver that is not written for Linux at all, but
for example works on SCO Unix or other operating systems, and the
manufacturer suddenly wakes up and notices that Linux has a larger
audience than the other groups. And as a result he wants to port that
driver to Linux.
</font></blockquote>
<blockquote> <font color="navy">
But because that driver was obviously not _derived_ from Linux (it had a
life of its own regardless of any Linux development), I didn't feel that I
had the moral right to require that it be put under the GPL, so the
binary-only module interface allows those kinds of modules to exist and
work with Linux.
</font></blockquote>
<blockquote> <font color="navy">
That doesn't mean that I would accept just any kind of binary-only module:
there are cases where something would be so obviously Linux-specific that
it simply wouldn't make sense without the Linux kernel. In those cases it
would also obviously be a derived work, and as such the above excuses
don't really apply any more and it falls under the GPL license.
</font></blockquote>
<B>Alessandro</B>: What do you think about the KDE-Qt question? Is Gnome going to
succeed?
<blockquote> <font color="navy">
<B>Linus</B>: I personally like Qt, and KDE seems to be doing fairly well. I'm taking a
wait-and-see approach on the whole thing, to see whether gnome can do as
well..
</font></blockquote>
<B>Alessandro</B>: An interesting challenge is "band reservation" in the network
subsystem; is that going to happen any soon in Linux?
<blockquote> <font color="navy">
<B>Linus</B>: I'll have to pass on this one. It's not one of the areas I'm personally
involved with or interested in, and as such it's not something I'm going
to be very involved with any efforts that way. That's how Linux works: the
people who need or want something get it done, and if it makes sense on a
larger scale it gets integrated into the system..
</font></blockquote>
<B>Alessandro</B>: Many people ask why the kernel is written in C instead of C++. What
is your point against using C++ in the kernel? What is the
language you like best, excluding C?
<blockquote> <font color="navy">
<B>Linus</B>: C++ would have allowed us to use certain compiler features that I would
have liked, and it was in fact used for a very short timeperiod just
before releasing Linux-1.0. It turned out to not be very useful, and I
don't think we'll ever end up trying that again, for a few reasons.
</font></blockquote>
<blockquote> <font color="navy">
One reason is that C++ simply is a lot more complicated, and the compiler
often does things behind the back of the programmer that aren't at all
obvious when looking at the code locally. Yes, you can avoid features like
virtual classes and avoid these things, but the point is that C++ simply
allows a lot that C doesn't allow, and that can make finding the problems
later harder.
</font></blockquote>
<blockquote> <font color="navy">
Another reason was related to the above, namely compiler speed and
stability. Because C++ is a more complex language, it also has a
propensity for a lot more compiler bugs and compiles are usually slower.
This can be considered a compiler implementation issue, but the basic
complexity of C++ certainly is something that can be objectively
considered to be harmful for kernel development.
</font></blockquote>
<B>Alessandro</B>: What do you think of the Java phenomenon? Did you ever consider
integrating a Java VM, like kaffe, in the kernel?
<blockquote> <font color="navy">
<B>Linus</B>: I've always felt that Java had a lot too much hype associated with it, and
that is still true. I _hope_ sincerely that Java will succeed, but I'm
pragmatic and I'm not going to jump on the Java bandwagon prematurely.
</font></blockquote>
<blockquote> <font color="navy">
Linux already supports seamless running of Java applications as it is, and
the fact that the kernel only acts as a wrapper for the thing rather than
trying to run the Java VM directly I consider to be only an advantage.
</font></blockquote>
<P> <HR> <P>
This article is reprinted with the permission of Infomedia, Italy. An Italian
translation of this article can be found at <A
HREF="http://www.pluto.linux.it/journal/pj9807/linus.html">
http://www.pluto.linux.it/journal/pj9807/linus.html</A>. The
interview was done by e-mail in February, 1998.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright &copy; 1998, Alessandro Rubini <BR>
Published in Issue 32 of <i>Linux Gazette</i>, September 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./henning1.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./vermeer.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->