Az operációs rendszer belso szerkezete többféle lehet: például monolitikus, rétegzett (layered), virtuális gépeken alapuló valamint a kliens-szerver modellen alapuló.
A monolitikus operációs rendszer (mint például a UNIX) magja egyetlen programból áll. Ebben a programban az eljárások szabadon hívhatják egymást, a köztük levo kommunikáció eljárásparamétereken és globális változókon keresztül zajlik.
A rétegzett szerkezetu operációs rendszer magja több modulból áll, és a modulok között egy export-import hierarchia figyelheto meg: minden modul kizárólag a hierarchiában alatta levo modul interfészét használja.
A virtuális gépeken alapuló operációs rendszerben központi részen helyezkednek el a virtuális gépeket menedzselo ( hypervisor) rendszerrutinok. Ez a program lehetové teszi a hardver eroforrásainak (CPU, diszk, perifériák, memória, ...) több operációs rendszer közötti hatékony elosztását. A hypervisor leggyakrabban a számítógép hardverét "többszörözi meg" úgy, hogy a rajta futó operációs rendszerek azt higgyék, hogy övüké az egész gép (pedig "csak" egy virtuális gépen futnak). Ha például egy hardver-megszakítás generálódik, akkor ez a szoftver adja át annak a virtuális gépnek, amelyre ez tartozik (az, hogy kire tartozik egy hardver-megszakítás, többféleképpen eldöntheto: például az alapján, hogy a kérdéses I/O eszközt ki használta utoljára). Ilyen hypervisor például az IBM VM/370. Az általa létrehozott és irányított virtuális gépek az IBM /370-es hardver "pontos másolatai", és tudnak futtatni (egymástól függetlenül) AIX, CMS, TSO és más operációs rendszereket.
A kliens-szerver modellen alapuló operációs rendszerek esetében az operációs rendszer központi magja általában egy ún. mikrokernel, és maga az operációs rendszer itt több párhuzamosan futó folyamatból áll. Mindegyik folyamat az operációs rendszer valamely jól elkülönítheto részét valósítja meg (például lehet egy vagy akár több fájlszerver folyamat, egy diszkvezérlo, egy printervezérlo folyamat a rendszerben). Ezeknek a folyamatoknak valamilyen kommunikációs eszközt kell biztosítani, és ez a mikrokernel egyik fo feladata (a memóriakezelésen kívül). A legtöbb ma használt ilyen kernel az üzenetátadást (message passing) teszi lehetové a párhuzamosan muködo folyamatok közötti kommunikáció elvégzése érdekében. Az alacsonyszintu üzenetátadás muködhet két teljesen különbözo host között is ugyanúgy, mint egy hoston belül különbözo folyamatok között, ami a kommunikáció formáját egységessé teheti egy gépen belül és két gép között (ezt a transzparenciát nagyon nehéz elérni).