Intervista a Linus Torvalds (in inglese)
This is the English version of the interview to Linus Torvalds. The introduction is in Italian as it was published on Pluto Journal on May 1998
Questo Febbraio mi è stato chiesto da parte di Infomedia di intervistare Linus Torvalds per la loro rivista ``Computer Programming''. Alcune domande sono state formulate dalla casa editrice e alcune da me.
Naturalmente, essendo un propugnatore dell'open-source (il nuovo nome dato al free software), ho fatto presente ad Infomedia la mia esigenza di riutilizzare il materiale e renderlo disponibile su altri mezzi. D'altronde, anche il Linux Journal permette all'autore di riutilizzare come crede il materiale prodotto per (e pagato da) loro.
Da parte della casa editrice la risposta è stata subito positiva, con l'ovvia condizione che la ristampa avvenisse dopo la pubblicazione su Computer Programming.
Perciò, avuta l'autorizzazione alla ristampa, il 25 febbraio '98, alle 8.30 di sera, ho spedito il messaggio con le domande. La scelta dell'ora è stata un po' subdola: probabilmente in tarda mattinata (11.30 ora locale) Linus ha finito di evadere la posta ricevuta di notte e dedica quindi un interesse maggiore ai messaggi che gli arrivano individualmente (è noto che la quantità di posta giornaliera ricevuta da Linus è oltre ogni nostra capacità di immaginazione). In effetti, dopo una sola ora la risposta era già nella mia casella di posta.
Questa intervista verrà pubblicata in italiano nel numero di giugno di Computer Programming, e successivamente sul Pluto Journal. Siccome però alcuni degli argomenti trattati sono abbastanza attuali per gli utenti Linux, ho insistito con Infomedia per pubblicare l'intervista, almeno in inglese, prima dell'uscita della rivista. Nessun problema, permesso accordato.
Ecco quindi il testo integrale del messaggio che ho ricevuto da Linus. Naturalmente l'interazione non è molto fluida, come in tutte le interviste fatte per posta, nelle quali non esiste una effettiva interazione, e ogni domanda fa capitolo a sè.
di Alessandro Rubini
[...] Can you please dedicate some of your time to us? The interview will be published (with your consent) on the magazine and will be later reprinted in the web-zine of the major italian user group.
Sure, no problem, I'll try my best.
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?
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.
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.
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.
We all know about the USA restrictions on cryptography; do they affect Linux features in the field?
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).
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).
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?
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.
Out of curiosity, how long do you write code daily, and what is your current main activity?
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.
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.
How did you manage to write a free kernel and still earn your living?
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.
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.
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.
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...
Why didn't you turn to commercial support like Cygnus did?
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.
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...
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).
Do you think you changed the world or just fired the straw?
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.
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.
What's your opinion of Richard Stallman's work and philosophy?
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.
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.
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.
On the practical side, what's the schedule for 2.2? What are the main differences between 2.0 and the upcoming 2.2?
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.
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.
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.?
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.
How will the various free OS's coexist, in your opinion?
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...
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?
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.
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, has always emphasized mediocrity and high volume, while Linux has (and will continue to) emphasized more technical issues.
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?
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.
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.
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?
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.
What is your position about the availability of Linux modules in binary-only form?
I kind of accept them, but I never support them and I don't like them.
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.
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.
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.
What do you think about the KDE-Qt question? Is Gnome going to succeed?
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...
An interesting challenge is ``band reservation'' in the network subsystem; is that going to happen any soon in Linux?
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.
What do you think of the Java phenomenon? Did you ever consider integrating a Java VM, like kaffe, in the kernel?
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.
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.
Many people ask why the kernel is written in C instead of C++. What is your point against using C++ in the kernel?
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.
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.
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.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved