Koja je razlika između monolitnog kernela i mikrokernela?


Odgovor 1:

Monolitna jezgra je jedan veliki proces koji se u cijelosti odvija u jednom adresnom prostoru. To je jedna statična binarna datoteka. Sve usluge kernela postoje i izvršavaju se u adresnom prostoru jezgre. Kernel može izravno pozivati ​​funkcije. Primjeri monolitnih OS-ova utemeljenih na jezgri: Unix, Linux.

U mikrokernelima jezgro se raščlanjuje na odvojene procese, poznate i kao poslužitelji. Neki se poslužitelji izvode u prostoru jezgre, a neki pokreću u korisničkom prostoru. Svi se poslužitelji drže odvojeno i rade u različitim adresnim prostorima. Poslužitelji se međusobno pozivaju na "usluge" slanjem poruka putem IPC-a (Interprocess Communication). Ovo razdvajanje ima tu prednost da ako jedan poslužitelj ne uspije, drugi poslužitelji i dalje mogu učinkovito raditi. Primjeri OS na bazi mikrokernela: Mac OS X i Windows NT.

1) Monolitna jezgra je mnogo starija od Microkernela, ideja je zamišljena krajem 1980-ih.

2) Monolitna jezgra koriste se u Unixu i Linuxu. Mikrokerneli se koriste u QNX, L4 i HURD. U početku se koristio u Macha (a ne u Mac OS X), ali je kasnije pretvoren u hibridni kernel. Čak ni Minix nije čista jezgra jer se upravljački programi uređaja sastavljaju kao dio jezgre.

3) Monolitna jezgra su brža od mikrojedričara. Prvi mikrokernel Mach bio je 50% sporiji od monolitnog jezgra, dok su kasnije verzije poput L4 samo 2% ili 4% sporije od monolitnih jezgara.

4) Monolitne koštice su obično glomazne. Čisti Microkernel mora biti malih dimenzija da bi se mogao uklopiti u L1 predmemoriju procesora (mikro generacija prve generacije).

5) U monolitnim jezgrama, upravljački programi uređaja nalaze se u prostoru jezgre dok su u Microkernelu upravljački programi uređaja smješteni u korisničkom prostoru.

6) Budući da pogonitelj uređaja nalazi se u prostoru jezgre, monolitna jezgra čini manje sigurnom od mikrokernela i ako kvar upravljačkog programa može dovesti do rušenja. Mikrokerneli su sigurniji od monolitnog jezgra, stoga se koriste u nekim vojnim uređajima.

7) Monolitna jezgra koriste signale i utičnice za osiguravanje IPC-a, mikrokernel pristup koristi redove poruka. Mikrokele 1. generacije slabo su implementirale IPC pa su bile spore na kontekstnim prekidačima.

8) Dodavanje nove značajke monolitnom sustavu znači ponovnu kopiranje cijele kernele, dok s mikrookretnicama možete dodavati nove značajke ili zakrpe bez ponovnog kopiranja.


Odgovor 2:

Evo kratkog videa koji sam napravio kako bih vam pomogao da bolje razumijete!

MONOLITSKI KERNEL

  • Čitav OS je smješten unutar kernela. Izvodi se kao jedan veliki proces. Budući da su sve usluge smještene unutar kernela, imaju jedan adresni prostor. Veći je veličina. Jednostavno je implementirati / codePerformance je visok (jer kernel može pozvati bilo koju funkciju izravno kao sve je smješteno u kernel) Manje sigurno (ako jedna usluga ne uspije, cijeli sustav se ruši)

mikrokernelu

  • U jezgri se nalazi samo minimalni minimalni kod (samo osnovno upravljanje memorijom i interprocesni komunikacijski kôd) Ovdje se jezgra raščlanjuje na procese koji se nazivaju serveriAsluge (Serveri pružaju usluge) su razdvojene, imaju različite adresne prostore. za implementaciju / codePerformance je nizak (Budući da su poslužitelji razdvojeni, pa je za pozivanje usluga s drugih poslužitelja potreban IPC (Inter Process Communication) koji zahtijeva dozvolu kernela i na taj način se povećava vrijeme pristupa i smanjuje performanse) Sigurnije (čak i ako se jedna usluga sruši, drugi mogu pravilno funkcionirati zbog odvajanja)

Odgovor 3:

Evo kratkog videa koji sam napravio kako bih vam pomogao da bolje razumijete!

MONOLITSKI KERNEL

  • Čitav OS je smješten unutar kernela. Izvodi se kao jedan veliki proces. Budući da su sve usluge smještene unutar kernela, imaju jedan adresni prostor. Veći je veličina. Jednostavno je implementirati / codePerformance je visok (jer kernel može pozvati bilo koju funkciju izravno kao sve je smješteno u kernel) Manje sigurno (ako jedna usluga ne uspije, cijeli sustav se ruši)

mikrokernelu

  • U jezgri se nalazi samo minimalni minimalni kod (samo osnovno upravljanje memorijom i interprocesni komunikacijski kôd) Ovdje se jezgra raščlanjuje na procese koji se nazivaju serveriAsluge (Serveri pružaju usluge) su razdvojene, imaju različite adresne prostore. za implementaciju / codePerformance je nizak (Budući da su poslužitelji razdvojeni, pa je za pozivanje usluga s drugih poslužitelja potreban IPC (Inter Process Communication) koji zahtijeva dozvolu kernela i na taj način se povećava vrijeme pristupa i smanjuje performanse) Sigurnije (čak i ako se jedna usluga sruši, drugi mogu pravilno funkcionirati zbog odvajanja)