Kernel-ul Linux consta din cateva parti imoportante: managementul proceselor, al memoriei, driverele pentru dispozitive hardware, driverele pentru sistemele de fisiere, managementul retelei, si altete. Figure 2-1 arata cateva:
Probabil ca cele mai importante componente ale kernel-ului, fara de care n-ar merge nimic, sunt gestiunea (managementul) memoriei si a proceselor. Gestiunea memoriei are grija de alocarea zonelor de memorie si a spatiului de swap pentru procese, parti ale nucleului si buffer cache. Gestiunea proceselor creaza procesele, implementeaza multitaskingul prin alternarea proceselor active, acordandu-le timp de procesor.
La nivelul inferior nucleul contine drivere pentru toate dispozitivele hardware suportate. Cum exista un foarte mare numar de dispozitive hardware, numarul driverelor e foarte mare. Exista multe dispozitive similare, care difera prin modul in care sunt controlate soft. Similaritatile fac posibile clase generale de drivere care suporta operatii similare; fiecare membru al clasei are aceeasi interfata catre restul nucleului, dar difera prin ceea ce trebuie sa faca efectiv. De exemplu, toate driverele de disk arata la fel pentru restul nucleului, pentru ca toate permit operatii precum `initializeaza drive-ul', 'citeste sectorul N', 'scrie sectorul N'.
Unele servicii soft furnizate de kernelul insusi au proprietati asemanatoare, deci pot fi abstractizate in clase. De exemplu, diferitele protocoale de retea au fost abstractizate intr-o interfata de programare, si anume The BSD Socket Library. Un alt exemplu este al sistemului de fisiere virtual (virtual filesystem) (VFS) care abstractizeaza operatiile asupra sistemului de fisiere, fara a tine cont de implementare. Fiecare tip de sistem de fisiere (filesistem) implementeaza fiecare operatie. Cand cineva incearca sa utilizeze un sistem de fisiere, cererea merge pe VFS, care trimite cererea catre driverul sistemului de fisiere potrivit.