U računarstvu, mikrokernel (skraćeno i kao μ-kernel) najosnovnija je količina softvera koja može pružiti mehanizme implementacije operativnog sistema (OS). Obezbjeđuje samo dovoljan broj mehanizama koji dozvoljavaju osnovne funkcije za pokretanje nekog računarskog sistema. Ovi mehanizmi uključuju upravljanje niskim nivoom adresnog prostora, upravljanje nitima i komunikaciju među procesima (IPC).
Ako hardver osigurava višestruke prstene zaštite ili procesorske modove, mikrokernel može biti jedini softver koji se izvršava. Tradicionalne funkcije operativnog sistema, kao što su upravljački programi uređaja, razni protokoli i datotečni sistem, obično se uklanjaju iz samog mikrokernela i umjesto toga se pokreću u korisničkom prostoru.[1]
Što se tiče veličine izvornog koda, mikrokerneli su obično manji od monolitnih kernela. Mikrokernel MINIX 3, na primjer, ima samo 12.000 linija koda.[2]
Historija
Godine 1967, danski računarski pionir Per Brinch Hanses, u kompaniji Regnecentralen instalirao je prototip RC 4000 u poljskoj tvornici gnojiva u Puławyju. Računar je koristio mali operativni sistem u realnom vremenu prilagođen potrebama postrojenja. Brinch Hansen i njegov tim su se zabrinuli zbog nedostatka uopćenosti i višestrukog korištenja RC 4000 sistema. Plašili su se da će svaka instalacija zahtijevati drugi operativni sistem pa su počeli istraživati nove i općenitije načine stvaranja softvera za RC 4000.[3] Godine 1969. njihov rad je rezultirao završetkom RC 4000 Multiprogramming sistema.
Nakon rada Brincha Hansena, mikrokerneli su razvijani od 1970-ih.[4] Pojam mikrokernel pojavljuje se negdje oko 1981. Mikrokerneli su bili zamišljeni kao odgovor na promjene u svijetu računara, i na nekoliko izazova prilagođavanja postojećih "monokernela" ovim novim sistemima. Stalno su se razvijali novi upravljački programi uređaja, protokoli, datotečni sistemi i drugi sistemi niskog nivoa, što je sputavalo razvoj, pa se tražio neki način izdvajanja ovih funkcija na korisnički prostor.
Appleov MacOS, objavljen 2001, koristio je hibridni kernel pod nazivom XNU, koji je bio kombinacija modifikovanog OSFMK 7.3 kernela sa kodom iz BSD UNIX-a.[5] Ovaj kernel se također koristi u iOS, tvOS i watchOS. Od 2012. GNU Hurd, baziran na Machu, također je funkcionalan i uključen u testne verzije Arch Linuxa i Debiana .
Mikrokerneli su blisko povezani sa egzokernelima.[6] Oni također imaju zajedničkih karakteristika sa hipervizorima,[7] s tim da su oni specijalizovani su za podršku virtualnim mašinama.
Dan Hildebrand (1992). "An Architectural Overview of QNX". Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures: 113–126. CiteSeerX10.1.1.459.4481. ISBN1-880446-42-1. – the basic QNX reference.
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. (mart 1992). "Microkernel Operating System Architecture and Mach". Journal of Information Processing. 14 (4).CS1 održavanje: više imena: authors list (link) – the basic Mach reference.