Linus Torvalds is a regular visitor to Australia in January. He comes out for some sunshine and to attend the annual linux.conf.au organised by Linux Australia. He took some time out to speak to Rodney Gedda about a host of topics including point releases, filesystems and what it is like switching to GNOME. He also puts Windows 7 in perspective.
It's 2009 and Linux development is approaching 20 years. How do you look back at the past two decades?
I feel like its very natural and I don't think it will go away. I have a suspicion I will be doing this for a long time and there is no feeling of "it is done".
I don't have a feeling to pass it on [maintenance of the Linux kernel], but I let the people I trust make the decisions. I can't second-guess them as it wouldn't work and I would waste a lot of people's time. All the sub-maintainers sync their git trees with the main code and I check they haven't done something horrible, but that's rare.
In recent years there have been more "point releases" than major version upgrades, how is this going?
The point release thing has worked well and we have added new features to point releases. It's both worrying and gratifying.
We have point releases so as not to screw development up in a big way. That's why we have stable trees, but we have not gotten to the point where we are adding code so fast we are losing stability. The point releases are getting bigger even though we are keeping the release time consistent at about two or three months. And now we do more changes in those two or three months than we were doing a few years ago. So we are scaling our development well.
There's always the worry are we going to lose it and have huge stability problems. Andrew Morton keeps on talking about this; that we have to make sure quality does not degrade. We have stats on regressions and how long it takes to fix them and how many have to wait for a stable kernel. And some regressions show odd behaviour. It might be a hardware issue or an old bug that was hidden before.
I'm happy with the point release model and I don't see how we could have anything but 2.6, so for now we have done nothing. In the end it's just the numbering. What I don't want to go back to is a development tree that breaks things for a few years. There may be architectural rewrites in the future, but we have been getting good at that even in point releases. So there is nothing that would cause an upheaval that would require a new major version number. We can do unstable development now and not let it impact users.
What about older code in the kernel do you want to remove this?
Some people want us to remove old code more aggressively, but I think if some people are still using it we should keep it as maintaining the old code is usually almost free so we will keep maintain old code as is humanly possible. Occasionally we remove old device drivers.
There has been a lot of buzz about filesystems lately, including Sun's ZFS. What would you like to see Linux adopt here?
Filesystems are easy to get excited about. They are easy to add to the kernel so there is almost no risk. We have something like 35 filesystems supported and a lot are not realistically used much. They are candidates for removal, but people are still using them. We add filesystems easily and let history take its course.
In the development community there are two camps - people that want stability and people that want to release often. End-users will do crazy things that no amount of testing infrastructure will get so there are competing pressures. You want filesystems to be stable, but you can't be in beta forever. Btrfs is developmental, but it was merged in the main kernel to help people test it.
To some degree Btrfs does what ZFS does. Some uni ran ZFS as a module in Linux so using it with Linux can be done. The biggest thing Sun did with ZFS is they were good with PR and marketing. There are other projects that wanted to do what ZFS does on Linux. Sun started finding the NetApp patents as the NetApp patents kept people from doing things they wanted to do. I hope ZFS clears the patents issue.