Byla vydána únorová aktualizace aneb nová verze 1.110 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.110 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Apple představil 13palcový MacBook Neo s čipem A18 Pro. V základní konfiguraci za 16 990 Kč.
Kalifornský zákon AB 1043 platný od 1. ledna 2027 vyžaduje, aby operační systémy požadovaly po uživatelích věk nebo datum narození a skrze API poskytovaly aplikacím informaci, zda je uživatel mladší 13 let, má 13 až 16 let, má 16 až 18 let nebo má alespoň 18 let. Vývojáři linuxových distribucí řeší, co s tím (Ubuntu, Fedora, …).
Konference LinuxDays 2026 proběhne o víkendu 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Čekají vás desítky přednášek, workshopy, stánky a setkání se spoustou chytrých lidí.
Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 145. Aktuální verze Firefoxu je 148. Od září přejde Chrome na dvoutýdenní cyklus vydávání. V kterém týdnu bude mít Chrome větší číslo verze než Firefox? 😀
Apple představil nové čipy M5 Pro a M5 Max, MacBook Pro s čipy M5 Pro a M5 Max, MacBook Air s čipem M5 a Studio Display a nový Studio Display XDR.
Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13.
Byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Apple představil iPhone 17e a iPad Air s čipem M4.
Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.
Současné vývojové jádro 4.12-rc2 bylo vydáno 21. května. Linus řekl: „Jsem zpět u obvyklého časového plánu s nedělním vydáním a všechno vypadá celkem normálně. Toto rc2 je možná o něco větší než obvykle, ale celé začleňovací okno bylo větší než bývá, takže to je možná tím. A není až tak velké.“
Stabilní aktualizace: 4.11.2, 4.10.17, 4.9.29, 4.4.69 a 3.18.54 byly vydány 20. května.
Velké aktualizace 4.11.3, 4.9.30, 4.4.70 a 3.18.55 byly v době psaní tohoto článku v procesu revidování, vydány byly 25. května.
Kontejnery jsou mnohavrstvé a složité. Pokud na to jako uživatelé nejste připraveni, pak byste měli použít orchestrační systém, který zabrání, abyste něco pokazili.
V roce 2014 vyvolalo rozruch zjištění, že jaderný subsystém správy paměti neumožňuje relativně malým žádostem o alokaci selhat. Diskuze se od té doby uklidnila, ale pravidlo „příliš malý, než aby selhal“ stále vyvolává v jaderné komunitě jisté zmatky, jak dokládá nedávná diskuze inspirovaná začleňovacím oknem 4.12. Zdá by se, že pravidlo stále platí, ale vývojáři jsou žádáni, aby se chovali, jakoby tomu tak nebylo.
Na začátku tehdejší diskuze popsal vývojář správy paměti Michal Hocko „nepsané pravidlo“, že malé alokace nikdy neselhávají. „Malost“ určuje jaderná konstanta PAGE_ALLOC_COSTLY_ORDER – obvykle nastavená na tři – práh na většině systémů je tím pádem osm stránek, resp. 32 kB. Téměř všechny alokace paměti v jádře jsou menší (byla vynaloženo nemalé úsilí udržet je do velikosti jedné stránky), takže v důsledku pokusy o alokaci paměti téměř nikdy neselhávají.
To způsobilo nespokojenost hned z několika důvodů. Jedním z nich je, že jaderným vývojářům je od začátku tlačeno, že každá alokace paměti může selhat, takže místa, kde mohlo dojít k selhání, pečlivě ošetřovali, ačkoliv se tento kód nikdy nepoužije. Toto pravidlo může také způsobit, že jádro bude dělat nepříjemné věci – jako například vyvolání obávaného out-of-memory zabijáka – místo toho, aby došlo k selhání požadavku, a to i v případě, kdy je žádající kód připraven se se selháním alokace důstojně vypořádat. Návrhy na změnu tohoto pravidla vždy ztroskotaly z obavy, že povolení selhání alokací by odhalilo chyby napříč jádrem. Většina kódu řešícího selhání dost možná dosud nikdy nebyla vykonána – nebo nemusí vůbec existovat. Takže chování „příliš malý, než aby selhal“ zatím zůstává.
Žádost o začlenění oprav NFS klientu Tronda Myklebusta obsahuje řádek: „Vyčištění a odstranění některých ošetření selhání paměti, když GFP_NOFS teď zaručuje, že nikdy neselže.“ Ten popis byl nepřesný: daný kód používá mempool, který alokuje paměť předem a pokud se používá správně, může skutečně zaručit, že k selhání alokace nedojde. Ale to stačilo, aby se Nikolaj Borisov zeptal, zda to skutečně zaručí úspěch alokace. Pokud ano, bylo by možné z jádra odstranit mnoho nepotřebného kódu ošetřujícího chyby. Hocko odpověděl, že zatímco „malé alokace _v praxi_ nikdy neselžou,“ toto chování není ničím zaručeno a odstranění ošetření selhání alokace je „prostě špatně“.
Myklebust nebyl s touto odpovědí zcela spokojen, požádal o jasné prohlášení, že malé alokace mohou selhat. Toho se mu nedostalo. Místo toho Hocko odpověděl:
Byli bychom raději, kdyby tyto požadavky opravdu selhaly. Snažil jsem se o to v minulosti, ale bylo to považováno za příliš nebezpečné, protože by kvůli chování při selhání musely být zkontrolovány _všechny_ případy v jádře. Takže radši udržujeme status quo.
Status quo – informovat vývojáře, aby byli připraveni na selhání alokací, aniž by k selhání požadavků o alokací skutečně docházelo – je pro všechny, kdo se této diskuze účastní, dosti nepříjemný. V mnoha částech jádra představuje ošetřování chyb velký podíl objemu kódu. Kód může být složité napsat a ještě složitější otestovat. Bývá frustrující být požádán připravit se na situaci, která nikdy nestane.
Vývojáři správy paměti ale toto chování nemohou jen tak změnit. Není pochyb, že v jádře s tisíci nikdy neprovedených, nikdy netestovaných kusů kódu ošetřujícího chyby, budou některé z nich obsahovat chyby. Audit jádra a ověření všech těchto míst by nebylo malým úkolem, mírně řečeno. Možná to není vůbec proveditelné. Co se dá dělat, je ověřovat a opravovat kód kousek po kousku. Takto byl v roce 2011 konečně odstraněn velký jaderný zámek (big kernel lock, BKL). Tato práce pokračovala tím, že byly postupně odstraňovány závislosti na BKL z malých částí kódu, až ho nakonec nic nepotřebovalo. Trvalo to mnoho let, ale podařilo se.
V případě selhání alokace paměti nebude ověření kódu vždy snadné. Framework pro zavádění chyb se ale dá použít k vynucení alokačních chyb, což může pomoci při testování ošetření kódu. U kódu, který se považuje za správně připravený, lze chování „nikdy neselže“ vypnout v libovolné podané žádosti o alokaci jednoduše přidělením příznaku __GFP_NORETRY, což bylo provedeno ve zhruba stovce alokačních volání v jádře 4.12-rc1. Zda se tento příznak rozšíří do větší části jádra, zůstává otázkou. Stejně jako při procesu odstraňování BKL bude pravděpodobně zapotřebí pomoci skupiny vývojářů ochotné úkolu věnovat hodně času.
Jaderná komunita provádí změny vnitřního API pravidelně. Většinou se jedná o prosté editování kódu nebo použití skriptů Coccinelle. Ale jemné sémantické změny jsou náročnější a vyloučení chování „příliš malý, než aby selhal“ se za takovou změnu jistě považuje. Čím déle v jádře zůstane, tím více kód pravděpodobně zakoření, ale neexistují žádné náznaky, že by se to brzy mohlo změnit.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: