
Tablica usporedbe
Osnova za usporedbu | mikrokernelu | Monolitna jezgra |
---|---|---|
Osnovni, temeljni | U korisničkim uslugama i kernelu mikrokernela, usluge se čuvaju u zasebnom adresnom prostoru. | U monolitnom kernelu, i korisničke usluge i usluge jezgre čuvaju se u istom adresnom prostoru. |
Veličina | Mikrokernel je manjih dimenzija. | Monolitni kernel je veći od mikrokernela. |
Izvršenje | Spora izvedba. | Brzo izvršenje. |
Produžna | Mikrokernel se lako može rastegnuti. | Teško je proširiti monolitnu jezgru. |
sigurnosti | Ako se servis ruši, to utječe na rad mikrokernela. | Ako se servis ruši, cijeli se sustav ruši u monolitnom kernelu. |
Kodirati | Za pisanje mikrokernela potrebno je više koda. | Za pisanje monolitnog kernela potrebno je manje koda. |
Primjer | QNX, Symbian, L4Linux, Singularnost, K42, Mac OS X, Integritet, PikeOS, HURD, Minix i Coyotos. | Linux, BSD (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95, 98, Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 itd. |
Definicija mikrokernela
Mikrokernel kao kernel upravlja svim sistemskim resursima. No, u mikrokernelu, korisničke usluge i usluge jezgre implementirane su u različit adresni prostor. Korisničke usluge čuvaju se u adresnom prostoru korisnika, a usluge jezgre čuvaju se pod adresnim prostorom jezgre . Time se smanjuje veličina kernela i dodatno se smanjuje veličina operativnog sustava.
Osim komunikacije između aplikacije i hardvera sustava, mikrokernel pruža minimalne usluge upravljanja procesima i memorijom. Komunikacija između klijentskog programa / aplikacije i usluga koje se odvijaju u adresnom prostoru korisnika uspostavlja se putem prijenosa poruka. Nikada ne komuniciraju izravno. Time se smanjuje brzina izvođenja mikrokernela.
U mikrokernelu, korisničke usluge su izolirane od usluga jezgre tako da ako bilo koja korisnička usluga ne uspije, to ne utječe na uslugu kernela i stoga operativni sustav ostaje nepromijenjen . To je jedna od prednosti mikrokernela. Mikrokernel se lako može proširiti . Ako se dodaju nove usluge, one se dodaju korisničkom adresnom prostoru i stoga prostor kernela ne zahtijeva nikakve izmjene. Mikrokernel je također lako prenosiv, siguran i pouzdan.
Definicija monolitne jezgre
Monolitni kernel upravlja sistemskim resursima između aplikacije i hardvera sustava. Ali za razliku od mikrokernela, korisničke usluge i usluge kernela implementirane su pod istim adresnim prostorom. To povećava veličinu kernela i povećava veličinu operativnog sustava.
Monolitni kernel omogućuje raspoređivanje CPU-a, upravljanje memorijom, upravljanje datotekama i druge funkcije operativnog sustava putem sistemskih poziva. Kako se korisničke usluge i usluge jezgre nalaze u istom adresnom prostoru, to rezultira brzim izvršavanjem operacijskog sustava.
Jedan od nedostataka monolitnog kernela je ako jedna usluga ne uspije cijeli sustav se srušio. Ako je potrebno dodati novu uslugu u monolitnom kernelu, cijeli operativni sustav treba mijenjati.
Ključne razlike između mikrokernela i monolitne jezgre
- Osnovna točka na kojoj se razlikuje mikrokernel i monolitni kernel je da mikrokernel implementira korisničke usluge i usluge jezgre u različitim adresnim prostorima, a monolitni kernel implementira i korisničke usluge i usluge kernela pod istim adresnim prostorom .
- Veličina mikrokernela je mala jer se samo kernel usluge nalaze u adresnom prostoru kernela. Međutim, veličina monolitnog kernela je relativno veća od mikrokernela jer se usluge jezgre i korisničke usluge nalaze u istom adresnom prostoru.
- Izvođenje monolitnog kernela je brže jer se komunikacija između aplikacije i hardvera uspostavlja pomoću sistemskog poziva . S druge strane, izvršavanje mikrokernela je spora jer se komunikacija između aplikacije i hardvera sustava uspostavlja putem prolaska poruka .
- Lako je proširiti mikrokernel jer se nova usluga dodaje u adresni prostor korisnika koji je izoliran od prostora jezgre, tako da kernel ne treba mijenjati. Suprotan je slučaj s monolitnim kernelom ako se nova usluga dodaje u monolitnom kernelu, a zatim se cijeli kernel mora mijenjati.
- Mikrokernel je sigurniji od monolitnog kernela jer ako usluga ne uspije u mikrokernelu, operativni sustav ostaje nepromijenjen. S druge strane, ako usluga ne uspije u monolitnom kernelu cijeli sustav ne uspije.
- Monolithic kernel projektiranje zahtijeva manje koda, što dalje dovodi do manje bugova. S druge strane, projektiranje mikrokernela zahtijeva više koda koji dovodi do više bugova.
Zaključak:
Mikrokernel je sporiji, ali sigurniji i pouzdaniji od monolitnog kernela. Monolitni kernel je brz, ali manje siguran jer bilo koji kvar u servisu može dovesti do pada sustava.