Todo el kernel (núcleo) de Linux, está escrito en C (y algo en C++), por lo que para esta asignatura es fundamental dominar las bases del C.
Se deben tener claros todos los conceptos fundamentales, como son los tipos de datos básicos, punteros, librerías y cómo funcionan los compiladores, linkadores y ensambladores.
En las aulas está disponible para la compilación de C el gcc 1.12, que probablemente es el mejor compilador de C que existe, y con el que el alumno tendrá que familiarizarse antes de meterse con la programación del kernel.
La mejor guía para la programación en C en sistemas Linux o tipo Unix,
sigue siendo la referencia [2], pero si
no existen ejemplares disponibles se puede recurrir a las
páginas del manual (man 3 printf, man 3 malloc,
info malloc son ejemplos de como obtener ayuda sobre estas
funciones básicas, con info libc, que es la libreria de C,
se obtiene ayuda sobre todas las funciones habituales).
Si con todo esto, aún se presentan problemas, se puede consultar la documentación online sobre C y Linux que esta por todas partes en la red. En cualquier buscador1.13, se puede probar con C tutorial y aparecerán miles de sitios. Aquí se proponen algunos:
http://directory.google.com/Top/Computers/Programming/Languages/C/Tutorials/
http://www.eskimo.com/~scs/C-faq/top.html
http://www.cs.cf.ac.uk/Dave/C/CE.html
http://www.lysator.liu.se/c/bwk-tutor.html (¡Por B. W. Kernighan!)
http://www.graylab.ac.uk/doc/tutorials/C/
http://labsopa.dis.ulpgc.es/prog_c/ (¡En castellano!)