Interview with Linus, the Author of Linux
Fetched from https://www.linuxjournal.com/article/2736 on 2021-10-14
by Robert Young
on March 1, 1994
Linux Journal: Ken Thompson was once asked, if he had the chance to do
it all again, what changes would he make in Unix. He said he would add
an e to the creat system call.
How about you and Linux?
Linus: Well, Considering how well it has turned out, I really can't say
something went wrong: I have done a few design mistakes, and most often
those have required re-writing code (sometimes only a bit, sometimes
large chunks) to correct for them, but that can't be avoided when you
don't really know all the problems
If it's something I have problems with, it's usually the interface
between user-level programs and the kernel: kernel-kernel relations I
can fix easily in one place, but when I notice that the design of a
system call is bad, changing that is rather harder, and mostly involves
adding a new system call which has semantics that are the superset of
the old and then leaving in a compatibility-hack so that the old calls
still work. Ugly, and I avoid it unless it really has to be done.
Right now I'd actually prefer to change the semantics of the and
write() system calls subtly, but the gains aren't really worth the
trouble.
Linux Journal: The most consistent compliment that Linux receives is
its stability on Intel PC computers. This is particularly true compared
to "real Unices" that have been ported to the Intel platform.
What do you see that was done right in Linux that is causing problems
for these other PC Unices?
Linus: There are probably a couple of reasons. One is simply the
design, which is rather simple, and naturally suits the PC architecture
rather well. That makes many things easier. I'd suspect that the other
reason is due to rather stable drivers: PC hardware is truly horrendous
in that there are lots of different manufacturers, and not all of them
do things the same (or even according to specs).
That results in major problems for anybody who needs to write a driver
that works on different systems, but in the case of linux this is at
least partially solved by reasonably direct access to a large number of
different machines. The development cycle of linux helps find these
hardware problems: with many small incremental releases, it's much
easier to find out exactly what piece of code breaks/fixes some
hardware. Other distributions (commercial or the BSD 386-project which
uses a different release schedule) have more problems in finding out
why something doesn't work on a few machines even though it seems to
work on all the others.
Linux Journal: Have you heard of any problems running Linux on the
Pentium chip? Do you expect any?
Linus: I know from a number of reports that it works, and that the
boot-up detection routines even identify the chip as a Pentium ("uname
-a" will give "i586" with reasonably new kls, as I ignore Intel
guidelines about the name). The problems are not likely to occur due to
the actual processor itself, as much as with the surrounding hardware:
with a Pentium chip, manufacturers are much more likely to use more
exotic hardware controllers for better performance, and the drivers for
them all won't necessarily exist for linux yet. So I've had a few
reports of a Pentium PCI machine working fine, but that the kernel then
doesn't recognize the SCSI hard disk, for example.
From a performance viewpoint, the current gcc compiler isn't able to do
Pentium-specific optimizations, so sadly linux won't be able to take
full advantage of the processor right now. I don't know when gcc will
have Pentium-optimization support, but I expect it will come eventually
(most of the logic for it should already be there, as gcc can already
handle similar optimization problems for other complex processors).
One interesting thing is that the "bogo-mips" loop I use to calibrate a
kernel timing loop seems to actually be slower on a Pentium than on an
i486 at the same clock frequency. The real-world performance is
probably better despite that (the timing loop is just a decrement
operation followed by a conditional jump: the Pentium won't be able to
do any super scalar execution optimizations).
Linux Journal: With the end of the road for Intel's 80XXX series chips
in sight (although at least a few years away), what chip or hardware
platform would you like to see Linux ported to?
Linus: The Amiga 680x0 (x>=3, MMU required) port is already underway
and reportedly mostly functional already. I haven't been in any close
contact with the developers, as they seem to know what they are doing,
but I understand they track the PC versions rather closely, and have
most of the features working. I'd expect something truly functional by
the end of this year, even though the installed machine base is much
smaller.
As to other ports: I'd really enjoy some port to newer and more exotic
hardware like the DEC Alpha chips or the PowerPC, but as far as I know
nobody is really working on it. The main problem with non-i386 ports is
simply lack of momentum: in order to get this kind of port going, you'd
need hacker-type people with access to such hardware with "nothing
better" to do on it. DEC or IBM has yet to show enough interest that
they'd donate hardware and documentation to this worthwhile cause.
Linux Journal: What aspects of Linux are you taking responsibility for
on an on-going basis?
Linus: Everything that directly concerns the kernel: some of it I can't
actually fix myself (mostly drivers for hardware I don't own and have
no idea about), but in that case I still want to know about the
problems and try to act as a "router" to the person who actually
handles that piece of code. The areas I consider especially "mine" are
memory management, the VFS layer and the "kernel proper" (scheduling,
interrupt handling etc). Generally things that make up the very heart
of the kernel, and on top of which all the other stuff has to go.
Linux Journal: Do you see yourself earning a living from your work in
Linux in future?
Linus: Well, I do hope and expect to be able to find a job much more
easily due to linux, so yes, indirectly at least I hope to be able to
make a living off this, even though the work itself might be completely
unrelated. As to whether it would actually concern linux itself in some
way, I don't know
Linux Journal: The use of Linux is growing exponentially around the
world. However, unlike commercial products, there is no central
registry for Linux users.
What is your "best guess" of the number of machines ruing Linux
worldwide today and what would you base an estimate on.
Linus: I actually have no good idea at all: I haven't really followed
either the CD-ROM sales or any ftp statistics, so it's rather hard to
say. I guesstimate a user base of about 50,000 active users: that may
be way off-base, but it doesn't sound too unlikely. The c.o.l.
newsgroup had about 80,000 readers according to the network statistics
back before the split (and I haven't looked at the statistics since),
and I saw a number like 10,000 CD-ROMs sold somewhere. Not all of those
are active users, I'm sue, but that would put some kind of lower limit
on the number.
Linux Journal: Hindsight being 20/20, do you occasionally wish you had
patented, or otherwise retained rights to Linux?
Linus: Definitely not. Even with 20/20 hindsight, I consider the linux
copyright to be one of the very best design decisions I ever did, along
with accepting code that was copyrighted by other holders (under the
same copyright conditions, of course). I'm not fanatic about the GPL,
but in the case of linux it has certainly worked out well enough. As to
patents, I consider software patents a patently bad idea in the first
place, and even if I didn't, I would abhor the paperwork needed.
Getting a trade-mark on the name "linux" might be a good idea, and
there was some talk about that, but nobody really found the thing
important enough to bother about (especially as it does require both
some funds and work).
Linux Journal: What is your field of study, and what do you plan to
specialize in upon graduation?
Linus: I'm studying mostly operating systems (surprise, surprise), and
compiler design: rather low-level stuff mostly. I expect I'll expand
that to communications and distributed systems for obvious reasons, but
I haven't really decided on anything yet. So far, my "field" has been
any courses that I find interesting, and I hope I won't have to
specialize any more than that in the future either.
Linux Journal: Linux is benefiting from a worldwide development effort.
The number and frequency of new releases of Linux, and drivers and
utilities are amazing to anyone familiar with traditional UNIX
development cycles. This seems to be giving Linux a huge "competitive
advantage" over alternate UNIX-on-the-pc products.
What do you see as the future of Linux?
Linus: I rather expect it to remain reasonably close to what it looks
like now: the releases may become a bit less frequent as it all
stabilizes, but that might just mean that I'll make my snapshots weekly
instead of daily as I do now during intense development, and that the
"real" releases will happen a couple of times a year instead of monthly
or bi-monthly as now.
Similarly, there will probably remain several different "package
releases": some of them will be more or less commercial (currently the
Yggdrasil CD-ROM, for example, or the various disk copying services),
while others will continue to be mostly electronically distributed by
ftp.
Linux Journal: What would you LIKE to see for the future of Linux?
Linus: Related to the question above, I do hope to see one change:
support and documentation. Some of this has actually already happened
or is happening now, but there is still room for growth. I know of a
few book projects (one of which went into print a couple of days ago),
and a few support companies, and I hope that will still grow.
Then there are various interesting projects going on that I'd be very
interested to see:
Windows emulation (being worked on, and the kernel support is already
there);i386 SysV binary compatibility (already in early stages of
testing) etc.;As well as the porting projects to various different
hardware platforms, of course.
I also have various general (and vague) plans about actual kernel
development, and some specifics I want to have implemented in the
reasonably near future (I think I'll work mostly on memory management
and related areas this spring, for example). Mostly, I just hope to
have a stable and enjoyable platform
Linux Journal: Also, would you have a photo of yourself we could use to
accompany the article? This is by no means required, but a huge number
of Linux users are very curious about who you are, why you did Linux,
etc... you know, all the human interest side to the Linux story.
Linus: I'm " camera-shy", so I have no good photos for this purpose,
which has resulted in some rather weird photos being used in some
places. A magazine in Holland used one of the gifs that were put out
long ago (bad quality, and very much done in jest: I drink beer in most
of them, including the one they used), and one Finnish magazine used a
photo from a party I was at which also had lots of beer-cans in it.. I
guess I should find some rather more presentable photos somewhere. I'll
see.
Linux Journal: We saw a photo that was distributed over the net. One
that has you smiling, with a beer bottle in front subtitled `Linus
Torvalds - creator of Linux'—In fact, for all the `official' format for
photos requires a tie and at least a semi-serious pose, I think that
this was a VERY good photo, as it showed you as a happy, friendly human
being.
Linus: It's another of the `party photos', although the party was a
much smaller and more informal one. I don't know who has the originals
anymore, so I'm unlikely to find it in time with most of the concerned
people still being somewhere else as teaching at the university hasn't
started yet. What the magazine from Holland did was actually to have a
screen-shot of linux running X, and have the gif-picture in an xv
window (with a few other windows like xload to give it some more lf);
that way the quality of the picture didn't matter much, and it also
looked like a clever idea. You could use some similar trick. I don't
mind looking like a human being instead of a tie+shirt robot, so I
don't mind the picture even though it was all done mostly in jest.
Linux Journal: We'd like to send you a complimentary subscription(s) to
Linux Journal.
Linus: I'd like a copy, please.
Linux Journal: Also, re your response on the `other platforms'
question, if you can find someone willing to do the work, we should be
able to help find someone at IBM or HP (maybe even DEC, but I doubt
SUN) who would be able to donate/loan some hardware.
Linus: It would be fun, but as I can't make any promises and would need
lots of technical documentation as well (and not under any
non-disclosure), this is probably not really something companies like
to do.
Linux Journal: Where did you learn to write English this well?
Linus: I read more English than either Swedish (my mother tongue) or
Finnish (which is the majority language in Finland, of course), so I
while I'm not completely comfortable actually speaking the language
(partly due to pronunciation), I don't have any problems reading,
writing or indeed thinking in English.
The reason for reading English is simply that there are more
interesting books available in English, and that they are usually
cheaper even over here (larger printings, no translation costs, etc.).
Besides, it's often the original language, so even when the book is
available as a translation, I usually prefer to read it in English.
This interview was conducted by Robert Young, Publisher of the Linux
Journal, NY Unix.
.
Response:
text/plain