Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.8.
Herní studio Hangar 13 vydalo novou Mafii. Mafia: Domovina je zasazena do krutého sicilského podsvětí na začátku 20. století. Na ProtonDB je zatím bez záznamu.
Operátor O2 má opět problémy. Jako omluvu za pondělní zhoršenou dostupnost služeb dal všem zákazníkům poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství.
Společnost OpenAI představila GPT-5 (YouTube).
Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.
Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.
Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.
Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.
Současný vývojový cyklus 4.1-rc3 byl vydán 10. května. Linus: "Testujte. Od -rc3 by nemělo jít o nic ohrožujícího, takže pokud jste již nezkoušeli jednu z předchozích vývojových verzí kernelu, bylo by fajn se ujistit, že vše běží jak má."
Stabilní aktualizace: 3.10.77, 3.14.41, 3.19.7 a 4.0.2 byly vydány 7. května. Verze 3.19.8 (poslední update verze 3.19) následoval 11. května. Aktualizace 4.0.3, 3.14.42 a 3.10.78 vyšly 13. května.
Společnost Canonical oznámila, že bude 3.19 udržovat do konce července 2016.
Nemám rád možnost "vypnout bezpečnost pro výkon", protože Joe SpeedRacer bude vždy upřednostňovat rychlost před bezpečností.
Ingo, mám pocit, žes mi právě dal zdarma štěně...
PR_SET_DATAPLANE, BARE_METAL, NO_INTERRUPTS, NO_HZ_PURE, NO_HZ_LEAVE_ME_THE_FSCK_ALONE, NO_HZ_OVERFLOWING, CONFIG_ISOLATION, PR_SET_NONSTOP...
-Výbor pro pojmenovávání funkcí jádra se sídlem v kůlně na opravu kol
Jednotky správy paměti zabudované do většiny současných procesorů, jsou schopné řídit přístupy jednotlivých stránek k paměti. Operační systémy jako Linux umožňují aplikacím tuto kontrolu v uživatelském prostoru; jedná se o bity ochrany, které jsou k dispozici, např. mmap() či mprotect(). Ty umožňují procesům určit, zda má být konkrétní stránka dostupná pro čtení, zápis či spuštění. Tato úroveň zabezpečení sloužila dlouho, takže by se někdo mohl domnívat, že poskytuje vše, co aplikace potřebuje. Jenomže nová hardwarová funkce, vyvíjená pod hlavičkou společnosti Intel, naznačuje něco jiného. První kolo záplat podporujících novou funkci ukazuje jak k ní mohou programy získat přístup.
Funkce se jmenuje "Klíče na ochranu paměti" (MPK - Memory Protection Keys) a bude dostupná pouze pro 64bitové procesory Intel. Povolením této funkce bude možné přidělit (dříve nevyužitým) čtyřem bitům ve všech záznamech tabulky stránek jednu z šestnácti "klíčových" hodnot každé jednotlivé stránce. Nový je také 32bitový procesorový registr se dvěma bity pro každou klíčovou hodnotu. Nastavením bitu "write disable" pro daný klíč dojde z zablokování všech pokusů o zápis do stránek s touto klíčovou hodnotou. Nastavením "access disable" dojde i k zablokování čtení. Funkce MPK tedy umožňuje procesům rozdělit svou paměť nejvýše do 16 oblastí a selektivně povolit nebo zakázat přístup ke kterékoli z nich. Kontrolní registr je samostatný pro každé vlákno, takže je možné nezávisle povolovat či zakazovat libovolnou oblast.
Sadu patchů, které funkci MPK povolují, zveřejnil již dříve pro revizi Dave Hansen. I když jak poznamenal, prozatím nebude moci nikdo kromě lidí z Intelu kód spustit. Dave doufá, že jakmile bude daný hardware k dispozici, získá alespoň komentáře k (minimálním) API změnám v uživatelském prostoru pro podporu MPK.
V navrhovaném designu mohou aplikace nastavit klíče za pomocí některého ze systémových volání, které nastavují další zabezpečení stránek, např. mprotect(). Pro reprezentaci klíčových bitů byly definovány čtyři nové příznaky (flags) (PROT_PKEY0 až PROT_PKEY3). V jádře jsou tyto bity uloženy v oblasti virtuální paměti (VMA), a "pushnuty" do příslušných umístění v hardwarové tabulce stránek. Jestliže se ke stránce pokusí proces získat přístup způsobem, který není povolen ochrannými klíči, dostane obvyklý signál SIGSEGV. Zachytí-li tento signál, může vyhledat nový kód SEGV_PKUERR (v poli si_code struktury siginfo_t předané obsluze), pro detekci chyby způsobené ochranným klíčem. Momentálně nelze zjistit, který klíč chybu způsobil, ale tato část funkce je v seznamu věcí, které je třeba udělat.
Někdo by mohl namítat, proč je taková funkce zapotřebí, když toho co umí, lze docílit pomocí bitů ochrany paměti, které jsou již k dispozici. Problém se současnými bity je v tom, že je dost složité s nimi manipulovat. Každá změna vyžaduje zrušení platnosti Translation Lookaside Bufferu (TLB) v rámci celého systému, což je špatné samo o sobě, ale změna bezpečnosti jedné oblasti paměti může vyžadovat individuální změny v zápisech tabulek stránek pro tisíce (i více) stránek. Jakmile dojde k nastavení ochranných klíčů, může být daná oblast paměti povolena či zakázána jediným zápisem do registru. Velké zlepšení výkonu se tak projeví u všech aplikací, které vyžadují časté změny v oblastech adresního prostoru.
Otázkou (jak se ptal Ingo Molnar) zůstává, proč by měl proces tak často chtít měnit ochranu paměti. Důvodů pro vývoj této funkce je hned několik. Jedním je nakládání s citlivými šifrovanými daty. Šifrovací klíč by mohl využít síťový démon k zašifrování dat před jejich odesláním, zakazu přístupu k části paměti obsahující tento klíč (a textová data) a odeslání dat. V takovém případě nehrozí únik klíče ani dat. Tento způsob ochrany by mohl aplikace činit odolnější vůči útokům.
Dalším často zmiňovaným využitím je ochrana oblastní paměti před jejich poničením nechtěným "zbloudilým" přepisem. Databáze v paměti by mohla takovým zápisům zabránit a povolit je pouze v případě nutné změny. Tímto způsobem by se dalo po nějakou dobu předcházet poškození databáze v důsledku chyby. Ingo byl o tomto využití přesvědčený a navrhoval 64bitový adresní prostor, který by měl být dost velký pro ukrytí dat a jejich ochranu před poškozením. Také navrhl, že by verze mprotect(), která původně přeskočila TLB zneplatnění, mohla řešit problémy s výkonem, hlavně v případech využití velkých stránek. Na to reagoval Alan Cox tvrzením, že je velká poptávka po možnosti měnit GB paměti najednou, a na to, že je mprotect() příliš pomalý.
Mít možnost vypnout nečekané zápisy by mohla být velmi užitečná v situacích, kdy je základní (underlying) pamětí zařízení s trvalou pamětí; jakékoli chybné zápisy půjdou okamžitě do trvalé paměti. Využití pro MPK by našel také nástroj Valgrind.
K přidání hardwarové funkce MPK dochází z důvodu zájmu zákazníků bez ohledu na Molnarovy obavy. Bylo by tedy divné, kdyby ji kernel v budoucnu nepodporoval zvlášť proto, že její zavedení není nikterak invazivní. Otázkou tedy zůstává, zda je navrhovaný API pro uživatelský prostor správný, a udržitelný v dlouhodobém horizontu. Doufejme, že se na patch podívají ti vývojáři, kteří by funkci mohli využít, a že se v případě nějakých problémů ozvou.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
K přidání hardwarové funkce MPK dochází z důvodu zájmu zákazníků bez ohledu na Molnarovy obavy. Bylo by tedy divné, kdyby ji kernel v budoucnu nepodporoval zvlášť proto, že její zavedení není nikterak invazivní.
Čistě pragmaticky: když pro to nebude standardní rozhraní v mainline, nepochybně rychle přispěchají nechvalně proslulé firmy se svými closed source moduly. A to mi rozhodně nepřipadá jako lepší alternativa.
Otázkou tedy zůstává, zda je navrhovaný uživatelský prostor API správný…
Znovu a znovu: když se v angličtině vyskytnou dvě podstatná jména za sebou, většinou to znamená, že první se stává přívlastkem rozvíjejícím to druhé. Takže "user-space API" není "uživatelský prostor API" ale "API pro uživatelský prostor".
Vlákno bylo přesunuto do samostatné diskuse.