A header fájlok ott vannak az include mappában, szépen mappákban, rendszerezve.
A kernel forrása mellé mellékelve van egy "Makefile" nevű fájl, az mondja meg a fordítónak, hogy mi merre van, mit hogyan csináljon, ilyesmi.
Ha a terminálban elnavigálsz a kernel forrását tartalmazó mappába, és kiadod a
make menuconfig
parancsot, akkor meg tudod "nézni" a kernel képességeit, és tudod állítgatni, hogy a kernel fordítása során "mit tudjon majd" a kerneled. Magyarul meg tudod mondani neki, hogy mely modulok forduljonak le, milyen képességekkel rendelkezzen, milyen driverek(ezek is modulok) kellenek neked, és alapvető beállításokat is módosíthatsz benne.(ehhez egyébként némi "help", azaz segítség/leírás is van a kernel forrásához mellékelve, ezt eléred a "menuconfig"-ból/tehát a fent említett terminálos beállítófelületből/ is, illetve kiírja, hogy esetleg merre találsz több infót róla.)
Szerintem ez is egy mód a kernel működésének megértéséhez, nem csak a forrás nézegetése. Én pl saját magamnak szoktam kernelt fordítani, és azt használni újabban.(habár elméletileg nem ajánlott az ubuntu "help" oldala szerint :) )
Kicsit bővebb leírás a kernel fordításról:
https://help.ubuntu.com/community/Kernel/Compile
Illetve, ha nem tudsz angolul, akkor szívesen lefordítom, illetve ez alapján írok egy kis how-to-t. (nem tudom hogy áll a magyar ubuntu dokumentáció, igazság szerint ilyen infót még nem kerestem benne)
Illetve itt egy jó könyv egy nagy nevű kernel fejlesztőtől.
http://www.kroah.com/lkn/
(bár kicsit talán régi, de sok hasznos dolog van benne)