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.