Welcome to week 16 in our 30-week series that profiles the world's leading Linux kernel developers. This week we talk to Jiří Slabý, a young developer who tells us why he likes working on the Linux kernel: "Because no one can really understand the kernel fully. It is a constantly changing ecosystem and one still has to learn something new. And, it is also the people. They taught me real programming."
It is Jiří Slabý. But I bet people have a hard time reading that and even harder time pronouncing it.
What role do you play in the community and/or what subsystem(s) do you work on?
I always do what appears that should be done. Before I did this work for money, I volunteered to rewrite serial drivers to avoid deprecated pci_find_device.
Some time after, I rewrote and merged a wi-fi driver for Atheros 5k cards. I believe the merge and other steps by all the drivers developers pushed Atheros to become open. But there was also a dark side: a flame war I started.
Then I rewrote the HID input layer to be a bus. Even though most of the users use that layer every day, I am glad that nobody really noticed the change. That is good because unnoticed changes means no regressions.
Now I am back to serial and TTY layers. Together with others, I am trying to clean those layers and kick out all that ancient racy and broken code, which did not count with hotplug and other modern stuff.
Concurrently, I am trying to figure out how online kernel patching works to allow 24/7/365 service. And the same as everybody else, there has been also minor stuff like writable limits of processes, handful of fixes and maintenance of some serial drivers I rewrote etc.
Where do you get your paycheck?
SUSE for more than five years. Always as a less-than-a-half-time employee.
What part of the world do you live in? Why there?
Prostejov, a small city in the eastern part of the Czech Republic. I live here because I was born here, grew up here, and I love this place.
What are your favorite productivity tools for software development? What do you run on your desktop?
Vim rules. And also some of the tools one cannot live without. Like Git. My boxen run KDE4 with openSUSE underneath. A development version of openSUSE on my desktop, the latest stable (known as Tumbleweed) on my laptop.
How did you get involved in Linux kernel development?
Because I wanted to build a kernel, but the build system did not work properly for me in some corner case. So I fixed that and it was my first patch.
Then there was a gap when I was working on NetBSD drivers for a Czech backbone networking project. But I returned to Linux, ported the NetBSD drivers to Linux and finally continued working solely on Linux and did the work mentioned above.
What keeps you interested in it?
Because no one can really understand the kernel fully. It is a constantly changing ecosystem and one still has to learn something new. And, it is also the people. They taught me real programming.
What's the most amused you've ever been by the collaborative development process (flame war, silly code submission, amazing accomplishment)?
I always recall a moment when I finally caught a silent corruption bug introduced by someone else. It was in the suspend-to-ram machinery. I remember seven days and nights of thinking and chasing that mistake. It was always that 0xf0 value appeared at some random place in the memory. When I finally could point my finger at a broken piece of code, I was just happy to defeat that bug finally.
What's your advice for developers who want to get involved?
I know how hard is to start on your own, when there is nobody to ask how a particular piece of the kernel is intended to work. If you want to start with the kernel programming and have some kernel buddy in your neighborhood, do not be shy and never hesitate to ask for a help. Studying on your own is the way to go too, but it takes much, much longer.
Also, for that reason I am giving kernel lessons at my alma mater. So check your university handouts if there is not a such course.
What do you listen to when you code?
Often people are not right when guessing here. It is heavy metal (Iron Maiden if I shall pick one), thrash metal (Sepultura) and maybe rock (nobody preferred). But yes, sometimes bluegrass.
What mailing list or IRC channel will people find you hanging out at? What conference(s)?
I am subscribed to the LKML. Since I am still more of a student than a hacker, I am often attending more CS conferences. But from time to time I appear at some Linux conferences, too. Like Linux Kernel Summit last year and maybe LinuxCon Europe this year.