Mikrokernel

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, 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.

Kapcsolódó szócikkek

További információk

  • Prog.hu – Mikrokernel architektúrák
  • Leírása a Portland Pattern Repository-ban (angolul)
  • The Tanenbaum-Torvalds Debate, 1992. január 29. (angolul)
  • Tanenbaum-Torvalds Debate: Part II, 2006. május 12. (angolul)
Sablon:Operációs rendszer
  • m
  • v
  • sz
Általános
  • Advocacy
  • Összehasonlítás
  • Történet
  • Hobbyist development
  • Idővonal
  • Elterjedés
Kernel
Komponensek
Folyamatkezelés
Koncepciók
  • Kontextusváltás
  • Megszakítás (-vektor, -kezelő)
  • IPC
  • Processz
  • Process control block
  • Szál (thread)
Ütemező
  • Többfeladatosság
  • Fixed-priority preemptive
  • Multilevel feedback queue
  • Preemptive
  • Round-robin
  • Shortest job next
Memóriakezelés és
erőforrás-védelem
  • General protection fault
  • Memóriavédelem
  • Lapozás
  • Security rings
  • Segmentation fault / Bus error
  • Virtuális memória
Tároló-hozzáférés és
fájlrendszerek
  • Boot loader/Boot
  • Defragmentáció
  • Device file
  • Fájlattribútum
  • Inode
  • Journal
  • Partíció
  • Virtuális fájlrendszer
  • Virtual tape library
Lista
Egyéb koncepciók
Nemzetközi katalógusok
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap