Austin, TX: Once more, at The Linux Foundation’s Open Source Summit, Cardano’s chief open source officer Dirk Hohndel and Linux creator Linus Torvalds had a wide-ranging conversation about Linux development and related issues.
Torvalds, who hates public speaking, said that he always does these presentations as interviews because, “I do software. I don’t do public speaking.” The hindrance being, he explained, “I don’t know what people are interested in. So, Dirk asks the questions and, hopefully, if he asks bad questions, it’s not my fault.”
Having got that out of the way, the pair talked about the effects that Covid had on kernel development. In short, Covid didn’t affect the kernel a lot, and productivity actually went up. Torvalds said, “I take some of that back. I’m sure it affected a lot of developers. But from a development standpoint, somebody actually did the statistics in the first few months of lockdowns, and productivity actually went up, because we’ve always worked all over email.”
So, if anyone tells you complicated technical work can’t be done remotely, tell them to look at Linux.
In part that’s because, Torvalds continued, “We actually have a very standardized way of doing releases for the last 15-plus years.” Back then, “It took a few years for people to get on with the new world order.” But for the past few years, “We’ve had the same process; we’ve had the same release schedules. In that sense, kernel development has been very calm and very, let’s say staid, not exciting from a process standpoint. And that’s actually exactly what I think about people, so they don’t get upset about how all the infrastructure is changing.”
But Torvalds made clear that doesn’t mean that kernel development is boring. It’s not.
“We actually have lots of cool stuff happening, and I’m really happy to see that,” he said. “You[‘d] think that after 30 years, your project would kind of grow boring, but it’s not. I’m actively encouraging people to do the exciting stuff, and we’re having new architectures come in. We also have people try new languages, with Rust being discussed widely.”
Speaking of Rust, Hohndel asked Torvalds how close developers are to getting Rust in the Linux kernel. Torvalds replied, “There are real technical reasons like memory safety why Rust is good to get in the kernel. And people have been working on it a lot. So I really hope it works out.” Still, “It’s going to start out with very small and very specific parts of the kernel. We’re not rewriting all the kernel in Rust.” But soon, perhaps as early as the next major release, Rust will be appearing in the Linux kernel.
Hohndel also introduced the topic of userspace application programming interfaces (APIs). “You say the user space APIs cannot be broken. They are considered a promise. And a lot of discussions are going into this right now about what’s actually in the API.”
First, Torvalds explained, that what the documentation says is in the API, is not what is in the user-space API. It’s what the code says that’s in the API. “Documentation is worthless compared to reality. And I say that as a software engineer who never writes documentation. Never.” Torvalds admitted, “This is my own personal bias.”
Torvalds said that the real rule behind his rule about never breaking the API is he never wants someone to try to run a program after an update and find it doesn’t work. “The most annoying thing I can imagine is doing a software upgrade and things not working.” Indeed, he said, if an application, “takes advantage of a bug in the kernel. That bug is not a bug. It’s a feature. We will maintain it forever.”
There are exceptions, however. “Unless they’re really pressing concerns, and usually the only really pressing concern is security.”
Hohndell then asked about the role of maintainers in Linux. “You’ve said the role of the maintainer is very much one of having good taste, pattern recognition, and being able to look at patches and very quickly see the idea. But how will that work with Rust?”
Torvalds replied, “I don’t see that as a big issue. For example, in the build subsystem, I’m used to seeing Perl code with macros, and they are an unholy mess. To me, Perl is a write-only language. I don’t even pretend to understand what’s going on, but I’m perfectly happy to trust maintainers. That has been my policy for the longest time, that I trust people to do the right thing until they screw up.”
He added, “Sometimes I’m overly harsh, and I apologize in advance for that.”
Hohndell jokingly interjected, “In a loving way.”
Torvald replied, “No, it’s a real failing of mine, and I’m still working on it.”
With failings having been mentioned, Torvalds reported that things are slowly getting better with Linux and hardware vendor interactions. Or at least, he’s become more “inured to the pain.”
It’s been years since Meltdown and the first version of Spectre, major Intel chip failures that led to operating system security problems, happened. Even today, Torvalds said, “It is very frustrating when you expect that you can trust the hardware, and it turns out you can’t, and you have to do a lot of extra work to fix hardware bugs. The good news is it’s much better than it was. The kinds of security issues we see on the hardware side have gotten more esoteric as time has gone.”
Still, even though the silicon vendors have gotten better about working with Linux and open-source developers, Torvalds finds it very annoying that when Linux developers find and fix a security problem, they disclose the failure and make security patches public within seven days, while hardware OEMs take years to disclose and fix problems.
As the conversation wended its way to the end, Hohndell asked Torvalds what he does for fun. Torvalds replied, “Is there life outside the screen?”
Torvalds admitted that he tinkered with hardware during the worst of the Covid pandemic, but added, “I’m a bad hardware developer. It turns out my problem is motivation.” Torvalds also admitted he likes being social, but not on social networks, but by “talking with people over email.”
Really though, at the end of the day, what Torvalds likes most is working on Linux. “Linux is my baby,” he said. And he wouldn’t have it any other way.