Greg Kroah Hartman, fondly known as Greg K-H, is one of the most important people working on the Linux kernel. He is the Linux stable kernel maintainer and is a Linux Foundation Fellow. No, he doesn’t comment the way Linus Torvalds does, but he makes some really important statements. Recently, he clarified once and for all’ that Linux 3.8 is NOT’ a long term kernel. Queries pouring in day and night regarding Linux 3.8 were addressed by one official statement from Hartman.
Diksha P Gupta from Open Source For You caught up with him to understand his views on Linux 3.8, kernel development and his experiences with open source technology. Excerpts:
Q.What is your role in the kernel’s development?
I currently manage the stable releases for the kernel, and am the subsystem maintainer of USB, driver core, staging drivers, serial, tty, char, and a few other minor ones.
Q Why are Linux kernel maintainers so grumpy?
Here are some statistics for you before I answer this one. Around 2,829 developers and 407 companies make the Linux kernel the largest contributed to body of software out there that has ever been created. This is just the number of companies that we know about; there are more that we do not. Hence this is not the exact number and it can grow.
The statistics are regarding kernel releases 3.4 3.8 (March 2012-Feb 2013). They got 6.98 changes per hour.
Linux 3.8 release had 7.38 changes per hour. This release was the fastest we have ever created. That number shows just how well the Linux kernel development model is working. We are growing in terms of the number of developers and in how fast we are developing, overall. Now this is just the patches we accepted; not all of the patches submitted are accepted a lot are rejected, as anyone who has ever tried to submit a patch can attest to.
Here’s a picture of our development model, in a simplified form.
We have about 3000 different developers. One of them makes a patch, and sends it through email to the file/driver maintainer. We have about 700 different maintainers listed in the kernel tree at the moment. That maintainer reviews it, and if it is accepted, this patch is forwarded on to the subsystem maintainer. We have around 85 different subsystem maintainers at the moment, and there are about 160 different subsystem trees that get merged to Linus. Those maintainers have public kernel trees that all get merged into the Linux-next release every day. Then, when the merge window opens up, the subsystem maintainers send their stuff to Linus.
We work with developers to review, edit, suggest, reject, and hopefully, accept patches. We also field bug reports, fix problems, and kick developers who are unresponsive. When developers disappear, we end up taking over the maintenance of their code. Every once in a while we get to do what we really love doing new development.
Q. What kind of patches do you reject?
Here are some examples:
1. The subject line said: Subject: [PATCH 48/48] …, but there were no 47 previous patches sent.
2. Someone sends a series of 15 patches but no given order, in which case, am I supposed to guess?
3. Or a subject line that says: Patches 1, 3-10, but No 2 never showed up.
4. Signed-off-by: in signature: This would require me to hand edit the patch before I could apply it.
Q. What should one do to become a kernel hacker and what are the things that one should be aware of?
Read the documentation/HOWTO file in the Linux kernel source tree to learn all about how to be a Linux kernel developer. I wrote that up to try to codify this question that I had been getting for many years.
Q. Linux has evolved over a period of time. But it is still way behind proprietary software where market share (in the desktop space) is concerned. What do you think are the reasons for Linux not being as popular?
What do you mean by not popular? It’s, by far, the most popular operating system in the world in terms of the number of processors running it. It holds the dominant market share in almost all markets. What other operating system even comes close to Linux?
Q. Recently de Icaza, one of the developers of the GNOME Linux desktop, argued that Linux desktop’s failure’ was rooted in the developer culture that was created around it.He went on to say that Linus, despite being a low-level kernel guy, set the tone for our community years ago when he dismissed binary compatibility for device drivers. The kernel people might have some valid reasons for it, and might have forced the industry to play by their rules, but the desktop people did not have the power that the kernel people did. But we did keep the attitude.What is your take on this statement from de Icaza and do you think there’s any truth in it?
As I am not a desktop developer, I am not qualified to address this. I suggest asking this question to one of the people doing that work, like Michael Meeks. Actually, see his rebuttal to Miguel’s post; it is quite good and I agree with Michael, especially as I worked with him for many years on that same project for SuSE.
Q. What keeps you involved and motivated as far as the development of the Linux kernel is concerned? If it is about the technical challenges involved with the project, there are many other projects involving technical challenges. Why do you choose to stick with the kernel?
My goal is to ensure that Linux succeeds and supports all hardware that is created. As new hardware is constantly being created, I will have lots of things to keep me busy.
Q. Any reasons for not making Linux 3.8 a long-term kernel?
The 3.8 Linux kernel series is NOT going to be a long-term stable kernel release. I will NOT be maintaining it for a long time, and in fact, will stop maintaining it right after the 3.9 kernel is released. The 3.0 and 3.4 kernel releases are both long-term, and both are going to be maintained by me for at least two years. If I were to pick 3.8 right now, that would mean I would be maintaining three long-term kernels, plus whatever normal stable kernels are happening at that time. That is something I cannot do without losing even more hair than I already have. It would be insane to even attempt to do so.
Q. What are the top five Linux distributions, according to you?
How is someone supposed to rank a Linux distribution? The reason there are so many distributions is that they are all targeted towards different usage models and audiences. Because of that, trying to rank them is meaningless.
Q. What is it that the major Linux distributions are doing right and where do they fall short? What kind of contribution do you do to these distributions, if any?
Again, different distros have different goals and audiences. Judge them by how well they meet those goals. As for what I do for distros, I have been a Gentoo developer for a very long time, and I currently also maintain the Tumbleweed version of openSUSE.
Q. Microsoft is using the language of open source technology in recent times. It has also come up with an open source subsidiary. How do you view these efforts from the company?
I really have no idea, given that I do not interact with them in that manner. I do interact with the Linux kernel developers employed by Microsoft, and have known them for many years.
Q. What are your preferred tools for software development?
I use Vim to edit files, Quilt for patch management, Git for source code control, and the kernel build tools (make, gcc, etc) for building kernels.
Q. What computer do you use?
Lots of different ones; it depends on where I am (travelling or at home), and what I am doing (build systems, test systems or remote systems).
Q. What do you run on your desktop?
GNOME 3 with lots of terminal windows and a Web browser.
Q Any reasons for this choice?
It works well for me. My use of a desktop is quite limited I only need a way to control a lot of terminal windows, and multiple desktops and monitors.
Q. What do you think of Indian contributions to the open source projects in general and the Linux kernel in particular?
I really am not aware of where most developers live; so I cannot classify Indian contributions at all. Sorry.
Q. What do you think of the newest generation of kernel contributors? Do you see any star coming up, who can drive the progress of the kernel in the future?
We get new developers all the time, all of which is great to see. And yes, lots of them do wonderful work to help Linux progress. To single any one out would be unfair to those whom I would forget to list.
Q.What is your take on Android and its success?
It’s nice to see.