Programiranje

Ali je zasnova jedra Linuxa zastarela?

Ali je zasnova jedra Linuxa zastarela?

Linux je v zadnjih letih naredil velik napredek in napredoval daleč dlje, kot je bil, ko se je začel. Toda nek redditor se je nedavno vprašal, ali Linux trpi zaradi zastarele zasnove jedra. Vprašanje je postavil v podrediti Linux in dobil nekaj zanimivih odgovorov.

Ronis_BR je začel nit s temi komentarji:

Uporabnik sem Linuxa od leta 2004. Veliko vem o tem, kako uporabljati sistem, vendar ne razumem preveč, kaj je pod pokrovom jedra. Pravzaprav se moje znanje ustavi pri sestavljanju lastnega jedra.

Vendar pa bi rad računalniške znanstvenike vprašal, kako zastarelo je jedro Linuxa glede na njegovo zasnovo? Mislim, začelo se je leta 1992 in nekatere značilnosti se niso spremenile. Po drugi strani pa mislim, da bi moralo najsodobnejše oblikovanje jedra OS (če to obstaja ...) zelo napredovati.

Ali je mogoče navesti, v katerih točkah je zasnova jedra Linuxa bolj napredna v primerjavi z zasnovo jeder Windows, macOS in FreeBSD? (Upoštevajte, da mislim na oblikovanje, ne na to, katera je boljša. Na primer, HURD ima odličen dizajn, vendar je precej enostavno reči, da je Linux danes veliko naprednejši).

Več na Redditu

Njegovi kolegi Linux reditorji so se odzvali s svojimi mislimi o zasnovi jedra:

ExoticMandibles: "" Zastarelo "? Ne. Zasnova jedra Linux je dobro obveščena o sodobni zasnovi jedra. Preprosto je treba sprejeti odločitve, Linux pa je šel s tradicionalnim.

Napetost v zasnovi jedra je med "varnostjo / stabilnostjo" in "zmogljivostjo". Mikrojedri spodbujajo varnost za ceno zmogljivosti. Če imate na drobno majhno minimalno mikrojedro, kjer jedro olajša pogovore s strojno opremo, upravljanjem pomnilnika, IPC in malo drugega, bo imelo razmeroma majhno površino API, zaradi česar je težko napasti. In če imate napačen gonilnik datotečnega sistema / grafični gonilnik / itd., Se lahko gonilnik zruši, ne da bi odstranil jedro, in ga je verjetno mogoče neškodljivo znova zagnati. Vrhunska stabilnost! Vrhunska varnost! Vse dobre stvari.

Slaba stran tega pristopa je večna, neizogibna režija vsega tega IPC. Če želi vaš program naložiti podatke iz datoteke, mora vprašati gonilnik datotečnega sistema, kar pomeni IPC, ki obdela procesno stikalo za kontekst, in dva obročna prehoda. Potem gonilnik datotečnega sistema prosi jedro, naj se pogovarja s strojno opremo, kar pomeni dva obročna prehoda. Nato gonilnik datotečnega sistema pošlje svoj odgovor, kar pomeni več prehodov z dvema obročema IPC in drugo stikalo za kontekst. Skupni režijski stroški: dva stikala za kontekst, dva klica IPC in šest prehodov zvonjenja. Zelo drago!

Monolitno jedro zloži vse gonilnike naprav v jedro. Torej lahko napačni grafični gonilnik odstrani jedro, ali če ima varnostno luknjo, bi ga lahko izkoristili, da bi ogrozili sistem. Ampak! Če mora vaš program nekaj naložiti z diska, pokliče jedro, ki opravi prehod obroča, se pogovarja s strojno opremo, izračuna rezultat in vrne rezultat in izvede nov prehod obroča. Skupni režijski stroški: dva prehoda obroča. Veliko ceneje! Veliko hitreje!

Na kratko mikrokernel pristop pravi: "Odpovejmo se zmogljivosti za vrhunsko varnost in stabilnost"; pristop monolitnega jedra pravi: "Ohranimo zmogljivost in popravimo težave z varnostjo in stabilnostjo, ko se pojavijo." Zdi se, da svet tak pristop sprejema, če ne.

