Programovanie

Je návrh jadra Linuxu zastaraný?

Je návrh jadra Linuxu zastaraný?

Linux za tie roky urobil veľké pokroky a pokročil ďaleko za hranice svojich začiatkov. Ale jedného redaktora nedávno zaujímalo, či Linux netrpí zastaraným dizajnom jadra. Položil otázku v linuxovom subreddite a dostal niekoľko zaujímavých odpovedí.

Ronis_BR začal vlákno týmito komentármi:

Používateľom systému Linux som od roku 2004. Viem veľa o tom, ako používať systém, ale príliš nerozumiem tomu, čo je pod kapotou jadra. Moje vedomosti sa vlastne zastavia v tom, ako si zostaviť vlastné jadro.

Tu by som sa však chcel spýtať počítačových vedcov, aké zastarané je linuxové jadro, čo sa týka jeho dizajnu? Myslím tým, že sa to začalo v roku 1992 a niektoré charakteristiky sa nezmenili. Na druhej strane, myslím, že súčasný stav vývoja jadra OS (ak existuje ...) by mal veľa pokročiť.

Je možné uviesť, v ktorých bodoch je návrh jadra Linuxu pokročilejší v porovnaní s návrhom jadier Windows, macOS, FreeBSD? (Všimnite si, že mám na mysli dizajn, nie to, ktorý je lepší. Napríklad HURD má vynikajúci dizajn, ale je celkom jednoduché povedať, že Linux je dnes oveľa pokročilejší).

Viac na Reddite

Jeho kolegovia redaktori Linuxu odpovedali svojimi myšlienkami o dizajne jadra:

ExoticMandibles: „„ Zastarané “? Nie. Dizajn jadra Linuxu je dobre informovaný o modernom dizajne jadra. Je to len to, že je treba urobiť výber, a Linux šiel s tým tradičným.

Napätie v dizajne jadra je medzi „bezpečnosťou / stabilitou“ a „výkonnosťou“. Mikrojadrá podporujú bezpečnosť za cenu výkonu. Ak máte maličký minimálny minimálny počet jadier, kde jadro uľahčuje komunikáciu s hardvérom, správou pamäte, IPC a inými vlastnosťami, bude mať relatívne malý povrch API, čo sťažuje jeho útok. A ak máte buggy ovládač súborového systému / grafický ovládač / atď., Môže dôjsť k zlyhaniu ovládača bez nutnosti odstránenia jadra a pravdepodobne bude možné ho neškodne reštartovať. Vynikajúca stabilita! Vynikajúca bezpečnosť! Všetky dobré veci.

Nevýhodou tohto prístupu je večná, neprehliadnuteľná réžia všetkého tohto IPC. Ak váš program chce načítať údaje zo súboru, musí požiadať ovládač súborového systému, čo znamená, že IPC pre tento proces prepne kontext procesu a dva kruhové prechody. Potom ovládač súborového systému požiada jadro, aby hovorilo s hardvérom, čo znamená dva prechody zvonením. Potom ovládač súborového systému odošle svoju odpoveď, čo znamená viac prechodov IPC s dvoma zvoneniami a ďalší kontextový prepínač. Celková réžia: dva kontextové prepínače, dva hovory IPC a šesť prechodov zvonením. Veľmi drahý!

Monolitické jadro zloží všetky ovládače zariadení do jadra. Takže buggy grafický ovládač môže zničiť jadro, alebo ak má bezpečnostnú dieru, mohol by byť zneužitý na narušenie systému. Ale! Ak váš program potrebuje niečo načítať z disku, zavolá jadro, ktoré vykoná kruhový prechod, prehovorí s hardvérom, vypočíta výsledok a vráti výsledok vykonaním ďalšieho kruhového prechodu. Celková réžia: dva prechody kruhu. Oveľa lacnejšie! Oveľa rýchlejšie!

Stručne povedané, prístup mikrojadier hovorí: „Vzdajme sa výkonu pre vynikajúce zabezpečenie a stabilitu“; prístup monolitického jadra hovorí „udržme výkon a len opravme problémy so zabezpečením a stabilitou, keď sa objavia.“ Zdá sa, že svet tento prístup prijíma, ak nie uprednostňuje tento prístup.

