Linus Torvalds creator of the Linux kernel has along with others like Richard Stallman literally changed the world of software forever.
Linux-based distributions seem to pop up every day while more and more devices now run Linux at their core from mobile phones to inflight entertainment systems to the world’s mission critical server infrastructures.
The development of the kernel has changed and Linux is just getting better and better. However with a community as large and fractured as the Linux community it can sometimes be hard to get a big picture overview of where Linux is going: what’s happening with kernel version 2.6? Will there be a version 3.0? What has Linus been up to lately? What does he get up to in his spare time?
I had the opportunity to chat with Linus Torvalds in a number of email exchanges.
APC: Writing an operating system kernel is a hard job. Why did you write Linux in the first place?
LT: Kernels may be hard but partly because of that they are also interesting. I’ve always been more interested in “down to the hardware” details than in fluffy stuff like user interfaces etc and an operating system kernel is about as down to the hardware as you can get without actually building it yourself (which I’ve also done – I was at a CPU company for seven years after all). So I’m not into soldering irons etc but I very much enjoy working at a low level and thinking about how my software actually interacts with the CPU and other parts of the system. Besides I really didn’t realize how hard it would be. I really never expected to be still working on it 15+ years later 😉
|Initiator of the Linux kernel Linus Torvalds: Photo credit: Linuxmag.com licensed under GNUFDL|
APC: What’s the Linux Foundation?
LT: Heh. I just work here you should ask some of the people who are actually involved in all the other things that LF does. It’s basically the combination of OSDL (“Open Source Development Labs”) and FSG (“Free Standards Group”) and is a vendor-neutral place for different organizations to discuss the issues they have and trying to help Linux along. Part of what LF does is pay me to maintain the kernel.
APC: What are you doing with the kernel now? Are you working on it full time? What parts of it do you work on the most?
LT: I very much work on it full time but I no longer really work on any particular “part”of it – I end up spending almost all my time on not writing kernel code myself but on working with the flow of code and merging it all.
In fact the biggest amount of actual source code I’ve written in the last two years is not in the kernel itself but in the tool I use to just track the kernel development (called “git” – a source control management system).
So I still get to write code (and I send out suggested patches quite often – but usually they are along the lines of “so here’s how we could handle this issue…” in order to prod others to actually do the final patch and testing). But what I do a lot more is go through other peoples changes and say “yes” or “no”.
APC: The 2.6 series kernel has been around for a long time. Why?
LT: We used to have these big and painful development releases that took several years and it worked reasonably well and people got very used to it (“2.<even> is stable 2.<odd> is development”) but it had serious downsides too.
In particular the release cycles were so long that all the commercial vendors effectively had to back-port a fair amount of new code from the development kernels and so development code ended up in the stable releases. Also conversely the vendors fixed problems in the stable versions and sometimes the fixes were missed or weren’t easy to then forward-port to the development series because the two were just very far apart.
Basically a multi-year development cycle simply doesn’t work. It was reasonable and required for a while (we did some pretty radical changes there too) but with 2.6 the base kernel is in good shape and we’ve improved our development process enough that we just don’t have any pressing reason to go back to that kind of “everything changes” model.
So instead of having two or three years between stable releases we now have two or three months. Which means that the vendor kernels are much closer to the development kernels and avoids a lot of the problems we used to have. Everybody is happier.
So we’ll probably stay with that model unless something really radical happens and that means that we’ll keep with the “2.6.x” codebase and just incrementally improve on it.
Of course if we had a marketing department that had a strong say they’d make us call it some sexy name (“Panther” or “Vista” or whatever) but as it is the technical people are in charge of version names and the sexy naming is up to the distribution makers that can call their offerings whatever they want (“Fedora” or “Feisty Fawn”).