Alan Cox is generally referred to in the open-source developer community as a "kernel hacker" -- someone whose programming responsibilities cover the Linux kernel, or core, itself. Thousands of developers all over the world, from hobbyists to IBM engineers, are constantly contributing to open source software, so Cox's role of organising and applying improvements is vital.
Cox makes use of the decentralised nature of the Internet to work from his home in Swansea, despite the fact that his employer Red Hat is based in the US; in fact, at the moment he prefers not to visit the States, because of concerns about the Digital Millennium Copyright Act (DMCA).
He spoke with ZDNet UK in Swansea in a wide-ranging interview touching on the latest challenges for Linux at the high- and low-end, the arrival of revolutionary 64-bit hardware and why it's hard to argue with the economics of open-source software.
Q: What were some of the biggest developments for Linux last year?
A: I guess the 2.4 kernel coming of age is one of them. We now have a good solid, very scalable kernel, which all the vendors are shipping, that's improved no end on four- and eight-way machines. Is scalability mainly an enterprise issue?
It's pretty important for the big enterprises. It helps everybody. If you look at the direction the market is going, you've got things like Intel's new Pentium 4 with hyper-threading, where a single CPU is effectively two, so you've got scaling issues going on in single-processor machines. Beyond that a lot of the user interface work is really starting to show. The Nautilus file manager... some really, really good work being done with KDE and also configuration tools. What's the importance of improving graphical user environments like KDE and GNOME?
Within a very large organisation what they want is a small number of people who can maintain large numbers of machines, and they'll be very skilled people. The moment you go into smaller businesses and outside of the big-business, large-government role, you need machines where anybody can say, "Ah, what's happened here?" and fix it. So it doesn't necessarily become a case of needing the power, you start to need the usability. Even if the usability means you can't do some of the clever things, these people still need to be able to do things like set up a simple firewall and configure their email and stuff. So that is very important. On a technical level, other things would be clustering work being started. IBM recently introduced its first dedicated Linux mainframe server. Linux on the mainframe seems to be getting a lot of attention at the moment.
It actually goes back a fair way. It's been around for a year or so. Now it's really starting to take off with this server consolidation thing, and IBM has sort of hit the wave with the blade server people as well. If you can run a thousand copies of Linux on one machine, what are the savings of not having a room full of computers? I think they just have been at the right place at the right time in a sense. They've got hardware which is very fault-tolerant and they can ship it now while everyone else is very much -- all the PC style hardware doing this is very new. IBM is spending a lot of money promoting its Linux plans. Do you see any problem with IBM integrating Linux into its corporate strategy?
There are one or two points of friction for IBM. Certain drivers for the S/390 (mainframe) are closed source, which has proved problematic for customers, because they can't upgrade to the versions of the kernel they want, because they can't get the right drivers from IBM. On the whole, though, I think it would be fair to say that IBM have been extremely good citizens of the open source world, they've contributed a lot of very, very good code. I don't think that's a big issue, just this one S/390 issue. What are the most important developments coming up for the Linux kernel?
In the desktop world there are a set of transitions for the legacy-free PCs which we have to be ready for -- we're pretty much in the right spot. So you see machines where USB is basically the only plug-in interface. ACPI (Advanced Configuration and Power Interface) is becoming a requirement on machines, so you have to support the ACPI configuration. We've covered the Pentium 4 hyper-threading. There are more scaling questions, because we have more memory, bigger disks, again and again and again. Possibly the Intel IA-64 processors, depending on if they take off, and the AMD Hammer could be a very, very big thing. That looks like that will actually be a consumer-oriented 64-bit processor. It will be able to run 64-bit and 32-bit as well. Who will mainly benefit from 64-bit?
We get large numbers of people, particularly people with large financial analysis systems, electronics design automation, even things like SAP, where believe it or not, 4GB of address space, 4GB of memory, is just not enough. The SAP people have to actually try and squash their code into it, the software is so powerful. For those kind of roles 64-bit is basically essential, and at the moment a lot of these people are stuck on very expensive proprietary system, and once they can go 64-bit, they'll be able to dump a lot of this hardware, and move over to mainstream PC platforms and save an absolute fortune. The consumer level impact is, I suspect, just speed improvements here and there. Obviously being able to do 64-bit integer math is good for certain kinds of 3D work, so it might help the gaming people. There's all sorts of other applications where having 64-bit just happens to be a help. But the really, really big gains are for the big electronic design automation systems. It opens up a whole new market for Linux, doesn't it?
It's effectively extending the PC itself, not just Linux, extending the whole PC into another market area where currently there's a barrier. In some ways it could be as big a shift as the 386 was in opening the 32-bit world to the PC. From that the PC became the ubiquitous 32-bit system; now it could become the ubiquitous 64-bit system. Last spring you met with some of the other main Linux programmers in the first Linux Summit. Was that useful, and will it happen again this year?
Provisionally so, at the Ottawa Linux Symposium (OLS), I believe, which is the main kernel developer forum. It was strange in a way. The official part of it was actually very non-productive. The amount of work that got done over beer and at three in the morning cannot possibly be overestimated. A lot of it is meeting people. Meeting somebody occasionally you get to understand them enough that you can follow things in email or other discussions that you just would not pick up normally. So yeah, it is a big, big help. Sometimes lots of things come out of it. At the last OLS I went to there were people literally sitting around with their laptops and they would just look over each other's shoulders and get to talking and pick up on things that never would have occurred to them before. How militant are you about which licences people use for their software, and how they use them?
People who are not following the (free software) licence are pirates, it's as simple as that. It's no different if you take GPL (GNU Public Licence) code and don't give people the source code, or if you make copies of movies and sell them to people, it's the same thing. In terms of other software, it really depends on the people who write it. I don't think you have a right to dictate how somebody controls their own work, apart from the very, very basic standard you'd expect. Ximian recently decided to switch class libraries for Mono (a clone of Microsoft's .Net) away from the GPL. How controversial is that to you?
I've only looked briefly at the reasoning behind it, but I think at least part of the reasoning was that, for something like Mono they wanted people to be able to link proprietary code with the free software code and mix them up and get it to work. Really you have to ask the Ximian people about that. I don't really have a problem with it; it's their software. You feel it's important for Linux that free software licences are able to coexist with proprietary licences, don't you?
We're being very careful with that. We specifically allow people to use all the system call entry points for Linux for driver software, and the main libraries you need to build applications are under (a different) licence. So the library itself you have to provide source for, but not the application. Because obviously Oracle are not going to give source code to their tools. But you don't want to create a system where you arbitrarily shut people out -- that's the Microsoft world. It's actually ironic that, because Microsoft has started putting licences on Windows libraries now which basically forbid you from writing free or open source using their Windows libraries. They're specifically trying to shut out and control. They're monopolists. Their role as a monopoly changes the way they approach software, you're saying.
An application and operating system should be totally different things. They're different works. It should not be Microsoft's business how (an application) is written and vice-versa. And as a monopolist, even more so -- the fact that you can say "oh, you're not allowed to licence your code like this and run it on our system," that's 90 percent of the desktops, bang, gone. So as monopolists they have duties beyond the norm. Do you feel it will be Linux's ultimate role to be ubiquitous on the desktop the way Microsoft is today?
It may play in the same markets, but it can never play that Microsoft kind of role, because being open source, you can't control people, you can't force the prices up 40 percent every year, you don't need to force people to upgrade because it's a service-based industry anyway. So looking at it from that perspective it's very different. In terms of being able to get it into lots of very different market areas, then yes, I think that is important. See Part II: The battle for the desktop