p.s. Windows NT ni bil nikoli čisto mikrojedro, vendar je bil dolgo časa mikrokanel. NT 3.x je imel kot uporabniški proces grafične gonilnike in NT 3.x je bil izjemno stabilen. NT 4.0 je v jedro premaknil grafične gonilnike; bila je manj stabilna, a veliko bolj zmogljiva. To je bila splošno priljubljena poteza. "

F22 Zajem: »Praktična korist monolitnega pristopa k jedru, kot velja za Linux, je, da prodajalce strojne opreme potisne, da v jedro vnesejo svoje gonilnike, ker le malo prodajalcev strojne opreme želi, da bi sledili spremembam jedrskega vmesnika. Ker je večina gonilnikov v drevesu, je mogoče vmesnike nenehno preoblikovati, ne da bi morali podpirati stare API-je. Jedro samo zagotavlja, da ne bodo prekinili uporabniškega prostora in ne prostora jedra (gonilniki), pri tistih gonilniških vmesnikih, ki prodajalce potisnejo k vzdrževanju njihovih gonilnikov, pa je veliko odmeva. Nvidia je ena redkih prodajalk, za katero se spomnim, da ima sredstva za vzdrževanje lastnega gonilnika, ki ni v drevesu in temelji v celoti na lastniških komponentah.

Sumim, da če bi bili vozniki njihovi otočki, ločeni s stabilnimi vmesniki, morda ne bi imeli toliko podjetij, ki bi bila pripravljena odpreti svojo kodo. "

Mallardtheduck: "V tem kontekstu se" monolitno "ne nanaša na (skoraj) vse kode jedra in gonilnikov v enem izvornem drevesu, temveč na dejstvo, da celotno jedro in gonilniki delujejo kot ena" naloga "v enem samem naslovni prostor.

To se razlikuje od "mikrojedra", kjer se različni elementi jedra in gonilniki izvajajo kot ločena opravila z ločenimi naslovnimi prostori.

Kot smo že omenili, je jedro sistema Windows v osnovi monolitno, gonilnike pa še vedno razvijamo ločeno. macOS uporablja nekakšno hibridno jedro, ki v svojem jedru uporablja mikrojedro, vendar ima še vedno skoraj vse v eni sami "nalogi", čeprav je skoraj vse gonilnike razvil / dobavil Apple. "

Slabity: “Ljudje to trdijo že od pred letom 2004. Razprava Tanenbaum-Torvalds leta 1999 1992 je velik primer argumentov med zasnovo mikroknel in monolitnih jeder.

Osebno sem del tabora mikrokernel. So čistejši, varnejši in bolj prenosni. V zvezi s tem je bila zasnova jedra zastarela v trenutku, ko je bila ustvarjena.

… Linux je premagal veliko težav, ki jih prinaša monolitna zasnova jeder. Postal je modularen, njegova stroga politika kode ga je ohranila razmeroma na varnem in mislim, da se nihče ne bo zavzemal za prenosljivost.

TEchnicolourNogavice: “Obstaja samo en pravilen način oblikovanja jedra in to je način TempleOS.

Napisano v HolyC, samo v omrežju, ring-0. Kot je Bog namenil. "

Škandaloznoambo: “Narava razvijanja tako zapletenega sistema, kot je jedro Linuxa, pomeni, da bo po mnenju ljudi, ki so bili na sedežih, ko je bil prvič zasnovan, vedno" zastarel ".

Ta operacijski sistem verjetno predstavlja več deset milijonov delovnih ur.

Ali ga je mogoče zamenjati? Seveda. Ali bo? Ne. "

Grumbel: “Čisto v praktičnem smislu to nima več velike razlike. Tedaj je bil HURD nekako kul s svojimi datotečnimi sistemi uporabniškega prostora in podobno. Toda Linux je od takrat dobil večino te funkcionalnosti. Če želite v uporabniški prostor napisati datotečni sistem, gonilnik USB ali vhodno napravo, lahko, vam ni treba vdreti jedra. Zdaj lahko jedro celo popravite med izvajanjem, če to res želite.

