What keeps you interested in it?
I still like the tinkering, and just the technical side of it. The fact that it’s actually pretty social, and I get to call people names, is just a bonus.
What’s the most amused you’ve ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?
I think my favorite part is when somebody does something utterly crazy using Linux. Things that just make no sense at all, but are impressive from a technical angle (and even more impressive from a “they spent many months doing *that*?” angle).
Like when Alan Cox was working on porting Linux to the 8086. Or the guy who built his own computer using an 8-bit microcontroller that he wired up to some RAM and an SD card, then wrote an ARM emulator for it, and booted Linux (really really slowly) on his board.
What’s your advice for developers who want to get involved?
Start small. It doesn’t even have to be Linux – there’s a lot of open source projects that need help, and you want to learn how to get involved. And once you *do* realize that user-mode programmers are wusses, and you want to get involved with kernel programming, don’t try to revolutionize some core kernel code – try to find some really small nagging concern, and fix that one thing. Maybe a driver for hardware that you have access to that doesn’t work as well as it should, things like that.
It takes a while to learn the ropes, and it really helps if people can see that you’ve done other things before you start sending more involved patches.
But the most important thing is “have good taste.” It’s hard to describe, but it’s something I personally look for. People who do things the “RightWay(tm)” – and I’m not meaning that you should follow
all the rules we have come up with over the years (although you should do that, too) – but I’m talking about that elusive quality of writing code that makes obvious sense and does the right thing without lots of special cases or complexity, but also without being unnecessarily abstract and general-purpose. “Do one thing, and do it well.”
Note – Linus Torvalds: Linux succeeded thanks to selfishness and trust
At the same time, I do think it’s pretty easy to get into kernel development if you don’t go for the most complex and central parts first. The fact that I do a kernel release roughly every three months, and each of those releases generally have over 1,000 people involved in it, says that we certainly aren’t lacking for contributors.