Mikrokernel vs. monolitické jadro

Sekcia: Ostatné 16.08.2011 | 23:46
Avatar Miloš Linux Mint, Ubuntu studio  Používateľ
Zdravím. Dneska som sa akosi začítal niečo do Linuxu ako takého a zaujíma ma prečo používa monolitické jadro (kernel). Stručne aké má výhody a nevýhody oproti mikrokernelu. Niečo málo som sa aj dočítal ale nejde mi to hlavy prečo Linux používa monolitické. Narazil som aj na diskusiu (skor hádku) Linusa tovardsa a tvorcu Minixu Andy Tanenbauma ako sa hádali o mikrokerneli vs monolitickém jadrom. Jediné čo som z toho pochopil bolo že monolitické je celé vkope zo všetkým pre systém a je rýchlejšie a lepšie využíva hardvér ale je veľmi obsiahle jadro. Mikrokernel je zasa iba to najmenej čo je pre systém treba a ostatné veci čo sa starajú o beh systému bežia "na strane užívateľa" ako malé programy (servery) čo sa starajú o dané veci.
Rozumie sa do toho niekto viac že by mi to stručne objasnil prečo sa Linus rozhodol takto a ako to vlatne je? :)
http://necyklopedia.wikia.com/wiki/Linux
    • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 00:50
      Avatar bedňa LegacyIce-antiX  Administrátor
      Rozhodol sa asi len kvôli komplikovanosti návrhu mikrokernelu a serverov. Inak ten návrh má samé výhody, padne jedna časť systému a mikrokernel ju znova naštartuje. O výhodách Linuxu neviem :) Ono v skutočnosti je to ale tak, že keď niečo padá je tam chyba a treba ju opraviť, čo by sa možno pri návrhu mikrokernelu nebralo až tak vážne :) Páč padne a zase ide.
      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 00:54
      Avatar Tomáš Srnka Barz čo, už asi všetko  Administrátor
      Velmi jednoducha odpoved: pretoze sa lahsie programuje a je rychlejsie. V davnych dobach ked sa pocitala pamat na kilobajty, pocital sa kazdy cyklus na CPU a pipelining bol v plienkach, tak sa pouzivalo co bolo rychlejsie.

      Inac aj WinNT mal byt u-kernel. Najviac sa k mikrokernelu z bezne pouzivanych veci blizi MacOS X s ich Darwin kernelom (ale nie je to mikrokernel!).

      Inac velmi pekny clanok je http://www.vmars.tuwien.ac.at/courses/akti12/journal/04ss/article_04ss_Roch.pdf
      Dlho som robil linuxos.sk, neskôr založil vpsFree.cz, posledných pár rokov ako tech. riaditeľ vo Websupporte
    • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 01:45
      Avatar Filip Horňák ArchLinux  Používateľ
    • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 09:38
      Avatar Miroslav Bendík Gentoo  Administrátor
      Rozdiel vo výkone medzi mikrokernelom a monolitickým kernelom je zanedbateľný (na x86 < 5%, čo je hodnota, ktorú veľmi rád obetujem za stabilitu). Pre dobre navrhnutý mikrokernel je aj jednoduchšia tvorba driverov (konečne žiadne výhovorky tvorcov hardvéru, že každý týždeň treba prepísať drivery). No a prirodzene čo sa týka padania je to skôr teoretická výhoda. Reálne padať pravdepodobne bude pretože deravý býva aj hardvér, na ktorom to beží. Nie je až taký problém dostať grafickú kartu do stavu, kedy je prakticky mŕtva až do reštartu.
      • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 21:22
        Avatar m4jkl   Používateľ
        "na x86 < 5%"

        zdroj?
        • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 22:21
          Avatar Miroslav Bendík Gentoo  Administrátor
          trochu starší článok, moderné mikrokernely ako L4 majú práve tých 8-10% spomalenie, ale pri prepise linuxových modulov na natívnu podporu L4 sú čísla nižšie.
    • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 10:50
      Avatar Fridolín Pokorný Fedora 21  Používateľ
      Linux je monoliticke jadro s modularnou strukturou, co je vylepsena koncepcia monolitickeho jadra. Inac hlavna nevyhoda mikrokernelov bola, ze sa vyuzivalo relativne vela systemovych zdrojov pre samotnu komunikaciu medzi servermi, no to sa posledne roky uz zlepsuje. Pan Tannenbaum mal kusok ine predstavy o modernych operacnych systemoch a povazoval Linux za stratu casu a krok spat, no to je v tej diskusii podrobnejsie popisane.
    • Re: Mikrokernel vs. monolitické jadro 17.08.2011 | 15:00
      Avatar Stanislav Hoferek Greenie 18.04  Používateľ
      možno hlúpa otázka, ale čo vlastne jadro obsahuje?

      z pohľadu mňa ako laika je to hlavne softvér potrebný na to, aby sa umožnilo ďalším programom efektívne využívať hardvér počítača. Alebo nie? Základné inštrukcie, ovládače, podpora rôznych spešl vecí... na čo som zabudol?
      • Re: Mikrokernel vs. monolitické jadro 18.08.2011 | 01:11
        Avatar Miloš Linux Mint, Ubuntu studio  Používateľ
        Klik, tu je to stručne :)
        http://necyklopedia.wikia.com/wiki/Linux
        • Re: Mikrokernel vs. monolitické jadro 18.08.2011 | 02:46
          Avatar Fridolín Pokorný Fedora 21  Používateľ
          Necital som to cele, len mikrojadro (neviem, preco si ma tam odkazal). Inac multitasking nemusi byt cely implementovany v jadre.