What’s going on with Microsoft’s drivers for its virtualization stuff? You had blogged about them submitting non-conforming code and then not being available. Has that changed?
The code they submitted was fine, but needs lots of work to get it into “proper” mergable shape to get it to move out of the drivers/staging/ tree. This is nothing new, it happens to almost all companies when they first get involved in Linux kernel development. Both Intel and Google had this problem as well when they started out. The issue I had was that after the initial submission, we have not see any contributions to the code at all. The community contributed over 200 patches, and I did not get any response to my emails to the Microsoft developers. After I wrote up my status report, they popped back up and contacted me and all is now good. Although they have yet to submit any follow-on patches to the code, I still have hope.
What development tools do you enjoy using?
I use mutt as an email client for handling all of the mail I get and send. I use vim for editing code and emails as well as everything else. GCC as the C compiler for the kernel, and of course git and quilt to handle patch management.
Have any thoughts on new distributed source code management systems?
It’s not exactly a “new” idea, it’s been around for quite some time. BitKeeper was the first real tool that had it built in, and now git is what I use everyday for it. It’s a wonderful way to handle source code, and I would never be able to live without it.
What do you do in your spare time?
Play with my kids, tend to my weed-infested garden, and snowboard in the winter.
Do you have any hobby coding projects?
BTI is what I have been playing around with for a while. It is a C program that posts to twitter and iden.ti.ca. I use it to pipe my bash shell to twitter so you can see what I am doing at exactly that moment. Others use it for much more useful things.
What’s going on with udev? Any interesting new features or major milestones coming up there?
libudev has been broken out of udev, making the udev code itself quite small and simple. libudev is being used to replace HAL in the Linux system, and is very easy to code to. I’m looking at porting the usbutils packge over to use it soon as well. Other than that, you should ask Kay Sievers about udev, he’s the one runninng that project now, and has been for a few years now. I doubt any of my original code is still existing in the tree. He’s done a wonderful job with the project, and I can’t thank him enough for taking it over.
What was your first computer?
TRS-80 Model III.
What was your first programming language?
BASIC, it came on the TRS-80.
What would you say you’ve learned from being a Linux kernel maintainer?
I think the best thing I’ve learned over the years is humility. There is always someone out there that is better than you and can point out problems in your code. And that’s good, because in the end what matters most is the code getting better, and by virtue of that, Linux getting better. The old phrase is, “There’s always someone smarter than you, and they work for someone else” when it comes to employees at a company. But with Linux, it doesn’t matter what company someone works for, they all contribute to the kernel as a shared goal of making it better. And by the individuals making things better, everyone overall gets something that is better as well. I think it is absolutly amazing to see how far Linux has come in the short time it has been around. It now powers over 80% of the world’s top supercomputers, as well as powering the most common cell phone for 2008, with the exact same codebase. That’s an engineering goal that no one has ever achieved, and one that no one set out to accomplish in the beginning either. It’s only through the thousands of different contributors, and hundreds of companies, all working together to make Linux better for them, has something like this evolved. It’s changed the way people think about software engineering practices, and how large projects can be run and constructed.
This article originally appeared in issue 82 of Linux User & Developer magazine. Photos by Aaron Hockley.