The Linux kernel community learns how to grow more penguins

The Linux kernel community learns how to grow more penguins

Linux and open source communtiies
Image by : 

opensource.com

The Linux kernel is one of the largest and most successful open source projects today.

report from the Linux Foundation addressing Who Writes Linux (2013) shows that recent releases of the Linux kernel, that happen now at 70-days intervals, include over 10,000 patches, made by more than 1,100 developers, representing over 225 corporations.

Since April 2012, when the previous report was published, almost 92,000 changesets have been merged from 3,738 individual developers representing about 536 corporations, adding close to 2 million lines of code. Cumulatively, the Linux kernel has been the work of more than 11,000 developers collaborating for more than 20 years.

This level of participation and volume of activity is unprecedented, and serves as a model to which most open source projects aspire to. Time has truly been good to Linux and the kernel community, and with time inevitably comes change. This a good thing.

One change happening now to the Linux kernel community is a shift in the demographics of the members.

At a panel held during the Linux Collaboration Summit in 2010, Jonathan Corbet, editor in chief of the Linux Weekly News, asked a group of top Linux kernel developers: "Is the Linux kernel developer crew getting too old?" He was observing the sizes of subsequent generations of developers.

More recently, an analysis of contributions to the Linux kernel Git repository, by software development analysis company Bitergia, revealed that: 

  • Generations are smaller and smaller from about 100-150 (in 2005) to 30-50 per quarter (2013)

  • Older generations are becoming less active

  • Younger generations are quite smaller now than they were six years ago

Maintaining the vitality of this large community does not happen spontaneously. On the contrary, it requires dedication and attention by community members on how to bring new contributors on board, and how to train them and integrate them alongside the well-established developers.

As Jim Whitehurst (Red Hat CEO) put it a recent blog:

Just because people have participated in the past, doesn’t mean they will participate in the future. Engagement has to continue to be stoked and nurtured for participation to be sustained. 

So the Linux Foundation, and others in the Linux community, are undertaking initiatives to bring in new developers to participate in the kernel. For example, reaching out to hobbyist developers to attend the kernel Summit, and adding to the LinuxCon program of activities such as:

  • The newcomers reception: "to give new attendees the opportunity to meet some of the key Linux kernel contributors"

  • The Women in OSS luncheon: "a networking opportunity for women in open source to connect and learn from each other"

  • Scholarships for women who want to attend LinuxCon and CloudOpen but are not sponsored by a company or do not have personal funds to attend

The 2013 report from the Linux Foundation, also mentions that:

The kernel project participated in the Outreach Program for Women for the first time, leading to 41 applications for 7 available positions. During the application process, 374 patches were submitted to the kernel, and over 1/3 of those patches were accepted in the 3.10 kernel release. The intern process is now underway, but the results of that will not start showing up until future kernel releases.

The Outreach Program for Women has been so successful that its contributions to the version 3.12 of the Kernel rank 11th, by number of lines of code, among the top contributing organizations; above IBM and Samsung, for example.

One important aspect of these initiatives is to reduce the barriers of entry, technical and cultural, for new developers to join the Linux kernel community.

A great example is Greg Kroah-Hartman, one of the main developers of the Linux kernel and current maintainer of the stable branch (among many other duties), who wrote the book Linux Kernel in a Nutshell. Greg explains:

I want this book to help bring more people into the Linux kernel development fold. The act of building a customized kernel for your machine is one of the basic tasks needed to become a Linux kernel developer. The more people that try this out, and realize that there is not any real magic behind the whole Linux kernel process, the more people will be willing to jump in and help out in making the kernel the best that it can be.

Greg also observed that many Linux kernel projects, such as his own Linux Driver Project, require little from developers to start, except that their device drivers have the right open source licensing and that their software will compile. Specifically, there's

No barrier to entry into getting code in the staging-tree kernel.

A natural way of promoting the participation of younger people in the Linux kernel development is to reach out to colleges and universities to host training activities where students and faculty learn the ropes of how to contribute to the kernel. This can be particularly focused on understanding the processes and navigating the governance of the kernel. In collaboration with other open source enthusiasts, we have introduced training activities in two college classes that I'm teaching now, and will provide feedback of the experience on Opensource.com.


About the author

Luis Ibanez - Luis Ibáñez works as Senior Software Engineer at Google Inc in New York city.