p.s. Windows NT nikdy nebol čistý mikrokernel, ale bol to mikrokernel-ish po dlhú dobu. NT 3.x mal grafické ovládače ako užívateľský proces a úprimne povedané, NT 3.x bol super stabilný. NT 4.0 presunul grafické ovládače do jadra; bolo to menej stabilné, ale oveľa výkonnejšie. Bol to všeobecne populárny krok. “

F22 Zachytenie: „Praktickým prínosom prístupu monolitického jadra, ktorý sa týka systému Linux, je to, že tlačí na dodávateľov hardvéru, aby dostali svoje ovládače do jadra, pretože len málo výrobcov hardvéru chce držať krok so zmenami rozhrania jadra. Pretože väčšina ovládačov je zabudovaná v strome, je možné ich neustále refaktorovať bez potreby podpory starších rozhraní API. Jadro iba zaručuje, že neporušia užívateľský priestor, nie kernelspace (ovládače), a existuje veľa konfliktov, pokiaľ ide o tie rozhrania ovládačov, ktoré tlačia dodávateľov na to, aby ovládali svoje ovládače. Nvidia je jeden z mála predajcov, o ktorých si myslím, že má zdroje na údržbu vlastného ovládača mimo stromu založeného výlučne na proprietárnych komponentoch.

Mám podozrenie, že keby boli vodičmi ich vlastné ostrovčeky oddelené stabilnými rozhraniami, možno by sme nemali toľko spoločností, ktoré by boli ochotné otvoriť svoj kód. “

Divá kačica: „V tejto súvislosti sa pod pojmom„ monolitický “nevzťahuje na to, že máte (takmer) všetok kód jadra a ovládača v jednom zdrojovom strome, ale to, že celé jadro a ovládače bežia ako jedna„ úloha “v jednom adresný priestor.

Toto sa líši od „microkernel“, kde rôzne prvky jadra a ovládače fungujú ako samostatné úlohy so samostatnými adresnými priestormi.

Ako už bolo spomenuté, jadro systému Windows je v zásade monolitické, ale ovládače sa stále vyvíjajú osobitne. MacOS používa akési hybridné jadro, ktoré vo svojom jadre používa mikrokernel, ale napriek tomu má takmer všetko v jednej „úlohe“, napriek tomu, že má takmer všetky ovládače vyvinuté / dodávané spoločnosťou Apple. “

Slabosť: „Ľudia to argumentujú už pred rokom 2004. Diskusia Tanenbaum-Torvalds v rokoch 1999 1992 je veľkým príkladom argumentov medzi návrhmi mikrokernelov a monolitických jadier.

Ja osobne som súčasťou tábora mikrojadier. Sú čistejšie, bezpečnejšie a prenosnejšie. V tomto ohľade bol dizajn jadra zastaraný v okamihu jeho vytvorenia.

... Linux prekonal mnoho problémov, ktoré prichádzajú s monolitickými návrhmi jadier. Stal sa modulárny, jeho prísna politika kódovania ho udržiavala relatívne bezpečným a nemyslím si, že by niekto namietal proti jeho prenosnosti. “

TEchnicolourSocks: „Existuje iba jeden správny spôsob návrhu jadra, a to je spôsob systému TempleOS.

Napísané v HolyC, nesieťové, iba zvonenie-0. Ako to Boh zamýšľal. “

Škandalózne mambo: „Povaha vývoja tak zložitého systému, ako je jadro Linuxu, znamená, že bude vždy„ zastaraný “podľa ľudí, ktorí boli na vysokých stoličkách, keď bol prvýkrát navrhnutý.

Tento operačný systém pravdepodobne predstavuje desiatky miliónov pracovných hodín.

Dá sa vymeniť? Samozrejme. Bude to? Nie. “

Grumbel: „Z čistého praktického hľadiska to už nemá veľký rozdiel. V tom čase bol HURD v pohode so súborovými systémami používateľského priestoru a podobne. Ale Linux odvtedy získal väčšinu tejto funkcionality. Ak chcete zapísať súborový systém, USB ovládač alebo vstupné zariadenie do užívateľského priestoru, nemusíte hackovať jadro. Teraz môžete jadro dokonca opraviť za behu, ak to naozaj chcete.

