-   Linux - Newbie (
-   -   Linux kernel development (

sumanch 03-15-2010 02:46 AM

Linux kernel development
Hi ,
I want to gain experience in Linux kernel development. What is the best way to start this? Is there any open source project available where I can contribute? Please let me know.

Simon Bridge 03-15-2010 03:52 AM

Welcome to LQ and - that's the spirit!

The best way to start this is to learn to compile the kernel. read the help files in the source code and read the kernel forums and mailing lists. Just read them, get a feel for the discussions. Kernel-org has suggestions on where to start.

To participate in such high-powered cicles though - really really really read the advice link in my sig. I mean it.

Find a part of the kernel that interests you and start playing with the code in that area. Work out what does what and why things are set up the way they are. When you think you are getting the hang of it, start talking to other people working on it. Back up what you say with code. Listen to them about what needs doing.

The open-source project you can contribute to is the kernel project :) have fun.
Usually, you pick a driver though, especially if you happen to have poorly or non-supported hardware yourself. Look for drivers you care about and check out the project pages for a todo list.

Good luck and happy hacking.

sumanch 03-15-2010 04:20 AM

Thanks, Appreciate your advice. I will start the way you suggested.

AngTheo789 03-15-2010 05:02 AM

If your interest in rather generic (you don't have a special need like providing a custom driver for any device you own), then you should get yourself a strong PC for development and building, and also get 2 or 3 test computers (try different types of hardware, even different CPU architectures). Then set up a proper build environment for cross-compilations and get to the point where you can build kernels for all the test PC's, along with all the boot stuff.
Getting that far collect a few books on kernels and concepts (Linux, BSD, MACH, HURD, Minix, BeOS/Haiku) to get a feel for the differences in approaches. Then pick a field that you like most (filesystem, drivers, etc) and experiment with modifications and concepts for different types of applications. For example, find out for yourself, why filesystems can be designed differently for small-size developer files and large-sized videodata.

All times are GMT -5. The time now is 10:07 AM.