Az operációs rendszerek alapvetően három részre bonthatók: a felhasználói felület (a shell, amely lehet egy grafikus felület, vagy egy szöveges), alacsony szintű segédprogramok és a kernel (mag) amely közvetlenül a hardverrel áll kapcsolatban.
Vannak olyan operációs rendszerek, melyekben a kernel (mag) és a shell (héj) különválnak, így lehetőség nyílik ezek kombinációjára. Más rendszereknél, mint például a Windowsnál ez a különválasztás mind elméleti, mind gyakorlati szempontból nehezebb.
Négyféle kerneltípus ismert, az úgynevezett
- monolitikus kernel a
- hibrid kernel
- mikrokernel, és a kevésbé ismert
- exokernel.
A Unix monolitikus kernelre épül, ami mára elavultnak tekinthető, bár szerverek esetén szerencsés az ilyen. Ezeken a rendszereken nem különülnek el alapvetően a folyamat vezérlési, tárolási feladatok, illetve a rendszerhívások. A mikrokernel annyira kicsi, amennyire lehet, gyakorlatilag az egyetlen feladata az erőforrások újraelosztása az alkalmazások között. A Linux kernele hibrid kernel, azonban a programkód fordításakor megszabhatjuk, hogy mely részek kerüljenek betölthető állapotba, illetve melyek ne, így lehetőségünk van akár monolitikus kernel készítésére is, ami különösen szerver operációs rendszerek esetén célszerű. A Windows által használt hibrid kernel is ránézésre egy mikro kernel, de itt kernel módban fut az üzenetkezelés (Application IPC), és az eszközillesztők. (vö.: A Windows Vista új drivermodelljén egyes elemek átkerültek a felhasználói rétegbe)
A kernel feladatai
- Ki- és bemeneti eszközök kezelése (billentyűzet, képernyő stb.)
- Programok, folyamatok futásának kezelése
- Indítás, futási feltételek biztosítása, leállítás
- Memória-hozzáférés biztosítása
- Processzor idejének elosztása
- Virtuális gép mutatása a nemkívánt taszkok felé (pontosabban a hardver által biztosított lehetőségek szoftver-kiegészítései)
- Háttértárolók kezelése
- Rendszerhívások kiszolgálása
- Fájlrendszer
- egyéb
A shell feladatai
- Kapcsolattartás a felhasználóval (felhasználói felület)
- Alkalmazások futásának kezelése (indítás, futási feltételek biztosítása, PIT leállítás)