Linux device drivers and modules (as the kernel itself) are written in C language.
Howto do kernel development. Converting to a kernel monkey.
Online book: Linux Device Drivers
http://www.xml.com/ldd/chapter/book/index.html but the 3.ed is more up to date. ( EDIT: online PDF edition...)
Device Driver Kit (Download this KIT before you start Open the .iso file in your file browser. Surprise, it also contains the 3.edition of ldd.
Coding in and for the kernel, coding style
A tiny driver sample
There have been some tests on using C++ in the kernel, but honestly, it doesn't fit in.
Linux kernel factory (the hot core revealed )
I collected these links from my super chaotic kernel page... BE WARNED !!
Other importante programming resources....