If you want to program kernel modules, it does not matter which distribution you choose. You will need to recompile the kernel from the source code and install the new kernel yourself. Even for the kernel module, you will want to build the last kernel and develop against it, otherwise you will not be able to get the module accepted in mainline.
An alternative, if the module is not released, is development against a specific version of the kernel. In this case, the choice of distribution should be selected based on the target module, and not the development environment.
So, choose a distribution based on what you like: 1) Desktop computers - (GNOME, KDE, others) 2) Ease of use - (Ubuntu, Fedora, etc. Against Arch, Gentoo) 3) Cutting edge against Stable ( Arch, Fedora vs Ubuntu vs Debian, Red Hat, CentOS)
Then go to kernelbewbies to learn a little about getting started with the kernel software (where you can get the source code, how to compile it). Then read Greg Croah-Hartman's book on Linux device drivers. Interfaces will be changed (currently it is written about kernel version 2.6 and version 3.6). It can be found on the Internet here.
You will also want to learn how to use git. And more importantly, how to use git to create a patch and send it by email without messing it up! I do not have a website for this, but a little search query will help.
dave
source share