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!)