Zdi se, da filozofija Linuxa, da zgolj ne pišemo hroščevskih gonilnikov, ki najprej zrušijo jedro, namesto da bi ga naredili izjemno robustnega proti usranim gonilnikom, deluje tudi v resničnem svetu. Verjetno se moramo za to zahvaliti USB-ju, saj je strojna oprema, ki je samoopisna, odpravila potrebo po pisanju novega gonilnika za vsak nov pripomoček, ki ga priključite v računalnik.

Tako je celotna razprava o oblikovanju zdaj še bolj akademska kot nekoč, saj preprosto ni ostalo veliko funkcij, ki bi jih pridobili samo s spremembami v oblikovanju in jih ne bi mogli vgraditi v monolitno jedro. "

KugelKurt: "Čeprav je večina razprave tukaj o mikrojedrih in monolitnem jedru, so novejše raziskave zajele programske jezike.

Če ste danes zagnali popolnoma novo jedro, verjetno ne bo zapisano v C. Projekta Microsoft Singularity in Midori sta raziskala izvedljivost jeder C # / upravljanih kod.

Najbolj znani neraziskovalni OS brez jedra C je verjetno Haiku, ki je napisan v jeziku C ++. "

OmniaVincitVeritas: “Ob prvem nastanku je bil zastarel in je še vedno tak. Toda, kot vemo, tehnični napredek skoraj nikoli ne deluje tako, da se tehnično / znanstveno vrhunska rešitev kratkoročno dvigne na vrh; toliko drugih stvari vpliva tudi na uspeh.

Če bi se, bi uporabljali 100% varne mikrojedre, napisane v Haskellu. Varnostna podjetja ne bi obstajala. Imel bi hibrid samoroga / ponija, ki deluje na sončni svetlobi. "

Daemonpenguin: “Obstaja nekaj konceptov, ki teoretično lahko nudijo boljše zasnove jedr. Na primer obstaja jedro Rust, ki lahko stransko pospravi številne vektorje napadov na pomnilnik. Mikrojedri imajo teoretično nekaj zelo dobrih oblikovalskih odločitev, zaradi katerih so prenosni, zanesljivi in ​​potencialno samokorekcijski.

Vprašanje pa je, da gre bolj za teorijo kot za prakso. Ne glede na to, kako dobra je teorija, bodo ljudje skoraj vedno vzeli tisto, kar je praktično (tj. Zdaj delamo), za boljši dizajn. Jedro Linuxa ima toliko strojne podpore in toliko podjetij financira razvoj, da je malo verjetno, da bodo druga jedra (ne glede na njihovo kul oblikovalsko izbiro) dohitela.

MINIX ima na primer trdno zasnovo in nekaj izjemnih funkcij, vendar ima zelo malo strojne podpore, zato skoraj nihče ne razvija platforme. "

Več na Redditu

DistroWatch ocenjuje 4MLinux 21.0

Linux ponuja veliko različnih vrst distribucij. Nekateri so v paketu z več programske opreme, nekateri pa z manj. 4MLinux je namenjen tistim, ki imajo raje lahko distribucijo. Pisatelj pri DistroWatchu ima popoln pregled 4MLinux 21.0.

Joshua Allen Holm poroča za DistroWatch:

4MLinux je lahka distribucija Linuxa, namenjena zagotavljanju štirih ključnih področij funkcionalnosti. S samo programsko opremo, ki je na voljo v sistemu ISO, 4MLinux ponuja široko paleto aplikacij za izvajanje vzdrževanja sistema; predvajanje številnih vrst večpredstavnostnih datotek; ponudba miniserverja za zagotavljanje osnovnega spletnega strežnika; in ima dostojno izbiro iger, ki jih distribucija uvršča v kategorijo, ki jo imenuje skrivnost. Te štiri funkcije zagotavljajo osnovo imena distribucije. Štiri stvari, ki se začnejo z "M", torej 4MLinux.

