I would recommend straight C for Kernel development. With OS development you really want to know what is happening 'under the covers.' I feel C++ hides too much for low-level development.
Good resources:
- http://osdever.net/bkerndev/Docs/intro.htm
- http://www.osdever.net/
- http://www.osdever.net/tutorials/hello_btldr.php?the_id=85