bélyegkép|jobbra|A mikrokernel sematikus ábrája 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 Portlandi Mintatárban The Tanenbaum-Torvalds Debate, 1992. január 29. Tanenbaum-Torvalds Debate: Part II, 2006. május 12.
Kategória:Operációs rendszerek