Byla vydána nová stabilní verze 3.24.0, tj. první z nové řady 3.24, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.
Na čem pracují vývojáři v Rustu napsaného mikrokernelového unixového operačního systému Redox OS (Wikipedie)? Byl publikován přehled vývoje za květen. Vypíchnout lze nový scheduler EEVDF nebo port desktopového prostředí Xfce na Redox OS.
Upozornění pro uživatele Asahi Linuxu: Neaktualizujte macOS na verzi 27 Golden Gate! Apple změnil detekci spouštěcích oddílů. Po aktualizaci oddíl s Asahi Linuxem nevidí. Snad je to jenom chyba.
Na webu konference Den IPv6, která se konala 4. června v Národní technické knihovně v pražských Dejvicích, jsou nyní k dispozici všechny prezentace (v PDF) a jejich videozáznamy. Organizátory konference byly i letos sdružení CESNET, CZ.NIC a NIX.CZ.
Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.
Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Aktuální vývojová verze jádra je 3.11-rc7 vydaná 25. srpna s neobvyklým oznámením: Dělám na (svobodném) operačním systému (jen jako koníček, i když je velký a profesionální) pro klony 486+ AT a snad i všechno ostatní, co na světě existuje. Dělám na tom už od dubna 1991 a ještě to není hotové. Budu vděčný za jakoukoliv zpětnou vazbu ohledně toho, co se lidem na Linuxu 3.11-rc7 nelíbí. Samozřejmě jde o oslavu 22. výročí od původního mailu, kde Linus představoval Linux.
Stabilní aktualizace: za uplynulý týden žádné nevyšly. V době psaní tohoto textu se aktualizace 3.10.10, 3.4.60 a 3.0.94 revidují; jejich vydání lze očekávat 29. srpna nebo později.
Někdy je těžké si uvědomit, že „tento kus kódu je naprostá *pííp*“ ve skutečnosti znamená "řekl bych, že obecný návrh ujde, ale musíš se zamyslet nad tímto kouskem kódu, a pak to snad bude dobré."
Na druhou stranu by na tohle měl člověk po vysoké škole být zvyklý.
Historie ukázala, že ignorování managementu výrobců hardwaru vždy vedlo k lepším ovladačům. Neříkám, že někteří výrobci nemají kompetentní inženýry (mnoho ano, mnoho ne), ale jakmile je do rozhodování okolo ovladačů zapojen management, všechna naděje je ztracena.
Před několika týdny jsme psali o začlenění patche přidávajícího systémové volání flink(), které by programu umožnilo přidat odkaz na soubor na základě otevřeného popisovače. Přidání této funkce bylo dlouho blokováno kvůli obavám z bezpečnostních problémů; tentokrát to prošlo díky argumentu, že jádro už tuto funkčnost nabízí přes volání linkat(). Zdálo se, že tuto funkci v Linuxu 3.11 uvidíme.
Ne všichni ale byli spokojení; Brad Spengler upozornil na problém, kdy procesy mohou vytvářet odkazy na popisovače předané z více privilegované domény. Proto Andy Lutomirski, autor původního patche, zaslal úpravu omezující funkčnost na soubory vytvořené s vobou O_TMPFILE. Jediný problém byl v tom, že se patch nikomu moc nelíbil; Linus to dal jednoznačně najevo.
Následovala dlouhá diskuze (plná patchů) o tom, jak problém lépe vyřešit. Jediná věc byla jasná, a to, že není jasné, jaké řešení je to nejlepší. Proto 28. srpna Linus patch revertoval se slovy Je jasné, že diskuze ještě neskončila a patche, co se tu objevují, nejsou pro 3.11 vhodné. Proto bude funkčnost flink() muset počkat minimálně do 3.12.
Lehkotonážní virtualizace za použití kontejnerů je nástroj, který se konečně dostal na Linux, i když jsou tu ještě určité drobnosti, které scházejí. Kontejnery jsou vytvářeny pomocí dvou oddělených jaderných funkcí: řídících skupin (cgroups) a jmenných prostorů. Cgroups se aktuálně předělávají a možná ještě bude nutné přidat další jmenné prostory k těm, co jsou nyní k dispozici. Například není žádný způsob, jak oddělit většinu zařízení do vlastního jmenného prostoru. To je mezera, kterou by Oren Laadan rád zaplnil, takže nedávno rozeslal RFC ke jmenným prostorům zařízení.
Jmenné prostory rozdělují globální systémové prostředky tak, že různé skupiny procesů mají různý náhled na tyto prostředky. Například jmenné prostory mountů rozdělují připojené systémy souborů na různé pohledy s tím důsledkem, že procesy v jednom jmenném prostoru nemohou vidět nebo zacházet se systémy souborů připojenými v jiném. Obdobně jmenné prostory PID dávají každému jmennému prostoru vlastní rozsah čísel procesů (PID). Některá zařízení mají vlastní jmenný prostor nebo podobnou funkčnost: jmenné prostory pro síťová zařízení a pseudo systém soubprů devpts pro pseudoterminály (neboli pty). Ale není žádný způsob, jak rozčlenit všechna zařízení v systému, což mají za úkol právě jmenné prostory zařízení.
Cílem této funkčnosti je mít vícero virtuálních telefonů na jednom fyzickém telefonu. Člověk by například mohl mít dva kompletní androidí systémy na telefonu, jeden pro práci a druhý pro soukromé použití. Každý ze systémů by běžel ve vlastním kontejneru a vzájemně by byly izolované. Izolace by umožnila řídit aplikace a bezpečnost ve „firemní polovině“ telefonu, zatímco uživatel by si mohl udržovat osobní data bokem. Přehled, jak by to vypadalo, můžete vidět na videu. Většinu tohoto rozdělení je možné udělat už dnes, ale něco ještě chybí: virtualizace zařízení (např. framebufferu, dotykové obrazovky nebo tlačítek).
Návrh přidává koncept „aktivního“ jmenného prostoru zařízení, kterým by byl ten, se kterým uživatel právě pracuje. Výhodou je, že uživatel by mohl mezi identitami na telefonu přepínat stejně jednoduše jako mezi aplikacemi. Každá identita by měla přístup ke všem schopnostem telefonu v době, kdy jde o aktivní jmenný prostor, jakmile je ale neaktivní (nebo na pozadí), tak by přístup neměla.
Jmenný prostor se dělá obvyklým způsobem, a to pomocí clone(), setns() nebo unshare(). Jedním překvapením je to, že pro jmenné prostory zařízení nepřibyl nový příznak CLONE_* a příznak CLONE_NEWPID je přetěžován. Tento komentář v kódu vysvětluje důvod:
/* * Couple device namespace semantics with pid-namespace. * It's convenient, and we ran out of clone flags anyway. */
Ačkoliv spojení jmenných prostorů pro PID a zařízení může fungovat, vypadá to, že by se nějaké řešení pro příznaky clone hodilo. Jakmile je proces umístěn do jmenného prostoru zařízení, jakýkoliv open() zařízení, které podporuje jmenné prostory, povede k omezení tohoto zařízení na daný jmenný prostor.
Na určité úrovni je přidávání jmenných prostorů zařízení jen otázkou virtualizování major/minor čísel zařízení, aby každý jmenný prostor měl vlastní čísla. Čísla major/minor v jmenném prostoru odpovídají ovladači načtenému pro daný jmenný prostor. Ovladače, které mohou být dostupné vícero jmenným prostorům, budou muset být upraveny tak, aby jmenné prostory přímo podporovaly. U některých ovladačů, například těch, co nemají žádný skutečný stav (např. u Androidu subsystém LED nebo subsystém podsvětlení/LCD), by změny byly minimální – vlastně jen takový test. Pokud je jmenný prostor obsahující zařízení aktivní, tak pokračuj, jinak požadované změny ignoruj.
Zařízení jsou ale někdy stavová. Není jen tak možné přepnout v půlce posílání dat framebufferu (nebo proudy smíchat) a očekávat, že obsah obrazovky bude v pořádku. Proto ovladače a subsystémy budou muset podporovat přepínání. Například framebuffer by měl na obrazovce ukazovat jen změny od aktivního jmenného prostoru, ale ukládat si změny od jmenného prostoru na pozadí, aby po přepnutí tyto změny byly zobrazeny.
Laadan a jeho kolegové z Cellroxu vytvořili sadu patchů pro jádro na emulátoru Androidu (goldfish). Je tam také dosti podrobný popis patchů a změn udělaných u stavových i bezstavových zařízení. Vytvořili také demo pro Android, kde se přepíná mezi běžícím telefonem a aplikací, která ukazuje měnící se barvy.
Moc komentářů se na toto téma zatím nevyrojilo. Na jednu stranu dává smysl moci virtualizovat všechna zařízení v systému, na druhou stranu to znamená, že se hodně ovladačů bude muset upravit. Mohou se vyskytnout i určité „směrovací“ problémy – když zazvoní telefon, který jmenný prostor se o to postará? Existující API pro přepínání jmenných prostorů v podobě proof-of-concept bude také ještě potřebovat trochu pozornosti.
I když může jít o užitečnou funkčnost, může to také způsobit velkou vlnu změn v ovladačích. Jak snadno se jmenné prostory zařízení dostanou do hlavní řady jádra, bude dost možná záviset na tom, jaká další využití se pro toto najdou. Hlavní změny pro podporu funkčnosti ale nejsou veliké, takže přepínání identit na telefonu bude možná nakonec přece jen stačit.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: