GNU/Linux >> Znalost Linux >  >> Linux

Linuxové jádro:5 nejlepších inovací

Slovo inovace se v technologickém průmyslu šíří téměř stejně jako revoluce , takže může být obtížné odlišit hyperbolu od něčeho, co je skutečně vzrušující. Linuxové jádro bylo nazýváno inovativní, ale znovu je také nazýváno největším hackem v moderních počítačích, monolitem v mikrosvětě.

Pomineme-li marketing a modelování, Linux je pravděpodobně nejoblíbenějším jádrem světa s otevřeným zdrojovým kódem a během své téměř 30leté životnosti představil několik skutečných her, které změnily hru.

Cgroups (2.6.24)

V roce 2007 získali Paul Menage a Rohit Seth esoterické kontrolní skupiny Do jádra byla přidána funkce (cgroups) (aktuální implementaci cgroups přepsal Tejun Heo.) Tato nová technologie byla zpočátku používána jako způsob, jak zajistit v podstatě kvalitu služeb pro konkrétní sadu úloh.

Můžete například vytvořit definici řídicí skupiny (cgroup) pro všechny úlohy spojené s vaším webovým serverem, další cgroup pro rutinní zálohování a další pro obecné požadavky operačního systému. Pak byste mohli ovládat procento zdrojů pro každou cgroup, takže váš operační systém a webový server získá většinu systémových prostředků, zatímco vaše zálohovací procesy budou mít přístup k tomu, co zbyde.

Cgroups se však nejvíce proslavily svou rolí technologie, která dnes řídí cloud:kontejnery. Ve skutečnosti se skupiny cgroups původně jmenovaly kontejnery procesů. Nebylo žádným velkým překvapením, když je přijaly projekty jako LXC, CoreOS a Docker.

Stavidla se otevírají, termín kontejnery právem se stal synonymem pro Linux a koncept cloudových „aplikací“ ve stylu mikroslužeb se rychle stal normou. V dnešní době je těžké se zbavit cgroups, jsou tak rozšířené. Každá rozsáhlá infrastruktura (a pravděpodobně i váš notebook, pokud používáte Linux) využívá cgroups smysluplným způsobem, díky čemuž je vaše práce s počítačem lépe spravovatelná a flexibilnější než kdy dříve.

Možná jste již na svém počítači nainstalovali Flathub nebo Flatpak nebo jste možná začali používat Kubernetes a/nebo OpenShift v práci. Bez ohledu na to, pokud je pro vás termín „kontejnery“ stále nejasný, můžete se seznámit s kontejnery ze zákulisí kontejnerů Linuxu.

LKMM (4.17)

V roce 2018 byla tvrdá práce Jade Alglave, Alana Sterna, Andrea Parri, Luc Maranget, Paul McKenney a několika dalších začleněna do hlavního linuxového jádra, aby poskytly formální modely paměti. Subsystém Linux Kernel Memory [Consistency] Model (LKMM) je sada nástrojů popisujících model koherence paměti Linuxu a také produkující lakmusové testy (klimus , konkrétně) pro testování.

Jak se systémy stávají složitějšími ve fyzickém designu (přidává se více jader CPU, roste mezipaměť a RAM atd.), tím těžší je pro ně vědět, který adresní prostor vyžaduje který CPU a kdy. Pokud například CPU0 potřebuje zapisovat data do sdílené proměnné v paměti a CPU1 potřebuje číst tuto hodnotu, musí CPU0 zapisovat, než se CPU1 pokusí číst. Podobně, pokud jsou hodnoty zapsány do paměti v jednom pořadí, pak existuje očekávání, že budou také čteny ve stejném pořadí, bez ohledu na to, který CPU nebo CPU provádí čtení.

I na jediném CPU vyžaduje správa paměti konkrétní pořadí úkolů. Jednoduchá akce, například x =y vyžaduje CPU k načtení hodnoty y z paměti a poté tuto hodnotu uložit do x . Umístění hodnoty uložené do y do x proměnná nemůže nastat před CPU načetl hodnotu z paměti. Existují také závislosti adres:x[n] =6 vyžaduje to n je načten dříve, než CPU může uložit hodnotu šest.

LKMM pomáhá identifikovat a sledovat tyto paměťové vzory v kódu. Dělá to částečně pomocí nástroje zvaného stádo , který definuje omezení uložená paměťovým modelem (ve formě logických axiomů) a poté vyjmenuje všechny možné výsledky konzistentní s těmito omezeními.

Oprava s nízkou latencí (2.6.38)

