First, read [:KernelDevViewpoint:this page] to get an idea of what it's like to be a kernel developer. = Picking what you want to work on = It's often useful to figure out what subsystem you would like to work in. There are many different subsystems in the kernel, like wireless, USB, the scheduler, filesystems, etc. The best way to get into kernel hacking is to focus on a subsystem that you are already interested in. Once you've found a subsystem, you should join its [http://vger.kernel.org/vger-lists.html subsystem mailing list] to get a feel for where most of the work is being done. = What if I don't know what I want to work on? = * Help the [http://janitor.kernelnewbies.org/ Kernel janitors] project, making easy modifications and cleanups to the Linux kernel source code, together with people who can explain you why those changes are needed. This helps you get familiar with the Linux kernel source code, and at the same time you do something useful for the Linux community. * Find bug reports on the linux-kernel mailing list or the [http://bugzilla.kernel.org/ Kernel Bug Tracker] and help fix them. In the beginning you may be restricted to helping reproduce the bug and tracking down what is roughly the cause of a bug, but after a while you will become familiar with the source code and will be able to fix bugs yourself.