Linux on monoliittinen kerneli

ksym_

Get The Facts:

Linuxissa kaikki laitteistoa käsittelevä toiminnallisuus ajetaan SAMASSA MUISTIAVARUUDESSA kernelin perusrutiinien (skeduleri, keskeytyksenkäsittelijä, muistinhallinta ... jne) kanssa. Kaikkien laiteajureiden funktiotkin joko ajetaan yhdessä quantumissa atomisesti, tai ne pistetään kernel threadeiksi suorittamaan käskyä omaan tahtiin. Joka tapauksessa, jos jokin laiteajuri (tai mikä tahansa kernelin toiminto) bugittaa, se kaataa koko kernelin. Aina.

Tämä on ihan sama asia, kuin että tekisit yhden C-ohjelman missä on monia funktioita ja tietorakenteita. Jos jokin ohjelman osio kusee, se todennäköisesti jumittaa ohjelman suorittamisen paikoilleen (infinite loop) tai rupeaa spämmäämään ohjelman muistiavaruuden täyteen paskaa (buffer overflow).

Samanlaiset operaatiot voivat tapahtua myös Linux kernelin sisällä jossain bugisessa ajurissa. Ja se tarkoittaa aina, että koko järjestelmä kaatuu. Piste.

Mikrokernelit ovat eri asia:

Jos mikrokernelissä jokin laiteajuri bugittaa, niin ainoastaan laiteajuria vastaava prosessi (serveri) kaatuu. Jos ko. serveri on ohjelmoitu kunnollisesti, voidaan se käynnistää uudestaan ilman että sen palveluita tarvitsevat ohjelmat edes huomaavat kaatumisen.

Jos joku on "tietävinään" asian paremmin, niin puhukoon.

30

