Sto se modula tice, ja bih te ipak uputio da procitas ovo:
http://www.tldp.org/HOWTO/Module-HOWTO/
Narocito da obratis paznju na prvih par poglavlja, istorijat, "Case for LKM". Lijepo i poprilicno iscrpno objasnjeno sto se dobija modulima, zasto ih treba praviti a postane jasno i gdje ima smisla ne raditi sa modulima.
Sto se velicine kernela tice, stvari su dosta zakomplikovane uvodjenjem initrd-a koga koristi veliki broj distribucija danas. Taj "inicijalni ram disk" sluzi da se u memoriju stavi kod koji se koristi samo prilikom inicijalizacije, a onda se, najcesce, sve to ukloni iz memorije. Kernel, takodje, reciklira i podatke koji su korisceni u inicijalizaciji a poslije nijesu potrebni.
Na mrezi ce se cesto cuti prica o "velicini kernela" gdje ljudi podrazumijevaju velicinu vmlinuz fajla. Meni je oduvijek bila interesantnija finalna slika u memoriji, kad se proces podizanja sistema zavrsi. Kernel to sam ispise (dmesg|less), ali ce podaci biti odvojeni za memoriju u kojoj je kod od memorije koja se koristi za interne kernel strukture (podaci).