Zdá sa, že filozofia Linuxu, že na prvom mieste nepíšeme buggy ovládače, ktoré zrútia jadro, namiesto toho, aby bola super robustná proti sračkovým ovládačom, funguje tiež celkom dobre. Pravdepodobne za to musíme poďakovať USB, pretože hardvér, ktorý je sám o sebe popisný, odstránil potrebu písať nový ovládač pre každý nový modul gadget, ktorý pripojíte k počítaču.

Celá debata o dizajne je teda teraz ešte akademickejšia, ako bývala, pretože už nezostáva len veľa funkcií, ktoré by ste získali iba zmenami v dizajne a ktoré by ste nemohli implementovať do monolitického jadra. “

KugelKurt: „Aj keď sa tu veľa diskutuje o mikrokerneloch vs monolitickom jadre, novší výskum sa zameral na programovacie jazyky.

Ak ste dnes založili úplne nové jadro, je pravdepodobné, že by to nebolo napísané v C. Projekty spoločnosti Singularity a Midori spoločnosti Microsoft skúmali uskutočniteľnosť jadier C # / riadeného kódu.

Najznámejším ne-výskumným OS bez jadra C je pravdepodobne Haiku, ktorý je napísaný v jazyku C ++. “

OmniaVincitVeritas: „Bolo to zastarané, keď to bolo prvýkrát vytvorené, a stále je to tak. Ako však vieme, technický pokrok takmer nikdy nefunguje, takže technicky / vedecky lepšie riešenie sa z krátkodobého hľadiska dostane na vrchol; toľko ďalších vecí ovplyvňuje úspech.

Keby sa to stalo, bežali by sme stopercentne bezpečné mikrokernely napísané v Haskelli. Bezpečnostné spoločnosti by neexistovali. Mal by som hybrid jednorožca / poníka, ktorý beží na slnečnom svetle. “

Daemonpenguin: „Existuje niekoľko konceptov, ktoré môžu teoreticky poskytnúť lepšie návrhy jadra. Existuje napríklad jadro Rust, ktoré by mohlo viesť k vedľajšiemu kroku s niekoľkými vektormi útokov na pamäť. Mikrojádra majú teoreticky niekoľko veľmi dobrých možností návrhu, vďaka ktorým sú prenosné, spoľahlivé a potenciálne samoopravné.

Ide však o to, že ide skôr o teóriu ako o prax. Bez ohľadu na to, aká dobrá je teória, ľudia takmer vždy vezmú to, čo je praktické (tj. Teraz pracujúce), nad lepším dizajnom. Jadro Linuxu má toľko hardvérovej podpory a toľko spoločností, ktoré financujú vývoj, že je nepravdepodobné, že by ho iné jadrá (bez ohľadu na ich vynikajúce možnosti návrhu) dohnali.

Napríklad MINIX má solídny dizajn a niekoľko úžasných funkcií, ale má veľmi malú hardvérovú podporu, takže pre platformu sa takmer nikto nevyvíja. “

Viac na Reddite

DistroWatch recenzie 4MLinux 21.0

Linux ponúka mnoho rôznych druhov distribúcií. Niektoré obsahujú viac softvéru a iné menej. 4MLinux je zameraný na tých, ktorí uprednostňujú ľahkú distribúciu. Spisovateľ v DistroWatch má úplnú recenziu na 4MLinux 21.0.

Joshua Allen Holm hlási pre DistroWatch:

4MLinux je ľahká distribúcia systému Linux navrhnutá tak, aby poskytovala štyri kľúčové oblasti funkčnosti. Iba so softvérom, ktorý je k dispozícii v ISO, poskytuje 4MLinux širokú škálu aplikácií na vykonávanie údržby systému; prehrávanie mnohých druhov multimediálnych súborov; ponuka miniserveru na zabezpečenie základného webového servera; a má slušný výber hier, ktoré distribúcia zaraďuje do kategórie, ktorej hovorí tajomstvo. Tieto štyri funkcie poskytujú základ názvu distribúcie. Štyri veci, ktoré začínajú na „M“, teda 4MLinux.