Kdysi dávno, v dobách před rokem 2011, pokud jste chtěli dělat „seriózní“ multimediální práci na Linuxu, museli jste si pořídit jádro s nízkou latencí. To se většinou týkalo nahrávání zvuku a přidávání mnoha efektů v reálném čase (jako je zpěv do mikrofonu a přidání reverbu a poslech vašeho hlasu v náhlavní soupravě bez znatelného zpoždění). Existovaly distribuce, jako je Ubuntu Studio, které takové jádro spolehlivě poskytovaly, takže v praxi to nebyla žádná překážka, jen významné upozornění při výběru vaší distribuce jako umělce.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Pokud jste však nepoužívali Ubuntu Studio nebo jste potřebovali aktualizovat své jádro, než se k tomu dostala vaše distribuce, museli jste přejít na webovou stránku rt-patches, stáhnout si opravy jádra a aplikovat je na své jádro. zdrojový kód, zkompilujte a nainstalujte ručně.

A pak, s vydáním jádra verze 2.6.38, byl celý tento proces u konce. Linuxové jádro najednou jako mávnutím kouzelného proutku mělo ve výchozím nastavení zabudovaný kód s nízkou latencí (podle benchmarků se latence snížila minimálně o faktor 10). Už žádné stahování oprav, žádné kompilace. Všechno prostě fungovalo a to vše díky malému 200řádkovému patchi, který implementoval Mike Galbraith.

Pro umělce open source multimédií na celém světě to byla změna hry. Od roku 2011 se věci tak zlepšily, že jsem se v roce 2016 rozhodl postavit Digital Audio Workstation (DAW) na Raspberry Pi v1 (model B) a zjistil jsem, že to funguje překvapivě dobře.

RCU (2.5)

RCU neboli Read-Copy-Update je systém definovaný v informatice, který umožňuje více vláknům procesoru číst ze sdílené paměti. Dělá to tak, že aktualizace odloží, ale také je označí jako aktualizované, aby bylo zajištěno, že si spotřebitelé dat přečtou nejnovější verzi. Ve skutečnosti to znamená, že čtení probíhá souběžně s aktualizacemi.

Typický cyklus RCU je trochu podobný tomuto:

  1. Odstraňte ukazatele na data, aby na ně ostatní čtenáři nemohli odkazovat.
  2. Počkejte, až čtenáři dokončí své kritické procesy.
  3. Získejte zpět místo v paměti.

Rozdělení fáze aktualizace na fáze odstranění a rekultivace znamená, že aktualizátor provede odstranění okamžitě, přičemž odloží reklamaci, dokud nebudou dokončeny všechny aktivní čtečky (buď jejich zablokováním nebo registrací zpětného volání, které má být po dokončení vyvoláno).

Zatímco koncept read-copy-update nebyl vynalezen pro linuxové jádro, jeho implementace v Linuxu je definujícím příkladem technologie.

Spolupráce (0.01)

Konečnou odpovědí na otázku, co linuxové jádro inovovalo, bude vždy především spolupráce. Říkejte tomu dobré načasování, říkejte tomu technická převaha, hackovatelnost nebo prostě open source, ale linuxové jádro a mnoho projektů, které umožnilo, je zářným příkladem spolupráce a kooperace.

A jde to daleko za hranice samotného jádra. Lidé ze všech společenských vrstev přispěli k open source, pravděpodobně protože linuxového jádra. Linux byl a zůstává dodnes hlavní silou svobodného softwaru, která inspiruje uživatele, aby přinesli svůj kód, umění, nápady nebo jen sami sebe do globální, produktivní a různorodé komunity lidí.

Jaká je vaše oblíbená inovace?

Tento seznam je zaměřen na mé vlastní zájmy:kontejnery, nejednotný přístup k paměti (NUMA) a multimédia. Určitě jsem vynechal vaši oblíbenou inovaci jádra ze seznamu. Řekněte mi o tom v komentářích!


Linux
  1. Průběžné testování integrace linuxového jádra

  2. Linux – podílíte se na e-mailové konferenci jádra?

  3. Linux – Co znamená rozložení paměti virtuálního jádra v Dmesg?

  1. Linux – Proč nemůže jádro spustit inicializaci?

  2. Zkontrolujte zatížení systému v systému Linux

  3. Jak mohu rezervovat blok paměti z jádra Linuxu?

  1. Analyzujte linuxové jádro pomocí ftrace

  2. Linuxové jádro:5 nejlepších inovací

  3. Životní cyklus testování linuxového jádra