V Redisu byla nalezena a v upstreamu již opravena kritická zranitelnost CVE-2025-49844 s CVSS 10.0 (RCE, vzdálené spouštění kódu).
Ministr a vicepremiér pro digitalizaci Marian Jurečka dnes oznámil, že přijme rezignaci ředitele Digitální a informační agentury Martina Mesršmída, a to k 23. říjnu 2025. Mesršmíd nabídl svou funkci během minulého víkendu, kdy se DIA potýkala s problémy eDokladů, které některým občanům znepříjemnily využití možnosti prokázat se digitální občankou u volebních komisí při volbách do Poslanecké sněmovny.
Společnost Meta představila OpenZL. Jedná se o open source framework pro kompresi dat s ohledem na jejich formát. Zdrojové kódy jsou k dispozici na GitHubu.
Google postupně zpřístupňuje českým uživatelům Režim AI (AI Mode), tj. nový režim vyhledávání založený na umělé inteligenci. Režim AI nabízí pokročilé uvažování, multimodalitu a možnost prozkoumat jakékoliv téma do hloubky pomocí dodatečných dotazů a užitečných odkazů na weby.
Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.
Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.
Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.
Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.
Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.
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.