Programování

Je návrh jádra Linuxu zastaralý?

Je návrh jádra Linuxu zastaralý?

Linux za ta léta učinil velký pokrok a posunul se daleko za hranice svého počátku. Jeden redditor se ale nedávno zajímal, jestli Linux netrpí zastaralým designem jádra. Položil otázku v linuxovém subredditu a dostal několik zajímavých odpovědí.

Ronis_BR zahájil vlákno těmito komentáři:

Jsem uživatelem Linuxu od roku 2004. Vím hodně o tom, jak používat systém, ale moc nerozumím tomu, co je pod kapotou jádra. Ve skutečnosti se moje znalosti zastaví v tom, jak sestavit své vlastní jádro.

Chtěl bych se zde však zeptat počítačových vědců, jak zastaralé je linuxové jádro s ohledem na jeho design? Myslím tím, že to bylo zahájeno v roce 1992 a některé charakteristiky se nezměnily. Na druhou stranu myslím, že současný stav designu jádra OS (pokud existuje ...) by měl hodně pokročit.

Je možné uvést, v jakých bodech je design linuxového jádra pokročilejší ve srovnání s designem Windows, macOS, FreeBSD? (Všimněte si, že mám na mysli design, ne který je lepší. Například HURD má skvělý design, ale je celkem jednoduché říci, že Linux je dnes mnohem pokročilejší).

Více na Reddit

Jeho kolegové redaktoři Linuxu odpověděli svými myšlenkami na design jádra:

ExoticMandibles: „„ Zastaralé “? Ne. Návrh jádra Linuxu je dobře informován o moderním designu jádra. Jde jen o to, že je třeba si vybrat, a Linux šel s tradičním.

Napětí v návrhu jádra je mezi „bezpečností / stabilitou“ a „výkonem“. Mikrokernely podporují bezpečnost za cenu výkonu. Pokud máte maličký minimální mikrokernel, kde jádro usnadňuje hovory s hardwarem, správou paměti, IPC a podobně, bude mít relativně malý povrch API, což ztěžuje útok. A pokud máte buggy ovladač souborového systému / grafický ovladač / atd., Ovladač může selhat, aniž by sundal jádro, a pravděpodobně jej lze neškodně restartovat. Vynikající stabilita! Špičková bezpečnost! Všechny dobré věci.

Nevýhodou tohoto přístupu je věčná, nevyhnutelná režie celého IPC. Pokud váš program chce načíst data ze souboru, musí požádat ovladač souborového systému, což znamená, že IPC tomuto procesu přepne kontext procesu a dva kruhové přechody. Poté ovladač souborového systému požádá jádro, aby mluvilo s hardwarem, což znamená dva vyzváněcí přechody. Poté ovladač souborového systému odešle odpověď, což znamená více IPC dvou přechodů a další kontextový přepínač. Celková režie: dva kontextové přepínače, dvě volání IPC a šest vyzváněcích přechodů. Velmi drahý!

Monolitické jádro složí všechny ovladače zařízení do jádra. Takže buggy grafický ovladač může sundat jádro, nebo pokud má bezpečnostní díru, mohl by být zneužit k narušení systému. Ale! Pokud váš program potřebuje načíst něco z disku, zavolá jádro, které provede kruhový přechod, hovoří s hardwarem, vypočítá výsledek a vrátí výsledek provedením dalšího kruhového přechodu. Celková režie: dva přechody zvonění. Mnohem levnější! Mnohem rychlejší!

Stručně řečeno, přístup mikrokernelů říká „Vzdejme se výkonu pro vynikající zabezpečení a stabilitu“; přístup monolitického jádra říká: „Pojďme udržet výkon a opravit problémy se zabezpečením a stabilitou, jakmile se objeví.“ Zdá se, že svět tento přístup přijímá, ne-li preferuje.

p.s. Windows NT nikdy nebyl čistým microkernelem, ale byl to microkernel-ish po dlouhou dobu. NT 3.x měl grafické ovladače jako uživatelský proces a upřímně řečeno, NT 3.x byl super stabilní. NT 4.0 přesunul grafické ovladače do jádra; bylo méně stabilní, ale mnohem výkonnější. To byl obecně populární krok. “

F22 Vytržení: „Praktickou výhodou přístupu monolitického jádra, který platí pro Linux, je to, že tlačí dodavatele hardwaru, aby dostali své ovladače do jádra, protože jen málo dodavatelů hardwaru chce držet krok s vlastními změnami rozhraní jádra. Vzhledem k tomu, že většina ovladačů je ve stromu, lze rozhraní nepřetržitě refaktorovat bez nutnosti podpory starších rozhraní API. Jádro zaručuje pouze to, že nebudou narušovat uživatelský prostor, nikoli kernelspace (ovladače), a pokud jde o ty ovladače, které způsobují, že prodejci tlačí na své ovladače, existuje spousta problémů. Nvidia je jedním z mála prodejců, o kterých si myslím, že má prostředky na údržbu vlastního ovladače mimo strom zcela založeného na proprietárních komponentách.

