When the Linux.conf.au organizers announced that Tanenbaum would be keynoting at the conference, no doubt some of the attendees were left scratching their heads. Tanenbaum, the creator of Minix, is probably best known in the Linux community for his debate with Torvalds, sparked by Tanenbaum calling Linux "obsolete."
However, despite the debate, Tanenbaum and Torvalds are not on bad terms, and Torvalds agreed to introduce Tanenbaum for his keynote at LCA 2007.
After being introduced by Torvalds, Tanenbaum got up to talk about making operating systems more secure. According to Tanenbaum, OS developers need to employ "intelligent design," and get loadable modules out of the kernel -- including device drivers and filesystems.
Though Linux has succeeded wildly since Tanenbaum called it "obsolete," Tanenbaum is still advocating the microkernel approach. He discussed moving drivers into userspace rather than keeping them as part of the kernel, and using a "resurrection server" to watch and restart any device drivers or modules that fail.
This is the model taken by Minix 3, and Tanenbaum acknowledges that there is a performance hit associated with the userspace driver module, but he says this is an acceptable tradeoff for the stability and security that would be achieved by having drivers in userspace. Tanenbaum cited test numbers of an average 12% loss of performance for system calls and an 18% loss of performance for disk I/O.
He also discussed running tests where drivers were killed repeatedly and restarted by the resurrection server, to show that even very buggy drivers would still operate correctly with degraded performance until corrected. He cited a test where an Ethernet driver was killed and restarted every 10 seconds, bringing performance down to 9.5Mbps.
I talked to Tanenbaum after his keynote about Minix and his other projects. In addition to working on Minix, Tanenbaum put together electoral-vote.com, a site that tracks polls to determine which way US presidential and congressional races are going.
Tanenbaum says that he originally started the site to help register overseas voters. If you visit the site, you'll notice a "vote from abroad" banner, which will provide information for US citizens not living in the US on registering to vote. He says he hoped to create a site that would draw in a lot of people, including those living abroad.
In that respect, he's succeeded. The site was immensely popular during the 2004 presidential race and 2006 mid-term elections. Tanenbaum says that it helped register more than 30,000 people in 2004.
Getting back to Linux and operating systems, I asked if Tanenbaum had found anything over the years in Linux that he liked enough to copy for Minix. Tanenbaum says no, and that he thinks that the internal structure of Linux "is a mess."
He says it would be better if Torvalds would "lay down the law" and require interfaces to remain stable within the kernel, but that he sees Linux kernel design as "do your own thing" and "very messy."
Linux may be messy, but it has been fairly successful. I asked Tanenbaum if he was aware of any commercial applications that Minix 3 was being used for, and he says that he's not aware of any at this time. However, he says that may be a side effect of using the BSD license for Minix, since no one has to say whether they're using it.
Tanenbaum says that two full-time developers are working on Minix, and also noted that a few masters students are working on a port of Minix to the PowerPC.
Does Tanenbaum run Minix on his own PC? He says he runs it when testing, but uses Windows the rest of the time. He did say that Minix has a relatively decent amount of userspace software for those who want to run it, including development tools like GCC, Perl, and Python. Minix also has X for those who prefer a window environment, and the Equinox Desktop Environment. However, Tanenbaum users will have to suffer without Firefox until Minix implements virtual memory.
Tanenbaum also discussed feature bloat, saying that software like Firefox "could be much smaller" and says that many features -- like themes -- are unnecessary. "What happened to lean and mean?"
Talking with Linus
Unlike Tanenbaum, Linus Torvalds was not giving a talk at the conference, but I had a chance to talk with him about kernel development and other topics. Though Torvalds says he dislikes public speaking, he's an articulate and engaging person in a one-on-one setting, which he says he prefers.
The most notable feature in the upcoming 2.6.20 kernel release, according to Torvalds, is the Kernel-based Virtual Machine (KVM). That being said, Torvalds says he's sick of hearing about virtualization and says he thinks it's being over-hyped. "It's been so over-hyped for the last couple of years, if it went away, I would cry tears of joy."
Still, Torvalds acknowledged that virtualization is useful for many users, and even says he could see himself using it for some tasks -- though he says it's not very useful for kernel debugging.
After all these years, one might wonder whether Torvalds is getting tired of working on the Linux kernel. Apparently not. Torvalds says that he still enjoys the work, though he doesn't write as much code as he used to. "I personally love the fact that I've known what I want to do.... I think it's strange that some people work for one company for only three years."
Torvalds says his job now is primarily doing technical management of the kernel and merging contributions from other developers. "Maintenance is what I'm good at. People trust me [to oversee the kernel] ... and I enjoy it."
He does still code, though. Torvalds mentioned that he recently fixed a nasty virtual memory bug that had been a problem for a small number of users for some time.
Torvalds also talked about the "new" kernel development process of releasing a new kernel about every two months. He says that "everybody is really happy" with the way that it's going, from the developers to the companies that put out Linux distributions. Developers get to put their changes into the kernel more quickly, and companies get the features they need for their customers more quickly.
Since Torvalds introduced Tanenbaum, I asked whether he's had a re-think about any of the microkernel ideas or if running drivers in userspace had any appeal. Torvalds says he's still "not interested in microkernels," though he says that Minix probably makes a better teaching system than Linux due to its size.
However, Torvalds says that Tanenbaum is still "not talking about some of the problems" with Minix, such as the lack of demand paging in Minix. Demand paging is used for virtual memory, which is necessary for many systems.
I hadn't seen any comment from Torvalds about the Novell/Microsoft deal that has caused a major ruckus. Torvalds says he didn't say anything about it because "I didn't have a strong opinion. Most of my initial reaction was positive."
Torvalds says that he's optimistic, and would like to give Microsoft the benefit of the doubt, and that the company may have realized that in some cases it is better not to fight. "They have at least not been calling [Linux] a cancer ... so there's been some conscious decision not to say stupid things. I'd rather be a blue-eyed optimist than to be cynical."
After the 2.6.20 release, Torvalds says the next big feature in the kernel -- aside from the usual new drivers, bugfixes, and security patches -- is the so-called "tickless kernel." "Tickless" refers to allowing the system to go completely idle when there are no timer interrupts. This means reduced power usage and better cooling, which is particular important for embedded systems.
Finally, I asked if Torvalds has had any further thoughts about the upcoming GNU General Public License version 3 (GPLv3). Torvalds says no, and that he doubts that he'll like the final version, though he allowed that it's possible that he might like the final draft. He says that the main problem is that the FSF hasn't changed its reasons for changing the license, which is "the problem in the first place."
Getting inappropriate with scripting
After lunch, I stepped into Jonathan Oxer's talk on "Finding Inappropriate Uses for Scripting Languages." Oxer's talk was an entertaining show and tell where he demonstrated how he's used scripting languages to automate devices around his home.
The talk was somewhat weak on the how-to aspect of using scripting languages to manipulate electronic devices, but it was interesting and fun. A few times, Oxer called up members of the audience to help demonstrate how easy it is to hack electrical devices so it's possible to control them via ports on a computer.
For example, Oxer showed a few slides of his home mailbox and says that he's probably got "the only front gate wired for Ethernet," and described how he's rigged it so that it could detect mail being posted into his letterbox.
Overall, Oxer says the point of his talk was to interest people in the possibilities of hardware hacking, and see "hardware as malleable" using scripting languages as glue.
Reverse-engineering Nvidia drivers
Airlie says that Nouveau developers are pursuing the drivers for "personal reasons," ranging from a dislike of the binary driver to the fact that you can't do dual-head using Nvidia drivers on a G5 system.
He also says that Nouveau is distinctly not ready for prime time. "We don't use it, why would you?" The driver doesn't work yet, so don't bother unless you're a developer with the skill to help hack video drivers -- though his invitation wasn't much of a hard sell. "You won't get famous, and you might get sued."
Airlie also described the process of reverse-engineering a driver, which is also described in detain on this freedesktop.org page. What's the yardstick that the driver will be measured by? Right now, the developers have GLXgears running on it (very slowly), which they demonstrated during the talk. The ultimate goal? Quake III, of course. They are also targeting Compiz and Beryl, and say that's not a very difficult target.
During the subsequent Q&A session, one attendee asked whether it would be possible to get the specs from Nvidia to make it easier to develop. Airlie says that the only thing that would get the specs is money, and it would probably have to be a lot. "We need lots of big companies to tell Nvidia it will cost them tens of thousands of chip sales" to get the specs.
Right now, the target for a beta or alpha quality driver is the fourth quarter of 2007.
LCA 2007 is taking place at the Kensington campus of the University of New South Wales in Sydney, Australia. The conference concludes Friday, January 19.