Becoming a Linux kernel developer is something that is quite very expensive. And choosing the right direction might be somewhat difficult. However, there are cool ideas on how to start this beautiful journey, and Contribute to the Linux Kernel.
Therefore, it is quite advisable to take a first step and go through the Eudyptula Challenge series of programming exercises that teaches how to Contribute to the Linux Kernel. It’s all about being proactive because the business is all about bits and helps quite a lot. Contributing to the Linux Kernel comes in three best ways, and has been packaged for you in this site.
Three Ways Beginners can Contribute to the Linux Kernel
1. Improve the code quality
This is about making sure that the code follows the coding style or eliminating the static code checker errors and warnings. It is the easiest type of task and as such it has a very good ratio of difficulty to the learning value. Particularly, it teaches the proper coding style, and then the various areas of the kernel code
The biggest advantage of this kind is that it allows you to learn a lot. And makes you a better programmer with the experience that you get.
The next step, after improving the style, is to actually fix the broken code. The Linux kernel build system uses the sparse static code analyzer which, when enabled, runs over every file that is compiled and if there is anything wrong with it, reports it. It’s just as simple as that.
2. Read the TODOs
After improving the code quality, it is good to move on and seek different kinds of assignments. The source tree contains a number of TODO files which contains descriptions of work that shall be done. This is a starting point and a source of inspiration for anyone willing to do something in the kernel without a real idea on where to start.
At the time of writing there are 53 TODO files in the kernel source tree. It takes a while to execute but at the end all the information is ready for checking out in the /tmp/todolist-kernel.txt file. It might be hard to browse as it contains around 1.2k lines. Nevertheless, choosing the area of interest is a time consuming process. So read carefully and make your choice.
It is good to learn the code and understand how it works to be able to sort out what is done and what is not. So focus on the driver for which you could understand the bullet points from the TODO. It is believed to be a very good approach for newcomers into the Linux kernel development and in general because having a chance to actually accomplish something is very important for self confidence.
It is important to know that there is a significant amount of people working in this area nowadays. So it is good to follow the mailing list just to get the gist of what people are working on.
3. Fix a kernel bug
As any other software project the kernel has bugs. It can be either a direct crash or just a glitch reported in the bug tracking system. Regardless of what it is, fixing it is a great, challenging adventure as fixing bugs is more advanced than improving the code quality.
Do ensure to drop your comment(s) below if you have any