Ohjelmointi

Onko Linux-ytimen suunnittelu vanhentunut?

Onko Linux-ytimen suunnittelu vanhentunut?

Linux on saavuttanut vuosien varrella suuria edistysaskeleita ja edennyt paljon pidemmälle kuin missä se alkoi. Mutta yksi redditor mietti äskettäin, kärsikö Linux vanhentuneesta ytimen suunnittelusta. Hän esitti kysymyksensä Linux-subredditissä ja sai mielenkiintoisia vastauksia.

Ronis_BR aloitti ketjun näillä kommenteilla:

Olen ollut Linux-käyttäjä vuodesta 2004. Tiedän paljon järjestelmän käytöstä, mutta en ymmärrä liikaa siitä, mikä ytimen hupun alla on. Itse asiassa tietoni loppuvat siitä, kuinka koota oma ydin.

Haluaisin kuitenkin kysyä täällä olevilta tietotekniikoilta, kuinka vanhentunut on Linux-ydin sen suunnittelussa? Tarkoitan, että se aloitettiin vuonna 1992, ja jotkut ominaisuudet eivät muuttuneet. Toisaalta luulen, että käyttöjärjestelmän ytimen suunnittelun uusinta tasoa (jos sellaista on ...) olisi pitänyt edetä paljon.

Onko mahdollista ilmoittaa missä kohdin Linux-ytimen suunnittelu on edistyneempi verrattuna Windows-, macOS- ja FreeBSD-ytimien suunnitteluun? (Huomaa, että tarkoitan suunnittelua, ei sitä, mikä on parempi. Esimerkiksi HURD: lla on loistava muotoilu, mutta on melko suoraviivaista sanoa, että Linux on nykyään paljon kehittyneempi).

Lisää Redditissä

Hänen kollegansa Linux-redditorit vastasivat ajatuksillaan ytimen suunnittelusta:

ExoticMandibles: "" Vanhentunut "? Ei. Linux-ytimen suunnittelusta on hyvin tietoa modernin ytimen suunnittelusta. Ainoa asia on tehdä valintoja, ja Linux meni perinteisen kanssa.

Ytimen suunnittelussa on jännitteitä "turvallisuuden / vakauden" ja "suorituskyvyn" välillä. Mikrokernelit edistävät turvallisuutta suorituskyvyn kustannuksella. Jos sinulla on pienikokoinen pieni mikrokerneli, jossa ydin helpottaa puhumista laitteistolle, muistinhallinnalle, IPC: lle ja muulle, sillä on suhteellisen pieni API-pinta, joten sitä on vaikea hyökätä. Ja jos sinulla on buginen tiedostojärjestelmän ohjain / grafiikkaohjain / jne., Ohjain voi kaatua ottamatta ydintä alas ja voidaan todennäköisesti käynnistää uudelleen vaarattomasti. Erinomainen vakaus! Erinomainen turvallisuus! Kaikki hyvät asiat.

Tämän lähestymistavan haittapuoli on kaiken IPC: n ikuinen, väistämätön yleiskustannus. Jos ohjelma haluaa ladata tietoja tiedostosta, sen on kysyttävä tiedostojärjestelmän ohjaimelta, mikä tarkoittaa IPC: tä prosessin kontekstikytkimen ja kahden soitto-siirtymän suorittamiseksi. Sitten tiedostojärjestelmän ohjain pyytää ydintä puhumaan laitteistolle, mikä tarkoittaa kahta soittoäänensiirtoa. Sitten tiedostojärjestelmän ohjain lähettää vastauksen, mikä tarkoittaa enemmän IPC: n kahta soitto-siirtymää ja toista kontekstikytkintä. Kokonaiskulut: kaksi kontekstikytkintä, kaksi IPC-puhelua ja kuusi soittoääniä. Erittäin kallis!

Monoliittinen ydin taittaa kaikki laiteohjaimet ytimeen. Joten buginen grafiikkaohjain voi poistaa ytimen, tai jos sillä on suojausreikä, sitä voidaan mahdollisesti hyödyntää järjestelmän vaarantamiseksi. Mutta! Jos ohjelmasi on ladattava jotain levyltä, se kutsuu ytimen, joka suorittaa soittoäänen, puhuu laitteistolle, laskee tuloksen ja palauttaa tuloksen tekemällä toisen soittoäänen. Kokonaiskulut: kaksi rengassiirtymää. Paljon halvempi! Paljon nopeampi!

