I want to become a Kernel developer

Darkstar757

Diamond Member
Feb 1, 2003
3,190
6
81
I have a BS in CS but its has been several years since I coded hardcore.

I want to get into kernel development and I know that my c has to be great. Can someone point me in the right direction to get started and on my way to becoming a great kernel developer.



Thanks,
Darkstar
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
I have zero experience at Linux kernel development, but I'll go out on a limb and say that you can get started by fetching the source for the most recent version of the kernel, get your tools installed, and get to the point where you can build it and play with it. That ought to occupy a few days and teach you quite a bit.
 

exdeath

Lifer
Jan 29, 2004
13,679
10
81
Intel systems programming manual will come in handy. You must be able to eat, sleep, and crap CPU ring 0, segment registers, and memory and interrupt organization. Also get a generic book on operating system basics that covers things like threading, processes, memory maps, mutexes, semaphores, scheduling, interrupt handling, file management, defered procedure calls, switching and communicating between user mode and kernel mode, etc. You'll be dealing with a lot of it.

Then start with a kernel SDK example framework and make something simple like a dynamic ram drive driver that you can load and unload at will, then move on to turning LEDs on and off via the serial port by writing a kernel mode driver that a user mode program can access, and things like that. Then start probing and enumerating the USB bus, and so forth. One step at a time. And have a computer that reboots really fast... a mistake in kernel land = frozen machine, at best case. Trashed file system at worst. There is zero protection from yourself in kernel mode.
 

Rip the Jacker

Diamond Member
Dec 29, 2004
5,415
1
76
Originally posted by: exdeath
Intel systems programming manual will come in handy. You must be able to eat, sleep, and crap CPU ring 0, segment registers, and memory and interrupt organization. Also get a generic book on operating system basics that covers things like threading, processes, memory maps, mutexes, semaphores, scheduling, interrupt handling, file management, defered procedure calls, switching and communicating between user mode and kernel mode, etc. You'll be dealing with a lot of it.

Then start with a kernel SDK example framework and make something simple like a dynamic ram drive driver that you can load and unload at will, then move on to turning LEDs on and off via the serial port by writing a kernel mode driver that a user mode program can access, and things like that. Then start probing and enumerating the USB bus, and so forth. One step at a time. And have a computer that reboots really fast... a mistake in kernel land = frozen machine, at best case. Trashed file system at worst. There is zero protection from yourself in kernel mode.

:(

Your nerdism >> mine.