Zavádzanie 4MLinuxu z flash disku je rýchly proces. Bol som rýchlo a automaticky prihlásený ako root a mohol som začať pracovať v prostredí pracovnej plochy. Pre pracovnú plochu používa 4MLinux JVM v kombinácii so spúšťačom Wbar v hornej časti obrazovky, ktorý poskytuje odkazy na hlavné programy. Plus je tu IDesk pre správu desktopu a Conky pre poskytovanie základných informácií o stave systému. Wbar, IDesk a Conky je možné všetky vypnúť, ale systém je už veľmi ľahký, keď sú v predvolenom povolenom stave.

Po vybalení z krabice prichádza 4MLinux so slušným výberom softvéru. V ponuke aplikácií JVM sa nachádzajú skratky pre terminál, internetové aplikácie, údržbu, multimédiá, miniserver a tajomstvá. Podponuka Internet obsahuje Odkazy na prehľadávanie webu, HexChat pre IRC, Sylpheed pre e-mail, Prenos pre Bittorrent, uGet na stiahnutie, pomôcka na zdieľanie súborov cez Bluetooth, GNOME PPP pre telefonické pripojenie na internet a možnosť zapínať a vypínať Tor.

4MLinux poskytuje veľa softvéru v malom balení. Pre údržbu systému je dobrá voľba mať poruke. Pre multimédiá, miniserver a záhady poskytuje užitočný výber softvéru, existujú však aj ďalšie distribúcie, ktoré sa zameriavajú iba na jednu z týchto úloh a sú lepšie sústredené. To neznamená, že 4MLinux je zlý, ale snaží sa robiť príliš veľa rôznych vecí naraz. Ak mám byť úprimný, myslím si, že 4MLinux by bol silnejšou ponukou, keby to bol 3MLinux a úplne by upustil od záhadného aspektu. Možno vrátane iba solitairu alebo inej ľahkej hry, ktorú môžete využiť na spestrenie údržby a využiť uvoľnené miesto odstránením hier, aby ste predvolene zahrnuli niektoré voliteľné rozšírené aplikácie.

Viac na DistroWatch

Recenzia LinuxInsider na vydanie Ultimate Edition 5.4

Ultimate Edition je naopak na opačnom konci spektra ako 4MLinux. UE je určite potešením maximalistu, pretože je nabité softvérom. Spisovateľ v LinuxInsider má úplnú recenziu Ultimate Edition 5.4.

Jack M. Germain hlási LinuxInsider:

Nebol som nadšený svojimi prvými praktickými skúsenosťami so zoznamovaním sa s Ultimate Edition 5.4. Zistil som, že je tu nepríjemný zoznam vecí, ktoré s ním nie sú v poriadku.

Po mnohých rokoch skúmania distribúcií Linuxu pod mojím opaskom som si všimol pevné spojenie medzi prvými dojmami z webovej stránky distribúcie a trvalými dojmami z výkonu distribúcie. Povedzme, že neusporiadaný stav webových stránok sa v tomto prípade prejaví v najnovšom vydaní tejto distribúcie.

Jeden malý príklad: Nikde som nenašiel žiadny zoznam minimálnych požiadaviek na inštaláciu hardvéru. To sa ukázalo ako frustrujúce. Stratil som čas pokusom o načítanie systému Ultimate Linux na niekoľko starnúcich počítačov. Niektoré problémy súviseli s pamäťou a úložným priestorom. Ďalšie problémy sa týkali nedostatkov grafických kariet.

Ultimate Edition je zameraná na nováčikov v systéme Linux, ale tí, ktorí to skúšajú, môžu potrebovať trochu viac znalostí o Linuxe, aby sa vyhli niektorým problémom pri prevádzkovaní tohto nie úplne dokonalého operačného systému Linux.

Viac na LinuxInsider

Zmeškali ste rozbeh? Na domovskej stránke Eye On Open sa dozviete najaktuálnejšie správy o open source a Linuxe.

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