Lyhyesti sanottuna mikrohyödyllinen lähestymistapa sanoo "Luovutetaan suorituskyvystä ylivoimaisen turvallisuuden ja vakauden saavuttamiseksi"; monoliittinen ytimen lähestymistapa sanoo "säilytetään suorituskyky ja korjataan vain turvallisuus- ja vakausongelmat niiden kasvaessa". Maailma näyttää hyväksyvän, jos ei, mieluummin tämän lähestymistavan.

ps Windows NT ei koskaan ollut puhdas mikrokerneli, mutta se oli mikrokernel-ish pitkään. NT 3.x: ssä oli grafiikkaohjaimia käyttäjäprosessina, ja rehellisesti sanottuna NT 3.x oli erittäin vakaa. NT 4.0 siirsi grafiikkaohjaimet ytimeen; se oli vähemmän vakaa, mutta paljon suorituskykyisempi. Tämä oli yleisesti suosittu siirto. "

F22Repure: "Käytännöllinen hyöty monoliittiselle ytimen lähestymistavalle, jota sovelletaan Linuxiin, on se, että se ajaa laitetoimittajia saamaan ohjaimet ytimeen, koska harvat laitevalmistajat haluavat pysyä ytimen käyttöliittymän muutoksissa yksin. Koska suurin osa ohjaimista on puussa, käyttöliittymiä voidaan korjata jatkuvasti ilman tarvetta tukea vanhoja sovellusliittymiä. Ydin takaa vain, etteivät ne rikkoa käyttäjätilaa, ei ydintilaa (ohjaimet), ja niissä ajurirajapinnoissa on paljon muutoksia, jotka pakottavat myyjät ohjaamaan kuljettajiaan. Nvidia on yksi harvoista myyjistä, jonka voin ajatella ja jolla on resursseja ylläpitää omaa puun ulkopuolista ohjainta, joka perustuu kokonaan omiin komponentteihin.

Epäilen, että jos kuljettajat olisivat omia pieniä saariaan, jotka on erotettu vakailla rajapinnoilla, meillä ei ehkä ole yhtä monta yritystä, jotka haluavat avata koodinsa.

Mallardtheduck: "Tässä yhteydessä" monoliittinen "ei tarkoita (melkein) kaiken ytimen ja ajurikoodin olevan yhdessä lähdepuussa, vaan viittaa siihen, että koko ydin ja ohjaimet suoritetaan yhtenä" tehtävänä "yhdessä osoitetila.

Tämä eroaa "mikrokernelistä", jossa eri ytimen elementit ja ohjaimet suoritetaan erillisinä tehtävinä erillisillä osoitealueilla.

Kuten mainittiin, Windows-ydin on pohjimmiltaan monoliittinen, mutta ohjaimet kehitetään edelleen erikseen. macOS käyttää eräänlaista hybridisydämää, joka käyttää ytimessään mikrokennoa, mutta jolla on silti melkein kaikki yhdessä "tehtävässä", huolimatta siitä, että lähes kaikki ohjaimet on kehittänyt / toimittanut Apple. "

Laatta: "Ihmiset ovat väittäneet tästä vuodesta 2004 lähtien. Tanenbaum-Torvalds-keskustelu vuonna 1999 1992 on suuri esimerkki väitteistä mikrokernelin ja monoliittisen ytimen välillä.

Olen henkilökohtaisesti osa mikrokodin leiriä. Ne ovat puhtaampia, turvallisempia ja kannettavampia. Tässä mielessä ytimen muotoilu oli vanhentunut sen luomishetkellä.

… Linux on voittanut monet ongelmat, jotka liittyvät monoliittisen ytimen suunnitteluun. Siitä on tullut modulaarinen, sen tiukka koodikäytäntö on pitänyt sen suhteellisen turvallisena, enkä usko kenenkään vastustavan sitä, kuinka kannettava se on. "

TEchnicolourSukat: ”Ytimen suunnittelussa on vain yksi oikea tapa ja se on TempleOS: n tapa.

Kirjoitettu HolyC-muodossa, verkottumaton, vain ring-0. Kuten Jumala tarkoitti. "

Scandalousmambo: "Niin monimutkaisen järjestelmän kehittäminen kuin Linux-ydin tarkoittaa, että se on aina" vanhentunut "ihmisten mielestä, jotka olivat syöttötuoleissa, kun se ensimmäisen kerran suunniteltiin.

Tämä käyttöjärjestelmä edustaa todennäköisesti kymmeniä miljoonia ihmisen työtunteja.

Voidaanko se korvata? Varma. Onko se? Ei."