Mám podezření, že pokud by řidiči byli jejich vlastními ostrůvky oddělenými stabilními rozhraními, možná bychom neměli tolik společností ochotných otevřít svůj kód. “

Divoká kachna: „V tomto kontextu„ monolitický “neznamená, že má (téměř) veškerý kód jádra a ovladače v jediném zdrojovém stromu, odkazuje na skutečnost, že celé jádro a ovladače běží jako jeden„ úkol “v jednom adresní prostor.

To se liší od „microkernel“, kde různé prvky jádra a ovladače běží jako samostatné úkoly se samostatnými adresovými prostory.

Jak již bylo zmíněno, jádro Windows je v zásadě monolitické, ale ovladače jsou stále vyvíjeny samostatně. macOS používá jakési hybridní jádro, které ve svém jádře používá mikrokernel, ale stále má téměř vše v jediném „úkolu“, přestože má téměř všechny ovladače vyvinuté / dodávané společností Apple. “

Slabost„Lidé o tom argumentují již před rokem 2004. Diskuse Tanenbaum-Torvalds v roce 1999 1992 je velkým příkladem argumentů mezi mikrokernely a monolitickými návrhy jader.

Osobně jsem součástí tábora mikrokernelů. Jsou čistší, bezpečnější a přenosnější. V tomto ohledu byl design jádra zastaralý v okamžiku, kdy byl vytvořen.

… Linux překonal mnoho problémů, které přicházejí s monolitickými návrhy jádra. Stal se modulární, jeho přísná politika kódů ho udržovala relativně bezpečná a nemyslím si, že by někdo argumentoval proti jeho přenosnosti. “

TEchnicolourSocks: „Existuje pouze jeden správný způsob návrhu jádra a je to způsob TempleOS.

Napsáno v HolyC, nesíťové, pouze ring-0. Jak Bůh zamýšlel. “

Scandalousmambo: „Povaha vývoje tak složitého systému, jako je linuxové jádro, znamená, že bude vždy„ zastaralý “podle lidí, kteří byli na vysokých židlích, když byl poprvé navržen.

Tento operační systém pravděpodobně představuje desítky milionů hodin lidské práce.

Může být vyměněn? Tak určitě. Bude to? Ne."

Grumbel: „Z čistě praktického hlediska to už nemá velký rozdíl. Během dne byl HURD docela v pohodě se svými souborovými systémy uživatelského prostoru a podobně. Ale Linux od té doby získal většinu této funkce. Pokud chcete do uživatelského prostoru zapsat souborový systém, USB ovladač nebo vstupní zařízení, můžete, není nutné hackovat jádro. Nyní můžete jádro dokonce za běhu opravit, pokud opravdu chcete.

Zdá se, že filosofie Linuxu, že na prvním místě není psaní buggy ovladačů, které havarují jádro, místo toho, aby byla super robustní proti sračkovým ovladačům, funguje v reálném světě docela dobře. Pravděpodobně za to musíme poděkovat USB, protože hardware, který je sám o sobě popisný, odstranil potřebu psát nový ovladač pro každý nový gadget, který připojíte k počítači.

Celá debata o designu je tedy nyní ještě akademičtější než dřív, protože už nezbývá mnoho funkcí, které byste získali pouze změnami designu a které byste nemohli implementovat do monolitického jádra. “

KugelKurt: „Ačkoli se zde hodně diskutuje o mikrokernelech vs. monolitickém jádře, novější výzkum se zaměřil na programovací jazyky.

Pokud jste dnes založili zcela nové jádro, je pravděpodobné, že by to nebylo napsáno v C. Projekty Singularity a Midori společnosti Microsoft prozkoumaly proveditelnost jader C # / spravovaného kódu.

Nejznámějším OS bez výzkumu bez jádra C je pravděpodobně Haiku napsaný v C ++. “

OmniaVincitVeritas: „Byl zastaralý, když byl poprvé vytvořen, a je tomu tak dodnes. Jak však víme, technický pokrok téměř nikdy nefunguje, takže technicky / vědecky nadstandardní řešení se v krátkodobém horizontu zvedne na vrchol; na úspěch má vliv také mnoho dalších věcí.

Pokud ano, provozovali bychom 100% bezpečné mikrokernely napsané v Haskellu. Bezpečnostní společnosti by neexistovaly. Měl bych hybrid jednorožce / poníka, který běží na slunečním světle. “

Daemonpenguin: „Existuje několik konceptů, které mohou teoreticky poskytnout lepší návrhy jádra. Existuje například jádro Rust, které by mohlo postoupit do řady vektorů paměťových útoků. Mikrokernely mají teoreticky několik velmi dobrých konstrukčních možností, díky nimž jsou přenosné, spolehlivé a potenciálně samoopravné.

Jde však o to, že jde spíše o teorii než o praxi. Bez ohledu na to, jak dobrá je teorie, lidé téměř vždy převezmou to, co je praktické (tj. Pracuje nyní), nad lepším designem. Linuxové jádro má tolik hardwarové podpory a tolik společností, které financují vývoj, že je nepravděpodobné, že by to ostatní jádra (bez ohledu na jejich skvělé možnosti designu) dohnaly.

