Linux inventor (and chief maintainer) Linus Torvalds says that the kernel is getting more reliable, and he is not anxious about it being used in safety-critical systems.
Torvalds, being interviewed on stage at the Open Source Summit in Lyon yesterday, told onlookers: "I don't do speeches any more."
The Finnish-American engineer is responsible for creating two of the most significant software projects of the last 30 years, one being Linux (which dominates both server computing and, in the form of Android, mobile devices), and the other being git, the most popular source code management and collaboration tool. Asking the questions was Dirk Hohndel, chief open source officer at VMware.
Hohndel asked Torvalds if the increasing complexity of the Linux kernel, and the appearance from time to time of "complex, deep system interactions that are hard to debug" cast doubt on its suitability for safety-critical systems.
... in order to be able to say no, I have to know the background, because otherwise I can't do my job. I spend all my time basically reading email about what people are working on...
"I don't feel that. The bugs that get noticed are just more subtle because we have better testing infrastructure, we have better tools for both dynamic and static checking of the sources," said Torvalds.
"Linux has always been … any operating system by definition is complicated. I don't think we've been getting worse. One of the things people don't always realise is that these safety critical systems tend to do one thing and one thing only. That means that the kind of bugs what we see on desktop systems in random distributions are things that you never normally hit in the embedded world … the kind of bugs we tend to find are the random, crazy user bugs, where somebody does something that nobody even thought would be remotely sane."
Torvalds also said that that the process by which the kernel is deployed means there are "multiple levels of filter". He is responsible for the development kernel, but someone else (currently Greg Kroah-Hartman) maintains the stable kernel, and "the third step is the distro kernels that take the stable kernels and usually work their own testing on top of that".
Rather than the current kernel, he is more concerned with older kernels that are still in use. "People are still working with kernels that are so old that the base kernel is from before we got all the process in place. Some of the really long-term systems are using kernels that are very much inferior," he said.
You've always wondered: Here's what Torvalds actually does
How does Torvalds go about his job as chief maintainer of the Linux kernel? Torvalds' response is full of clues about why Linux has succeeded, the key thing being not so much technical genius but rather the ability to enable collaboration.
"I read email. I write email. I do no coding at all any more. Much of the code I write I actually write inside my mail reader," he said.
"In the end my job is to say no. Somebody has to be able to say no, because other developers know that if they do something bad I will say no. They hopefully in turn are more careful. But in order to be able to say no, I have to know the background, because otherwise I can't do my job. I spend all my time basically reading email about what people are working on.
Commit messages to me are almost as important as the code change itself
"One of my primary goals is to be very responsive to maintainers who send me patches or send me their pull request. I want to say yes or no within a day or two. A day or two may stretch into a week but I want to be there all the time. As a maintainer, I think that's one of the main things you want to do."
Being responsive, he said, is critical to enabling the team to function.
Torvalds also spoke about the value of documentation. "Commit messages to me are almost as important as the code change itself. Sometimes the code change is so obvious that no message is really required. That is very, very rare … if you can explain your code to me, I will trust the code. It also helps if in three years somebody else is trying to fix a bug, and looks at the change and says what the heck is that?"
Is kernel development harder than it used to be, because of the complexity? "In many respects kernel development has become much easier," Torvalds responded. "Yes, it's bigger and more complicated, but on the other hand, we have much better tools, and we have much better communication, we have a lot more community … Early on, you might not have the right hardware, because the kernel would only work on a very small subset of hardware. And that just isn't a problem any more."
After 28 years of Linux and almost 15 years of Git (though Torvalds noted that he "maintained git for six months and no more. The real credit goes to Junio Hamano and a lot of other developers"), is it time for a new project? "No. I am so done," said Torvalds.
That said, Torvalds, who in September 2018 temporarily stepped down from his role maintaining Linux, though resumed the following month, now shows no sign of wanting to quit. "I may spend most of my time reading email but the reason I do that is I'd be really bored if I wasn't," he said. ®