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
szerkesztésA 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
szerkesztésPé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
szerkesztés- Dan Hildebrand: An Architectural Overview of QNX, Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures – the basic QNX reference. 1992, ISBN 1-880446-42-1.
- 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.