Grumbel: ”Puhtaalla käytännön tasolla sillä ei ole enää suurta eroa. Tuolloin HURD oli tavallaan siistiä sen käyttäjätilan tiedostojärjestelmien ja vastaavien kanssa. Mutta Linux on sittemmin saavuttanut suurimman osan toiminnallisuudesta. Jos haluat kirjoittaa tiedostojärjestelmän, USB-ohjaimen tai syöttölaitteen käyttäjätilaan, voit, ei tarvitse hakkeroida ydintä. Voit nyt jopa korjata ytimen ajon aikana, jos todella haluat.

Linux-filosofia vain olla kirjoittamatta bugisia ohjaimia, jotka kaatavat ytimen ensisijaisesti sen sijaan, että tekisivät siitä erittäin vankan paskaajureita vastaan, näyttää toimivan melko hyvin myös todellisessa maailmassa. Meidän on todennäköisesti kiitettävä USB: tä siitä, koska itse kuvaava laitteisto poistaa tarpeen kirjoittaa uusi ohjain jokaiselle uudelle gadgetille, jonka liität tietokoneeseen.

Joten koko suunnittelukeskustelu on nyt vieläkin akateemisempaa kuin ennen, koska ei ole vain jäljellä paljon ominaisuuksia, jotka saisit pelkästään suunnittelumuutoksilla ja joita et voisi toteuttaa monoliittisessa ytimessä. "

KugelKurt: "Vaikka suuri osa keskustelusta on täällä mikrohiukkasista vs. monoliittisesta ytimestä, uudempi tutkimus kohdistui ohjelmointikieliin.

Jos aloitit kokonaan uuden ytimen tänään, on todennäköistä, että sitä ei kirjoiteta C.: n Microsoftin Singularity- ja Midori-projekteissa tutkittiin C # / hallinnoitujen koodijärjestelmien toteutettavuutta.

Tunnetuin ei-tutkimuskäyttöjärjestelmä ilman C-ydintä on todennäköisesti Haiku, joka on kirjoitettu C ++: lla. "

OmniaVincitVeritas: ”Se oli vanhentunut, kun se luotiin, ja on edelleen. Mutta kuten tiedämme, tekninen kehitys ei juuri koskaan toimi niin, että teknisesti / tieteellisesti ylivoimainen ratkaisu nousee huipulle lyhyellä aikavälillä; niin monet muutkin asiat vaikuttavat menestykseen.

Jos se tapahtui, käytämme 100% turvallisia mikrohiukkasia, jotka on kirjoitettu Haskellissa. Turvayhtiöitä ei olisi olemassa. Minulla olisi yksisarvinen / poni-hybridi, joka toimii auringonvalolla. "

Daemonpenguin: ”On joitain käsitteitä, jotka voivat teoriassa tarjota parempia ytimen malleja. Siellä on esimerkiksi Rust-ydin, joka saattaa sivutasoa useita muistihyökkäysvektoreita. Mikrokerneleillä on teoriassa joitain erittäin hyviä suunnitteluvaihtoehtoja, jotka tekevät niistä kannettavia, luotettavia ja mahdollisesti itsekorjaavia.

Kysymys on kuitenkin siitä, että ne ovat enemmän teoriaa kuin käytäntöä. Huolimatta siitä, kuinka hyvä teoria on, ihmiset ottavat melkein aina käytännöllisyyden (eli työskentelevät nyt) paremman suunnittelun yli. Linux-ytimellä on niin paljon laitteistotukea ja niin monta yritystä, jotka rahoittavat kehitystä, on epätodennäköistä, että muut ytimet (niiden hienoista suunnitteluvaihtoehdoista riippumatta) tulevat kiinni.

Esimerkiksi MINIXillä on vankka muotoilu ja upeita ominaisuuksia, mutta sillä on vain vähän laitteistotukea, joten melkein kukaan ei kehity alustalle. "

Lisää Redditissä

DistroWatch tarkistaa 4MLinux 21.0: n

Linux tarjoaa monia erilaisia ​​jakeluja. Jotkut ovat mukana enemmän ohjelmistoja, ja toiset vähemmän. 4MLinux on suunnattu niille, jotka suosivat kevyttä jakelua. DistroWatchin kirjailijalla on kattava katsaus 4MLinux 21.0: een.

Joshua Allen Holm raportoi DistroWatchille:

4MLinux on kevyt Linux-jakelu, joka on suunniteltu tarjoamaan neljä keskeistä toiminnallisuutta. Pelkästään ISO-ohjelmiston avulla 4MLinux tarjoaa laajan valikoiman sovelluksia järjestelmän ylläpitoon; monen tyyppisten multimediatiedostojen toistaminen; tarjoamalla minipalvelinta perusverkkopalvelimen tarjoamiseksi; ja sillä on kunnollinen valikoima pelejä, joita jakelu sijoittaa luokkaan, jota se kutsuu mysteeriksi. Nämä neljä toimintoa muodostavat jakelun nimen perustan. Neljä asiaa, jotka alkavat kirjaimella "M", siis 4MLinux.