Například MINIX má solidní design a některé úžasné funkce, ale má velmi malou hardwarovou podporu, takže pro platformu se téměř nikdo nevyvíjí. “

Více na Reddit

DistroWatch recenze 4MLinux 21.0

Linux nabízí mnoho různých druhů distribucí. Některé obsahují více softwaru a jiné méně. 4MLinux je zaměřen na ty, kteří dávají přednost odlehčené distribuci. Spisovatel v DistroWatch má úplnou recenzi na 4MLinux 21.0.

Joshua Allen Holm hlásí pro DistroWatch:

4MLinux je lehká linuxová distribuce navržená k poskytování čtyř klíčových oblastí funkčnosti. Pouze se softwarem, který je k dispozici v ISO, poskytuje 4MLinux širokou škálu aplikací pro provádění údržby systému; přehrávání mnoha typů multimediálních souborů; nabídka miniserveru poskytujícího základní webový server; a má slušný výběr her, které distribuce zařadí do kategorie, které se říká tajemství. Tyto čtyři funkce poskytují základ názvu distribuce. Čtyři věci, které začínají písmenem „M“, tedy 4MLinux.

Zavádění 4MLinuxu z flash disku je rychlý proces. Byl jsem rychle a automaticky přihlášen jako root a mohl jsem začít pracovat v desktopovém prostředí. Pro stolní počítače používá 4MLinux JVM v kombinaci se spouštěčem Wbar v horní části obrazovky, který poskytuje zástupce hlavních programů. Navíc existuje IDesk pro správu plochy a Conky pro poskytování základních informací o stavu systému. Wbar, IDesk a Conky lze všechny vypnout, ale systém je již velmi lehký, když jsou ve výchozím povoleném stavu.

Po vybalení z krabice přichází 4MLinux se slušným výběrem softwaru. V nabídce aplikace JVM jsou zkratky pro terminál, internetové aplikace, údržbu, multimédia, miniserver a tajemství. Dílčí nabídka Internet obsahuje Odkazy pro procházení webu, HexChat pro IRC, Sylpheed pro e-mail, Přenos pro Bittorrent, uGet pro stahování, nástroj pro sdílení souborů přes Bluetooth, GNOME PPP pro vytáčené připojení k internetu a možnost zapínat a vypínat Tor.

4MLinux poskytuje spoustu softwaru v malém balení. Pro údržbu systému je dobrou volbou mít po ruce. Pro multimédia, miniserver a tajemství poskytuje užitečný výběr softwaru, ale existují i ​​jiné distribuce, které se zaměřují pouze na jeden z těchto úkolů a dělají to lépe tím, že jsou více zaměřené. To neznamená, že 4MLinux je špatný, ale snaží se dělat příliš mnoho různých věcí najednou. Abych byl upřímný, myslím si, že 4MLinux by byl silnější nabídkou, kdyby to byl 3MLinux a úplně by upustil od záhadného aspektu. Možná zahrnuje pouze solitaire nebo nějakou jinou lehkou hru, kterou můžete využít jako rozptýlení při běhu úkolů údržby a využít uvolněné místo odstraněním her k zahrnutí některých volitelných rozšiřujících aplikací ve výchozím nastavení.

Více na DistroWatch

Recenze LinuxInsider Ultimate Edition 5.4

Ultimate Edition je naproti tomu na opačném konci spektra než 4MLinux. UE je rozhodně potěšením maximalisty, protože je plné softwaru. Spisovatel v LinuxInsider má úplnou recenzi Ultimate Edition 5.4.

Jack M. Germain hlásí pro LinuxInsider:

Nebyl jsem nadšený svými počátečními praktickými zkušenostmi se seznamováním s Ultimate Edition 5.4. Našel jsem nepříjemný seznam věcí, které s tím nejsou v pořádku.

Po mnoha letech přezkoumávání linuxových distribucí pod mým opaskem jsem si všiml pevného spojení mezi prvními dojmy z webové stránky distribuce a trvalými dojmy z výkonu distribuce. Řekněme, že neuspořádaný stav webu se v tomto případě projevuje v nejnovější verzi této distribuce.

Jeden malý příklad: Nikde jsem nenašel žádný seznam minimálních požadavků na instalaci hardwaru. To se ukázalo jako frustrující. Ztrácel jsem čas pokusem načíst Ultimate Linux na několik stárnoucích počítačů. Některé problémy se týkaly paměti a úložného prostoru. Mezi další problémy patřily nedostatky grafické karty.

Ultimate Edition se zaměřuje na nováčky v Linuxu, ale ti, kteří to zkoušejí, mohou potřebovat trochu více znalostí Linuxu, aby se vyhnuli některým problémům se spuštěním tohoto ne tak dokonalého OS Linux.

Více na LinuxInsider

Zmeškal jste shromáždění? Podívejte se na domovskou stránku Eye On Open a podívejte se na nejnovější zprávy o open source a Linuxu.