Mikrokernel

A mikrokernel az operációs rendszer kernel egy minimális formája, amely néhány alapvető funkciót – avagy rendszerhívást – valósít meg, a nélkülözhetetlen operációs rendszer szolgáltatások realizálásához. Ilyenek például a címtartomány menedzsment, szál menedzsment, processzek közti kommunikáció. Minden más szolgáltatás, amely általában a kernel feladata – például hálózatkezelés – felhasználói szervereknek nevezett programok valósítanak meg. (Nem keverendő össze a szerver szó kiszolgáló jelentésével!)

Ezen koncepció későbbi kiegészítései olyan új architektúrákhoz vezettek, mint a nanokernelek, exokernelek és a hardver absztrakciós rétegek (HAL, Hardware Abstraction Layer).

A rendszermagok méretének növekedése 

A korai operációs rendszerek lényegesen kisebb rendszermaggal rendelkeztek, ami részben annak volt köszönhető, hogy rendelkezésre álló memória is kevesebb volt. A számítógépek képességeinek növekedésével, a rendszermagra háruló feladatok is nőttek. A UNIX rendszer korai változatai egészen szerény méretű maggal rendelkeztek, pedig eszközmeghajtókat és fájlrendszer kezelőket is tartalmaztak. Amikor a címtartomány 16-ról 32 bitesre nőtt, a rendszermagok tervezését már nem hátráltatták a hardver szűkös korlátjai, így megkezdődött a rendszermagok méretének növekedése. (Lásd: A UNIX története).

A Berkeley UNIX (BSD) indította el a nagy kernelek korszakát. Az alaprendszeren kívül, mely a CPU-t, a merevlemezt és a nyomtatót tartalmazta, a BSD a rendszerhez hozzáadott további fájlrendszereket, egy teljes TCP/IP hálózati rendszert, és számos "virtuális" eszközt, melyek lehetővé tették a létező programoknak, hogy a hálózattal dolgozzanak.

Ez a növekedés több évtizedig folytatódott, eredményezve a UNIX, Linux és Microsoft Windows kerneleket, amik több millió sornyi kernelkódból állnak. Például a Red Hat Linux 7.1 kernelében körülbelül 2.5 millió kódsor található (összesen 30 millió), míg a Windows XP kétszer ennyi kódsorból áll.

Példák 
Példák mikrokernelekre és mikrokernel alapú operációs rendszerekre:

 AmigaOS
 Amoeba
 Brainix
 Chorus (mikrokernel)
 Coyotos
 EROS (Extremely Reliable Operating System)
 K42
 KeyKOS (nanokernel)
 Az L4 microkernel család, ami a TUD:OS és a GNU Hurd rendszerekben található.
 LSE/OS (nanokernel)
 Mach (A GNU Hurd, NEXTSTEP, OPENSTEP rendszerekben.)
 XNU (A Mac OS X rendszerben.)
 MERT
 Minix
 MorphOS
 Phoenix-RTOS
 QNX
 RadiOS
 Singularity
 Spring operációs rendszer
 Symbian OS
 VSTa

Publikációk 

 Dan Hildebrand: An Architectural Overview of QNX, Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures – the basic QNX reference. 1992, .
 Tanenbaum, A., Herder, J. and Bos, H.: Can We Make Operating Systems Reliable and Secure?. 2006.
 Black, D. L., Golub, D. B., Julin, D. P., Rashid, R. F., Draves, R. P., Dean, R. W., Forin, A., Barrera, J., Tokuda, H., Malan, G., and Bohman, D.: Microkernel Operating System Architecture and Mach. J. of Information Processing 14(4). – the basic Mach reference. 1992.

Kapcsolódó szócikkek 

 Rendszermag
 Monolitikus kernel
 Hibrid kernel
 Exokernel

További információk 
 Prog.hu – Mikrokernel architektúrák
 Leírása a Portland Pattern Repository-ban 
 The Tanenbaum-Torvalds Debate, 1992. január 29. 
 Tanenbaum-Torvalds Debate: Part II, 2006. május 12. 

Operációs rendszerek

fi:Käyttöjärjestelmän ydin#Mikroydin
fr:Noyau de système d'exploitation#Systèmes à micro-noyaux
it:Kernel#Microkernel