1852

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • luu5

      Windows on näitten sekoitus.

    • minä

      Jos kerran muka joku ajuri jne aina kaataa Linuxin nin eikös toi sanomasi sitten ole osotus siitä että Linux kerneli ja ajurit on laadultaan loistavia, koska Linux on erittäin vakaa.

      Ootkos ksym muuten koskaan kuullut kernelimoduuleista?

      • ksym_

        Lue perkele tarkemmin mitä kirjoitin, saatanan älykääpiö.


      • ymsk~
        ksym_ kirjoitti:

        Lue perkele tarkemmin mitä kirjoitin, saatanan älykääpiö.

        "kernelimoduulit ei tarkoita mikrokerneliä"

        Kuka näin on väittänytkään?


    • eskomatinjorma

      Ottamatta mitään kantaa tekstiin muuten, mutta tämä nyt on melkeinpä yhtä turhaa kuin ydinfysiikasta väittely tarhassa.

    • ATI

      "se tarkoittaa aina, että koko järjestelmä kaatuu. Piste."

      Eipä ole kaatunut. Piste.

    • Pentti Nelonen

      Ja se mitenkä tämä mm. ilmenee on se, että ajurin poistaminen tai asentaminen linuxiin vaatii _AINA_ kernelin kääntämistä.

      Tämän vuoksi linuxissa on myös todella heikko vakaus eikä sitä käytännössä pysty pitkiä aikoja pitämään päällä toisinkuin Microsoft Windowsia, joka ei ole mikrokerneli vaan hybridi. Tämän etu on mm. se, että jos yksi osa kaatuu niin toiminta jatkuu silti katkeamattomana ja tämä mahdollistaa hyvin pitkät, turvalliset ja vakaat käyttöajat.

      • minulla

        >...että ajurin poistaminen tai asentaminen linuxiin vaatii _AINA_ kernelin kääntämistä.

        Eikö minulla olekaan monoliittistä kerneliä kun olen kääntänyt sorsista ajureita mm. WinFlex modeemi ja Labtec-webkamera mutta kerneliä en ole kääntänyt koskaan?

        Vakaus ei voisi olla edes teoriassa yhtään parempi kun kone ei ole kaatunut KERTAAKAAN.

        Oliko nyt sellainen vastaus jota olit hakemassa. :)


      • ...

        Käytännössä windows jumittaa päivittäin ja linux tuskin koskaan.

        Mutta sinulla taisikin olla iltasadun aika.


      • miksuh.

        "Ja se mitenkä tämä mm. ilmenee on se, että ajurin poistaminen tai asentaminen linuxiin vaatii _AINA_ kernelin kääntämistä. "

        No eikä kyllä vaadi. Tää on sanottu tällä alueella ties kuinka monta kertaa. Nykyään Linuxin kerneliin ladataan ajurit dynaamisesti ja ajonaikasesti kernelimoduuleina. Toi tarkottaa sitä, että ajuri on erillinen moduuli, joka voidaan ajonaikasesti ladata kerneliin. Ajuri voidaan myös poistaa kernelistä lennossa. Mitään kernelin kääntämisiä EI tarvita, ei edes tietokoneen uudeklleen käynnistystä.


      • ksym_

        Riittää että ne ajurien kernel-modulit kääntää kerran sille kernelin versiolle mikä on asennettuna.

        Sitten niitä voi ladata tai poistaa kernelistä miten tykkää.


    • pee-10

      Käsitteitä selväksi, ajattelin.

      Linuxin kerneli on modulaarinen. Mutta mitä se pohjimmiltaan on.

      Olen ymmärtänyt, että modulaarinen kerneli on pohjimmiltaan monoliittinen kerneli - siinä mielessä, että kaikki kernel-threadit ovat tavallaan samanarvoisia. Yksi pahankurinen threadi voi siis kaataa koko kernelin. Vai?

      Oleellista on siis threadien suojaus toisiltaan.

      Mikrokernelissä taas laiteajurit ovat ulkoisia ohjelmia, eivät siis osa kerneliä lainkaan. Laiteajuri-thread ei pääse kaatamaan koko kerneliä, jos systeemi toimii edes suunnilleen niin kuin pitäisi.

      • monopilttinen

        Voi haukotus. Nyt kun ei kukaan enää kehtaa tapella linuxin huonoudesta johtuen sen mukamas vaikeakäyttöisyydestä, tapellaan sitten kernelistä itsestään.

        En ole kerneliä joutunut kertaakaan kääntämään, kaikki laitteet toimivat, ajurit ladataan moduuleina jne. En tiedä miten te muut konettanne oikeen käytätte mutta itse en ole vielä onnistunut Linux työasemaani kaatamaan. Ja tällä tehdään sitä normaalia käyttöä, kuunnellaan musaa, katellaan leffoja, pelataa, koodaillaan vähän php:llä ja säädellään mysql tietokantojen kanssa ihan harrastuksena.
        En ole enää windowsia käyttänyt aikoihin, en vain jaksa olla koko ajan päivittämässä sitä puhumattakaan siitä että bugiset softat kaatavat välillä koko koneen. Toki windwoissa pitäs saada kaatunut ohjelma suljettua mutta sekään ei aina onnistu. reset on ainoa mikä auttaa. Liuxissa jos jokin ohjelma hirttää kiinni, vaikka koko graafinen käyttöliittymä jota käytän,. (Blackbox), riittää että menen konsoliin ja annan kill komennon, jos ei näppiskään reagoi, menen toiselle koneelle ja annan kill käskyn ssh yhteyden kautta.
        Miksi? Koska siihen menee paljon vähemmän aikaa kuin koneen uudelleenkäynnistämiseen.
        Windows taas muuttuu joskus todella epävakaaksi softan kaatumisen jälkeen. Esim. Siirsin puhelimestani, Sony Ericsson 750i, kuvia koneelle, resurssienhallinta kaatui jostain syystä, sitten katosi koko työpöytä, odottelin hetken, työpöytä latautui uudelleen, käynnistin selaimen, mitään ei tapahtunut ja työpöytä katosi uudelleen. Kone oli pakko uudelleen käynnistää.

        Mutta joo. Mulle on aivan sama onko se Linuxin kerneli monoliittinen vai mikä lie. Niin kauan kun homma tuntuu toimivan ok ei ole mitään valittamista.


      • Ärsyttävä trolli
        monopilttinen kirjoitti:

        Voi haukotus. Nyt kun ei kukaan enää kehtaa tapella linuxin huonoudesta johtuen sen mukamas vaikeakäyttöisyydestä, tapellaan sitten kernelistä itsestään.

        En ole kerneliä joutunut kertaakaan kääntämään, kaikki laitteet toimivat, ajurit ladataan moduuleina jne. En tiedä miten te muut konettanne oikeen käytätte mutta itse en ole vielä onnistunut Linux työasemaani kaatamaan. Ja tällä tehdään sitä normaalia käyttöä, kuunnellaan musaa, katellaan leffoja, pelataa, koodaillaan vähän php:llä ja säädellään mysql tietokantojen kanssa ihan harrastuksena.
        En ole enää windowsia käyttänyt aikoihin, en vain jaksa olla koko ajan päivittämässä sitä puhumattakaan siitä että bugiset softat kaatavat välillä koko koneen. Toki windwoissa pitäs saada kaatunut ohjelma suljettua mutta sekään ei aina onnistu. reset on ainoa mikä auttaa. Liuxissa jos jokin ohjelma hirttää kiinni, vaikka koko graafinen käyttöliittymä jota käytän,. (Blackbox), riittää että menen konsoliin ja annan kill komennon, jos ei näppiskään reagoi, menen toiselle koneelle ja annan kill käskyn ssh yhteyden kautta.
        Miksi? Koska siihen menee paljon vähemmän aikaa kuin koneen uudelleenkäynnistämiseen.
        Windows taas muuttuu joskus todella epävakaaksi softan kaatumisen jälkeen. Esim. Siirsin puhelimestani, Sony Ericsson 750i, kuvia koneelle, resurssienhallinta kaatui jostain syystä, sitten katosi koko työpöytä, odottelin hetken, työpöytä latautui uudelleen, käynnistin selaimen, mitään ei tapahtunut ja työpöytä katosi uudelleen. Kone oli pakko uudelleen käynnistää.

        Mutta joo. Mulle on aivan sama onko se Linuxin kerneli monoliittinen vai mikä lie. Niin kauan kun homma tuntuu toimivan ok ei ole mitään valittamista.

        Voi miksi vertaat Linuxia heti Windowsiin? ksym_ tunnetusti on BSD miehiä ja Windows ei liity tähän threadiin nyt mitenkään.


    • monoliittinen?

      Onko näin? Olen ymmärtänyt että FreeBSD:n kerneli on samalla tavalla monoliittinen kuin linux.

      • jak

        ...


      • ksym_

        Koodin laatu on FreeBSD:ssä kauttaaltaan parempaa. FreeBSD:n release engineering teamin asenteena on, ettei kerneliin laiteta beta-koodia release-versioon. Linux-kernelissä sitä beta-koodia tuntuu olevan joka helvetin kernelin versio-branchissä.


    • Buahahahaha

      Saako Linuxille muka ajureitakin joltain valmistajalta? Buahahaha

      • voi venäjä

        "Saako Linuxille muka ajureitakin joltain valmistajalta? Buahahaha"

        Taas paistaa tietämättömyys kuin miljoona luxia!

        Ajureita valmistajalta? Kyllä vain saa. Itselläni on valmistajan linux ajurit mm. Nvidian GeForce näytönohjaimelle, Nforce3 piirisarjalle, toimii niin lanit kuin 8-kanavainen ääni yms.
        Ainoa laite jonka kanssa joutui tekemään parin minsan säädön että sai toimimaan oli Logitechin Quickcam messenger web-kamera. Sekin oli näitä "Windows only" laitteita ja silti sen sai toimimaan Linuxissa.

        Se että SINÄ et tiedä tai se että SINÄ et osaa ei tee järjestelmästä huonoa!


    • _mysk

      Linux on monoliittinen kerneli - so what? Minua ei voisi kiinnostaa hittoakaan että linuxissani "kaikki laitteistoa käsittelevä toiminnallisuus ajetaan SAMASSA MUISTIAVARUUDESSA (!!!!!) kernelin perusrutiinien kanssa". Eipä ole kaatunut kertaakaan meikäläisellä.

      Jos luulet olevasi niin hemmetin guru, niin Linus Torvalds tai Andrew Tanenbaum varmaan mielellään kuuntelevat paskanjauhantaasi.

      • ksym_

        Olen gurumpi kuin Linus Torvalds tai Andrew Tanenbaum yhteensä.

        >Minua ei voisi kiinnostaa hittoakaan että linuxissani "kaikki laitteistoa käsittelevä toiminnallisuus ajetaan SAMASSA MUISTIAVARUUDESSA (!!!!!) kernelin perusrutiinien kanssa".<

        Et taida paljon tietokoneista tietääkkään.

        Kysy mitä vaan minä vastaan??!!


      • heh
        ksym_ kirjoitti:

        Olen gurumpi kuin Linus Torvalds tai Andrew Tanenbaum yhteensä.

        >Minua ei voisi kiinnostaa hittoakaan että linuxissani "kaikki laitteistoa käsittelevä toiminnallisuus ajetaan SAMASSA MUISTIAVARUUDESSA (!!!!!) kernelin perusrutiinien kanssa".<

        Et taida paljon tietokoneista tietääkkään.

        Kysy mitä vaan minä vastaan??!!

        Milloin aiot vetää pääsi pois perseestäsi?

        Fanituslistasi:

        linux
        BSD
        mikrokerneli
        ???

        Vaihtoväli n. 6 kk


      • ksym_
        ksym_ kirjoitti:

        Olen gurumpi kuin Linus Torvalds tai Andrew Tanenbaum yhteensä.

        >Minua ei voisi kiinnostaa hittoakaan että linuxissani "kaikki laitteistoa käsittelevä toiminnallisuus ajetaan SAMASSA MUISTIAVARUUDESSA (!!!!!) kernelin perusrutiinien kanssa".<

        Et taida paljon tietokoneista tietääkkään.

        Kysy mitä vaan minä vastaan??!!

        >> Kysy mitä vaan minä vastaan??!!

        En itse käytä noin lapsellisella tavalla huuto/kysymysmerkkejä lauseen lopussa. Osaan myöskin retoriikan perusteet, ja tiedän mistä puhun.

        Enkä siis todellakaan menisi väittämään että olen jotain julkisuuden hemmoa viisaampi. Minulla vaan on eriäviä mielipiteitä monien kanssa, ja katson oikeudekseni tuoda nämä mielipiteeni ilmi.


      • tuubaa
        ksym_ kirjoitti:

        >> Kysy mitä vaan minä vastaan??!!

        En itse käytä noin lapsellisella tavalla huuto/kysymysmerkkejä lauseen lopussa. Osaan myöskin retoriikan perusteet, ja tiedän mistä puhun.

        Enkä siis todellakaan menisi väittämään että olen jotain julkisuuden hemmoa viisaampi. Minulla vaan on eriäviä mielipiteitä monien kanssa, ja katson oikeudekseni tuoda nämä mielipiteeni ilmi.

        >julkisuuden hemmoa viisaampi<

        Tekeekö julkisuus "hemmoista" viisaamman, plaah.


    • gnuhurdlinux

      Yksi syy, miksi mikrokernelit eivät oikein ole yleistyneet, on heikko suorituskyky. Suojauksella on hintansa. Kun kerneli joutuu juttelemaan ajurien kanssa normaalin kernel-softa rajapinnan läpi, saadaan kyllä vakautta, mutta samalla kulutetaan tehoja.

      Linuxin kerneli on monoliittinen, vaikkakin modulaarinen.

      GNU-piireissä on jo pitkään haaveiltu omasta mikrokernelistä (HURD-hanke). Saas nähdä.

      • ksym_

        Viimeksi kun kattelin HURD-devel mailing listien logeja, niin ovat kuulemma yrittämässä vaihtaa Mach:ista L4:Een.

        Nimenomaan se Machin "mailbox" tyylinen IPC, missä välitettävät viestit kopioidaan kernelin puskuriin ja puskurista vastaanottajalle ... se on helvetin hidasta ja typerää.

        L4:en tyylinen register-switched, mehukkaan kierosti optimoitu arkaani IPC on tulevaisuus mikrokerneleille.

        Ja itse siis veikkaan, että Tehokasta mikrokerneliä on mahdotonta suunnitella niin, että se olisi portattavissa monille eri laitteistoarkkitehtuureille. Viestienvälitykseen perustuvassa toiminnassa on tärkeintä juurikin se, että IPC-mekanismien toimintaperiaatteet ja semantiikat suunnitellaan viimeistä piirrettä myöten sille prosessorille, jota on tarkoitus käyttää.

        GNU/Hurd kyllä porttautuu, koska siinä ei ole mitään ihmeellistä. Mach on hidas kuin perse, ja tulee aina olemaan. Mac OS X käyttää Machista raakasti modattua versiota, missä on Applen insinöörien kehittelemiä erikois-IPC primitiivejä käytössä ... varmasti L4:esta hekin ottaneet mallia.


    • örkki

      ksymi se vaan jaksaa saarnata samaa paskaa vuodesta toiseen ja aivan turhaan. Harva enää edes jaksaa lukea loppuun noita jorinoita. Itse kun näen ksymin taas jälleen raapustelleen jotain ruudulle, äääh... plaah... taas toi pölö...

    • cares

      ???

    • *BSD

      No pitäähän se nyt urpolle vastata. Sä olet kopioinut noi sun "argumentit" suoraan just alkaneesta Andy T & Linus osa 2:sta.

      Nyt sitten joudut vähän puolustelemaan kantaasi.

      Tästä on sunkin kanssa aikaisemmin keskusteltu ja muistaakseni ei sulla näistä asioista ole *oikeata* tietoa. Ensinnäkin nämä arkkitehtuurit eivät kilpaile keskenään vaan pätevät aivan eri ongelma-alueilla.

      1. Jos haetaan suorituskykyä monoliittinen kerneli pärjää luonnollisesti paremmin kun ei tarvitse välittää dataa prosessilta toiselle tehtäessä esim. systeemikutsuja. Linuxin vahvuus nimenomaan on suorituskuvyssä (kuten muidenkin monoliittisten kernelien).

      2. Jos halutaan järjestelmästä ennustettava (predictable) käytetään mikrokerneleitä. Näin itse kernelin koodi on mahdollisimman suppeata, jolloin voidaan taata operaatiolle vasteaikoja. Sama pätee stabiiliuteen.

      Tuossa siis esimerkki (samat asiat olet varmaan jo lukenut muista foorumeista/newseistä).

      Toinen pointti on tuo järjestelmän kaatuminen. Eli kun ajetaan priviledged -koodia (prosessorin supervisor tms. moodissa) niin on luonnollista, että siellä ei ole rajoituksia. Kaatuminen (crash) on tässä hyvä asia, koska mitä aikaisemmin paskasti koodattu ajuri tms. aiheuttaa fatal trap:n (yms.) sitä helpommin se saadaan kiinni. Post-mortem analyysi on varmaan sulle aivan hepreaa mutta erittäin hyödyllinen keino selvittää vikoja kernelin koodissa jälkikäteen.

      Valitettavasti Linux ei oletuksena tarjoa crash-dump:eja vaan sitä varten on hankittava erikseen koodi, joka tuon tekee (näitä on muutamia).

      Eli summa summarum: sun kommentit voi jättää aivan oman onnensa varaan. Tuollaista debaattia käydään tällä hetkellä varmaan jokaisessa tämänlaisessa foorumissa. Revi siitä.

      • Jossain kernelin versiossa 2.6.16 tms. taitaa jo olla tuki crash dumpille, mutten ole vielä testannut sitä itse.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Miksi jollain jää "talvi päälle"

      Huvittaa kastoa ullkona jotain vahempaa äijää joka pukeutuu edelleen kun olisi +5 astetta lämmittä vaikka on helle keli
      Maailman menoa
      246
      2359
    2. Mitä et hyväksy miehessä/naisessa josta olet kiinnostunut?

      Itse en halua, että miehellä olisi lapsia!
      Ikävä
      166
      1494
    3. Se katse silloin

      Oli hetki, jolloin katseemme kohtasivat. Oli talvi vielä. Kerta toisensa jälkeen palaan tuohon jaettuun katseeseen. Tunt
      Ikävä
      57
      1360
    4. Kaipaaville

      Kerro sun tunteesi ja ajatukset tähän jos et uskalla irl!
      Ikävä
      74
      1085
    5. Tiesitkö? Farmi Suomi Kirsikka Simberg on tämän julkkisnaisen tytär - Katso tyrmäävät mallikuvat!

      Oho, aikamoinen ylläri. Tiesitkö?! Kirsikka Simberg on yksi tämän kauden Farmi Suomi -kisaajista. Hänellä ei ole tuttu t
      Suomalaiset julkkikset
      3
      1069
    6. Miten haluaisit

      Että reagoisin jos näkisin sinut nyt?
      Ikävä
      78
      970
    7. Tuhdit oluet kauppoihin. Miksi vastustaa?

      8% oluet kauppoihin mutta mikä siinä on että osa politikoista vstustaa ? Kauppa kuitenkin hinnoittelee vahvan oluen ni
      Maailman menoa
      218
      967
    8. Sinua tulen kyllä ikävöimään pitkään nainen

      mutta oli pakko tehdä päätös oman mielenrauhan vuoksi. Toivottavasti saat elämältä kaiken mitä haluat.
      Ikävä
      45
      865
    9. Kohta me ei enää nähdä :(

      En pääse enää uppoutumaan silmiisi enkä kuunnella ihanaa ääntäsi. Elämä on pstä.
      Ikävä
      39
      699
    10. Kärsämäki rosvojen ja tuhopolttajien kylä?

      Poliisi ampui uhkaava miestä Kärsämäellä. Ja vasta joku poltti rivitalon. Mikä riivaa Kärsämäkisiä? Joko tuulimyllyjen
      Kärsämäki
      15
      680
    Aihe