> 2. How to find things to work on as a beginner> --->> Many people new to kernel development have a hard time finding> projects to start out with. The kernel is a large project and it's not> surprising that some people find it hard to work out where to begin.>> A good way to start is by trying to fix some bugs.>> There are plenty of bugs to go around and fixing bugs is a great way> to learn since you need to understand (and thus learn) the code> surrounding the bug in order to fix it properly, so it usually teaches> a lot. Submitting small bug fixes is also a great way to get> comfortable with the patch submission process.>> Finding bugs to fix is easy. Here are some ways to find useful work to> do:> - Run a recent development kernel. If you already know an area that might interest you, use the tree of that subsystem. Otherwise Linus' tree. Or the -mm tree.

> - Build a bunch of 'randconfig' kernels and log the output from the> build. Building some 10-20 randconfig kernels usually exposes plenty> of warnings and/or errors during the build. Fixing some of those> should keep you busy for a while.>> - Grep the kernel source for "FIXME", "XXX" and similar comments. They> often describe areas of the code that has known bugs, could be> optimized, needs review etc. Lots of work to do can be found that way.>> - Look through the Kernel Janitors TODO list> (http://kernelnewbies.org/KernelJanitors/Todo) for items of interest,> then try to fix some of the issues on the list.>> - Go through the kernel Bugzilla (http://bugzilla.kernel.org/) and see> if you can fix any of the many bugs filed in it. There's a metric> butload of bugs filed in there that need attention.