A Conversation with Linus Torvalds
Linux Journal: You recently went on an international tour, speaking in Belgium, Australia, Singapore, and other places. Could you describe some of the questions or events you found interesting?
Linus Torvalds: Hmm. I got a few interesting questions. In Australia, for example, I had two quite separate persons ask me whether the windows emulator would be extended to run OS/2 programs as well. I couldn't answer them (although I think it's very unlikely to be a high priority), but I found the fact that somebody even asked interesting, as I haven't seen an OS/2 program.
Anyway, the most interesting parts of Australia weren't computers at all, but the small and furry (and sometimes feathered) animals there. I got bitten by a penguin in Canberra (Killer Penguins Strike Again), but it was a very small and timid one. And I naturally saw all the normal Australian animals like wallabies, koalas, etc.
LJ: Were you in a zoo or on the coast when you were bitten?
Linus: It was at a zoo in Canberra. The wild fairy penguins seem to be much too shy to approach at all closely. I don't remember what the island with all the penguins close to Melbourne was called (might have been Shark Island), but reportedly people going there just get to see a lot of penguins; the penguins are so shy that you won't get very close.
LJ: Where did you find the best beer?
[Editor's note: This question about beer needs an explanation for those new to Linux. Linus thanked the “Oxford Beer Trolls” for sending him some virtual beer in his release notes. Also, available on the Internet is a photo of Linus with a beer bottle in front of him; the photo is captioned “Linus Torvalds—Creator of Linux”. Jokes about virtual beer and virtual breweries have blossomed among Linux users.]
Linus: The Australian beer was okay, although I happen to prefer Guinness, not lagers. There was one interesting stout in Singapore called ABC stout (or something equally exciting), but I still think I should probably go to Ireland some day.
LJ: Did you hear any good jokes you could share with us?
Linus: I heard one ... but I don't think that one is suitable for a family magazine like LJ.
LJ: How has your perception of the Linux user base changed?
Linus: I don't think my perceptions have changed all that much. The user base is much more “user” these days and less “hacker”, but that's not some revelation that I got during my trips abroad.
Some of them make a mean barbecue, and some of them say “G'day mate”.
LJ: The last time we talked via e-mail was last January and much has happened during these past eight months. What Linux projects are you working on right now?
Linus: Uhh.. Getting ready for 1.2, I guess. It's already late, but I'd like to have that over and done with. Various problems there, of course—mainly the floppy driver and the TCP problem with the new ciscos.
And the alpha port. Watch this space, but don't hold your breath or you'll go blue and mottled in the face.
LJ: Those of your projections fulfilled or close to fulfillment include: i386 SYSV binary compatibility and windows emulation (halfway there we're told). What projects or work related to Unix, if any, have you been surprised to find not yet fulfilled or close to fruition?
Linus: Me? Surprised about projects not fulfilled? You must be joking. I'm more surprised about the various things that have been fulfilled (the Linux system itself being one of the things I'm surprised by).
Of course, there are a few projects that haven't come to anything yet, but for which I didn't really have high hopes (but I'd be more than happy to be proven wrong). Like a nice WYSIWYG word processor (yes, I use LaTeX occasionally, but no, I'm not crazy enough to think it's the answer).
LJ: We heard you were doing a 64-bit port for the Alpha. How is this progressing?
Linus: Right now I just have a bootloader and am testing the Alpha console code (essentially the same as the BIOS on the PC compatibles, but much more complex and not as well documented). So I have a simple program which boots the system and explores what's going on (the Alpha is a fun chip, I can tell you). The port by Jim Paradis is much further along, and even gets you a shell prompt (but not much else). I'll certainly leverage on that, but the travels have been limiting my time in front of the computer.
LJ: I heard there were two efforts going on for Linux being ported to the PowerPC and the Mac, and that one effort was put on hold because of lack of information from Apple. Do you think the effort is stalled, or do you know if there is still real progress being made?
Linus: I have no idea on the PowerPC port. I have only seen the occasional reports (the latest one indeed saying that they had no knowledge about the IO interfaces). Apple isn't known for disclosing technical information and IBM doesn't seem to have any PowerPC machine out yet (except for the RT which doesn't follow PReP). I don't know what will happen with the PowerPC (with regard to Linux or anything else for that matter). I saw a report about IBM now also considering the Pentium again.
LJ: What is PReP or a PReP machine?
Linus: PReP stands for “PowerPC Reference Platform”--essentially a unified external interface to the PowerPC chip, defining the external bus and the BIOS interface. It's an IBM standard, but even IBM doesn't have any machines out there that follow that standard yet. IBM does have machines with the PowerPC chipset, but those are in their RT line of Unix computers, and have their own bus architecture around the chip (essentially the same one that the POWER series of processors had which were the predecessors of the PowerPC chip).
LJ: Because you know the kernel better than anyone else, how do you feel about the port? Do you think it will be an easy port? Do you think it will run as well on a PowerPC as on the Intel architecture?
Linus: Oh, the PowerPC chip itself shouldn't be the problem. The memory management of the chip is rather strange (and ugly, imho), but that can be considered an extended TLB and the PowerPC port could well use the same memory management architectures, etc., as the current i386 version. The port should obviously run quite quickly on the chip.
The surrounding hardware (and thus the device drivers) will prove to be more problematic unless something comes up (e.g., IBM finally releases a PReP machine and actually gives enough technical documentation on it).
LJ: What is TLB?
Linus: TLB: Translation Lookaside Buffer. It's essentially a small cache inside the processor that caches the page tables, so that the processor doesn't need to look up the virtual-physical mapping in the page tables each time it does a memory access.
The i386 has a TLB with 18 entries (don't quote me on that, but it's something of that order), that it uses to cache the 2-level page tables that define the virtual-memory layout. When a TLB cache miss occurs, the i386 will then (in hardware) look up the virtual mapping in the page tables, and fill in the TLB.
The PowerPC uses a slightly different approach—it won't do a page table lookup when it misses its TLB. Instead, it will look up a new TLB entry from a hash table that has been filled in by the operating system. The operating system can use whatever page table it wants to generate that hash table.
As a final example, let's take the Alpha: it has only a TLB and does any TLB miss lookup in software (the PAL-code). So you can chose your own way of implementing the page tables. (You could do a hash-table plus a physical page table like the PowerPC, or you could go to the page tables directly, like the i386.)
LJ: When do you think we will see Linux on PowerPCs?
Linus: I'll pass on that one. I think both the Alpha and the MIPS ports will be there before the PowerPC, if only because the hardware and the documentation already exist.
LJ: What are the new features you see as needed for Linux?
Linus: The main new feature needed by the average user would probably be the ability to run windows binaries; I hope the Wine project really works out. From a kernel view, the memory management needs some tuning, and the buffer cache needs to be reorganized to allow indexing by inode and offset instead of the current device- centered view. And threading is already something of an issue.
LJ: “What's In a Name?” Do you think Linux would have taken off as fast if you'd named the operating system what you first considered, Freakix? Do you think someone would have published Freakix Journal?
Linus: Actually, it was just “Freax”. And I think Linux turned out to be a much better name, even though I at first thought it would sound too egoistical.
LJ: Anything else you'd like to say?
Linus: So this is where you expect me to do all the interesting revelations, is it? Foiled again.
LJ: Do you have any new hopes for Linux?
Linus: I think my “plan” says something like “World domination. Fast.” But we'll see.
LJ: Thanks for the interview, Linus. We appreciate your taking the time to answer our questions.
- My Childhood in a Cigar Box
- Papa's Got a Brand New NAS
- Applied Expert Systems, Inc.'s CleverView for TCP/IP on Linux
- Returning Values from Bash Functions
- Panther MPC, Inc.'s Panther Alpha
- Rogue Wave Software's TotalView for HPC and CodeDynamics
- Tech Tip: Really Simple HTTP Server with Python
- Simplenote, Simply Awesome!
- Debugging Democracy
- NethServer: Linux without All That Linux Stuff