Zagon 4MLinux z bliskovnega pogona je hiter postopek. Hitro in samodejno sem bil prijavljen kot root in lahko začnem delati v namiznem okolju. Za namizje 4MLinux uporablja JVM v kombinaciji z zaganjalnikom Wbar na vrhu zaslona, ​​ki ponuja bližnjice do glavnih programov. Poleg tega obstaja IDesk za upravljanje namizja in Conky za zagotavljanje osnovnih informacij o stanju sistema. Wbar, IDesk in Conky je mogoče izklopiti, vendar je sistem že zelo lahek, ko so v privzetem, omogočenem stanju.

4MLinux je na voljo z dobrim izborom programske opreme. V meniju aplikacije JVM so bližnjice do terminala, internetnih aplikacij, vzdrževanja, večpredstavnosti, miniserverja in skrivnosti. Internetni podmeni vsebuje povezave za brskanje po spletu, HexChat za IRC, Sylpheed za e-pošto, prenos za Bittorrent, uGet za prenos, pripomoček za skupno rabo datotek prek Bluetootha, GNOME PPP za klicne internetne povezave in možnost vklop in izklop Tor.

4MLinux ponuja veliko programske opreme v majhnem paketu. Za vzdrževanje sistema je dobra izbira imeti pri roki. Za večpredstavnost, miniserver in skrivnost ponuja koristen izbor programske opreme, obstajajo pa tudi druge distribucije, ki se osredotočajo le na eno od teh nalog in to bolje opravijo z večjo osredotočenostjo. To ne pomeni, da je 4MLinux slab, vendar poskuša narediti preveč različnih stvari hkrati. Če sem popolnoma iskren, mislim, da bi bil 4MLinux močnejša ponudba, če bi bil 3MLinux in bi v celoti izpustil skrivnostni vidik. Morda vključite samo pasijans ali kakšno drugo lahkotno igro, ki jo boste preusmerili med izvajanjem vzdrževalnih nalog in izkoristili prostor, ki ste ga sprostili z odstranitvijo iger, da so privzeto vključene nekatere neobvezne razširitvene aplikacije.

Več na DistroWatch

LinuxInsider ocenjuje Ultimate Edition 5.4

Ultimate Edition pa je na nasprotnem koncu spektra od 4MLinux. UE je vsekakor maksimalističen užitek, saj je opremljen s programsko opremo. Pisatelj pri LinuxInsider ima popoln pregled Ultimate Edition 5.4.

Jack M. Germain poroča za LinuxInsider:

Nisem bil navdušen nad svojimi začetnimi izkušnjami pri spoznavanju Ultimate Edition 5.4. Zdi se mi siten seznam stvari, ki so narobe.

Z dolgoletnim pregledovanjem distribucij Linuxa pod pasom sem opazil trdno povezavo med prvimi vtisi spletnega mesta distribucije in trajnimi vtisi o uspešnosti distribucije. Recimo samo, da je v tem primeru neurejeno stanje spletnega mesta v zadnji izdaji tega distribucijskega sistema.

En majhen primer: nikjer nisem našel seznama minimalnih zahtev za namestitev strojne opreme. To se je izkazalo za moteče. Zapravil sem čas, ko sem poskušal naložiti Ultimate Linux na več starajočih se računalnikov. Nekatera vprašanja so bila povezana s pomnilnikom in prostorom za shranjevanje. Druga vprašanja so bila pomanjkljivosti grafične kartice.

Ultimate Edition je namenjen novincem v Linuxu, toda tisti, ki ga poskušajo, bodo morda potrebovali malo več znanja o Linuxu, da bi se izognili nekaterim težavam pri zagonu tega ne ravno ultimativnega OS Linux.

Več na LinuxInsider

Ste zamudili krog? Oglejte si domačo stran Eye On Open in se seznanite z najnovejšimi novicami o odprtokodni kodi in Linuxu.

$config[zx-auto] not found$config[zx-overlay] not found