Mis vahe on monoliitsel tuumal ja mikrokernelil?


Vastus 1:

Monoliitne kernel on üks suur protsess, mis töötab täielikult ühes aadressiruumis. See on üks staatiline kahendfail. Kõik kerneli teenused on olemas ja täidetakse kerneli aadressiruumis. Kernel saab funktsioone otse käivitada. Näited monoliitsest tuumapõhistest opsüsteemidest: Unix, Linux.

Mikrokanalites jaotatakse tuum eraldi protsessideks, mida nimetatakse serveriteks. Osa serveritest töötab kerneli ruumis ja osa kasutajaruumis. Kõik serverid hoitakse eraldi ja neid kasutatakse erinevates aadressiruumides. Serverid kutsuvad üksteiselt "teenuseid" üles, saates sõnumeid IPC (protsessidevahelise kommunikatsiooni) kaudu. Selle eraldamise eeliseks on see, et kui üks server ebaõnnestub, saavad teised serverid endiselt tõhusalt töötada. Näited mikrokanalitel põhinevatest opsüsteemidest: Mac OS X ja Windows NT.

1) Monoliitne tuum on palju vanem kui Microkernel, idee sündis 1980ndate lõpus.

2) Monoliitset tuuma kasutatakse Unixis ja Linuxis. Mikrokanaleid kasutatakse QNX, L4 ja HURD. Algselt kasutati seda Machis (mitte Mac OS X-is), kuid muudeti hiljem hübriidtuumaks. Isegi Minix pole puhas kernel, kuna seadme draiverid kompileeritakse kerneli osana.

3) Monoliitsed tuumad on kiiremad kui mikrokernelid. Esimene mikrokeha Mach oli 50% aeglasem kui monoliitne tuum, samas kui hilisem versioon nagu L4 oli ainult 2% või 4% aeglasem kui monoliitse tuuma.

4) Monoliitsed tuumad on üldjuhul mahukad. Puhas mikrokernel peab olema väikese suurusega, et see mahuks protsessori L1 vahemällu (esimese põlvkonna mikrokernel).

5) Monoliitsetes tuumades asuvad seadme draiverid kerneli ruumis, Mikrokeele puhul aga seadme draiverid kasutajaruumis.

6) Kuna seadme draiver asub kerneli ruumis, muudab see monoliitse tuuma vähem turvaliseks kui mikrokernel ja draiveri rike võib põhjustada krahhi. Mikrokehad on kindlamad kui monoliitne tuum, seetõttu kasutatakse neid mõnes sõjaväeseadmes.

7) Monoliitsed tuumad kasutavad IPC tagamiseks signaale ja pistikupesasid, mikrokeele lähenemine kasutab sõnumijärjekordi. Esimese genti mikrokanalid rakendasid IPC-d halvasti, seega olid kontekstilülitid aeglased.

8) Uue funktsiooni lisamine monoliitsele süsteemile tähendab kogu kerneli ümberkompileerimist, samas kui mikrokanalite abil saate lisada uusi funktsioone või plaastreid ilma uuesti kompileerimata.


Vastus 2:

Siin on lühike video, mille tegin, et aidata teil paremini aru saada!

MONOLIITNE KERNEL

  • Kogu OS asetatakse kerneli sisse. See töötab ühe suure protsessinaKui kõik teenused asuvad kerneli sees, on neil üksainus aadressiruumSuuruses on suurem. Seda on lihtne rakendada / codePerfor performance on kõrge (kuna kernel saab mis tahes funktsiooni käivitada otse kui kõik on kerneli paigutatud) vähem turvaline (kui üks teenus ebaõnnestub, jookseb kogu süsteem kokku)

MIKROKERNEL

  • Kernelisse paigutatakse ainult minimaalne kood (ainult põhimälu haldamine ja protsessidevaheline kommunikatsioonikood) Siin jagatakse tuum protsessideks, mida nimetatakse serveriteks. Teenused (serverid pakuvad teenuseid) on eraldatud, neil on erinevad aadressiruumidSuuruse suurus on väiksem.See on karm juurutamine / codePerformance on madal (kuna serverid on eraldatud, on teenuste kutsumiseks teistest serveritest vaja IPC-d (protsessidevaheline kommunikatsioon), mis nõuab kerneli luba ja suurendab seega juurdepääsu aega ning vähendab jõudlust.) Turvalisem (isegi kui üks teenus jookseb kokku, teised võivad eraldatuse tõttu korralikult toimida)

Vastus 3:

Siin on lühike video, mille tegin, et aidata teil paremini aru saada!

MONOLIITNE KERNEL

  • Kogu OS asetatakse kerneli sisse. See töötab ühe suure protsessinaKui kõik teenused asuvad kerneli sees, on neil üksainus aadressiruumSuuruses on suurem. Seda on lihtne rakendada / codePerfor performance on kõrge (kuna kernel saab mis tahes funktsiooni käivitada otse kui kõik on kerneli paigutatud) vähem turvaline (kui üks teenus ebaõnnestub, jookseb kogu süsteem kokku)

MIKROKERNEL

  • Kernelisse paigutatakse ainult minimaalne kood (ainult põhimälu haldamine ja protsessidevaheline kommunikatsioonikood) Siin jagatakse tuum protsessideks, mida nimetatakse serveriteks. Teenused (serverid pakuvad teenuseid) on eraldatud, neil on erinevad aadressiruumidSuuruse suurus on väiksem.See on karm juurutamine / codePerformance on madal (kuna serverid on eraldatud, on teenuste kutsumiseks teistest serveritest vaja IPC-d (protsessidevaheline kommunikatsioon), mis nõuab kerneli luba ja suurendab seega juurdepääsu aega ning vähendab jõudlust.) Turvalisem (isegi kui üks teenus jookseb kokku, teised võivad eraldatuse tõttu korralikult toimida)