U računarstvu, što je kernel?

U većini računalnih operacijskih sustava, kernel je središnja komponenta. To je most između korisnika i aplikacija i računalnog hardvera. To je također mehanizam koji računalu omogućuje rukovanje s više korisnika i više zadataka istovremeno. Vrste kernela su monolitna jezgra, mikrojezgra, hibridna jezgra, nanokernel i egzokernel.

Kernel upravlja svim resursima sustava računala. To uključuje dugotrajnu pohranu, središnju procesorsku jedinicu (CPU), kratkoročnu memoriju te ulazne i izlazne uređaje. Kada aplikacija treba jedan od ovih resursa, kernel čini resurs dostupnim i dovršava zahtjev.

Ovo rukovanje resursima omogućuje operacijskom sustavu da bude i višekorisnički i višezadaćni. Operativni sustav zapravo ne izvršava više od jednog zadatka istovremeno. Umjesto toga, kernel mijenja zadatke tako velikom brzinom da se čini da računalo obavlja više zadataka. Kernel je također odgovoran za osiguravanje da resursi koje koristi jedan korisnik ili proces nisu prekršeni zahtjevima drugog korisnika ili procesa.

Postoje dvije glavne vrste kernela su monolitna kernel i mikrokernel. Monolitne jezgre koriste nadzornu metodu upravljanja resursima u kojoj se sve usluge operacijskog sustava izvode u istom adresnom prostoru, koji se naziva prostor jezgre. Neke monolitne jezgre mogu učitavati i isprazniti izvršne module. Time se proširuju mogućnosti operacijskog sustava uz istovremeno održavanje minimalne količine koda koji se izvodi u prostoru kernela.

Mikrokerneli pokreću samo minimalnu količinu usluga operacijskog sustava, kao što su upravljanje memorijom, upravljanje nitima i međuprocesna komunikacija u prostoru kernela. Sve ostale usluge, kao što su upravljački programi, korisnička sučelja i upravljanje datotekama, pokreću se u korisničkom prostoru. Mikrokernel ozbiljno smanjuje količinu koda koji se izvodi u načinu rada jezgre.

Hibridna jezgra je kombinacija monolitnog i mikrokernela. Većina sistemskih usluga operacijskog sustava izvodi se u prostoru kernela, poput monolitne jezgre. Postoje i druge usluge, kao što su datotečni sustav i prozorski sustav, koji se pokreću u korisničkom prostoru.
Druge vrste kernela su nanokernel i exokernel. Nanokernel koristi upravljačke programe uređaja za rukovanje gotovo svim uslugama. Egzokernel koristi programe za dodjelu fizičkih resursa.