4MLinuxin käynnistäminen flash-asemalta on nopea prosessi. Minut kirjautui nopeasti ja automaattisesti sisään pääkäyttäjänä ja voisin aloittaa työskentelyn työpöytäympäristössä. Työpöydälle 4MLinux käyttää JVM: ää yhdistettynä Wbar-käynnistysohjelmaan näytön yläosassa, joka tarjoaa pikakuvakkeet tärkeimmille ohjelmille. Lisäksi työpöydän hallintaan on IDesk ja Conky antaa järjestelmän perustiedot. Wbar, IDesk ja Conky voidaan kaikki kytkeä pois päältä, mutta järjestelmä on jo erittäin kevyt, kun ne ovat oletustilassa.

4MLinuxissa on alusta alkaen kunnollinen ohjelmistovalikoima. JVM-sovellusvalikossa on pikanäppäimet päätelaitteelle, Internet-sovelluksille, ylläpidolle, multimedialle, minipalvelimelle ja mysteerille. Internet-alivalikko sisältää linkit verkkoselaamiseen, HexChat IRC: lle, Sylpheed sähköpostille, Transmission for Bittorrent, uGet ladattavaksi, apuohjelma tiedostojen jakamiseen Bluetoothin kautta, GNOME PPP puhelinverkkoyhteyksiä varten ja mahdollisuuden kytke Tor päälle ja pois päältä.

4MLinux tarjoaa paljon ohjelmistoja pienessä paketissa. Järjestelmän ylläpitoa varten on hyvä valinta olla käsillä. Multimediaan, minipalvelimiin ja mysteereihin se tarjoaa hyödyllisen valikoiman ohjelmistoja, mutta on myös muita jakeluja, jotka keskittyvät vain yhteen näistä tehtävistä ja tekevät sen paremmin keskittymällä paremmin. Tämä ei tarkoita sitä, että 4MLinux olisi huono, mutta se yrittää tehdä liian monia eri asioita kerralla. Ollakseni täysin rehellinen, mielestäni 4MLinux olisi vahvempi tarjous, jos se olisi 3MLinux ja pudottaisi mysteeri-aspektin kokonaan. Ehkä mukana vain pasianssi tai jokin muu kevyt peli, joka on tarkoitettu ohjattavaksi huoltotöiden ajaessa, ja käyttää vapautettua tilaa poistamalla pelit sisällyttämään oletusarvoisesti joitain valinnaisia ​​laajennussovelluksia.

Lisää DistroWatchissa

LinuxInsider tarkistaa Ultimate Edition 5.4: n

Toisaalta Ultimate Edition on 4MLinux-spektrin vastakkaisessa päässä. UE on ehdottomasti maksimalistinen ilo, koska se on täynnä ohjelmistoja. Kirjoittaja LinuxInsiderillä on kattava arvostelu Ultimate Edition 5.4: stä.

Jack M.Germain raportoi LinuxInsiderille:

En ollut innoissaan ensimmäisistä käytännön kokemuksistani tutustuessani Ultimate Edition 5.4: een. Löysin ärsyttävän luettelon vääristä asioista.

Monien vuosien ajan tarkastellessani Linux-distroja vyöni alla olen huomannut vankan yhteyden distron verkkosivuston ensivaikutelmien ja pysyvien vaikutelmien välillä distron suorituskyvystä. Sanotaan vain, että verkkosivuston epäjärjestys, tässä tapauksessa, käy läpi tämän distron viimeisimmän julkaisun.

Yksi pieni esimerkki: En löytänyt yhtään luetteloa laitteiston asennuksen vähimmäisvaatimuksista. Se osoittautui turhauttavaksi. Hukkasin aikaa yrittää ladata Ultimate Linuxia useisiin ikääntyviin tietokoneisiin. Jotkut ongelmat liittyivät muistiin ja tallennustilaan. Muita aiheita olivat näytönohjaimen puutteet.

Ultimate Edition on kohdistettu uusille Linux-tulokkaille, mutta sen kokeilijat saattavat tarvita hieman enemmän Linux-tuntemusta kiertääkseen joitain ongelmia tämän ei-niin lopullisen Linux-käyttöjärjestelmän käytössä.

Lisää LinuxInsiderissa

Kaipasitko pyöristystä? Tarkista Eye On Open -kotisivulta, niin saat ajan tasalle avoimen lähdekoodin ja Linuxin viimeisimmät uutiset.