Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 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.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Aktuální vývojová verze jádra je 3.8-rc6 vydaná 1. února. Mám takový MazanýPlán(tm), jak zařídit, aby rc7 bylo lepší a menší. Plán závisí především na mé nedostupnosti v průběhu příštího týdne, protože pod vodou není Internet. Jakmile se Linus vrátí z potápění, tak má v plánu být velmi agresivní co se týče přijímání pouze těch patchů, které opravují velké bezpečnostní problémy, velké regrese nahlášené uživateli nebo závažné průšvihy Kódový název vydání se změnil; nyní je to „Gorila na unicyklu“.
Stabilní aktualizace: verze 3.0.62, 3.4.29 a 3.7.6 vyšly 3. února; verze 3.2.38 vyšla 6. února.
Abych parafrázoval Vetřelce: "Pod vodou si vaše maily nikdo nepřečte"
Dnešní strom s linuxovým jádrem obsahuje něco kolem 100.000 výskytů klíčového slova „goto“. Nejzanořenější použití goto jsem našel tady, hloubka je 12. Tato funkce je bohužel ohavná. Tady je mnohem čistší ukázka s hloubkou 10.
Zde je přehled cílů goto, které se vyskytují více než 200krát:
out (23228krát)
error (4240krát)
err (4184krát)
fail (3250krát)
done (3179krát)
exit (1825krát)
bail (1539krát)
out_unlock (1219krát)
err_out (1165krát)
out_free (1053krát)
-- John Regehr
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches @@ -93,7 +93,9 @@ includes updates for subsystem X. Please apply." The maintainer will thank you if you write your patch description in a form which can be easily pulled into Linux's source code management -system, git, as a "commit log". See #15, below. +system, git, as a "commit log". See #15, below. If the maintainer has +to hand-edit your patch, you owe them the beverage of their choice the +next time you see them.
(Pokud musí správce ručně upravovat váš patch, dlužíte mu při vašem příštím setkání napój dle jeho výběru.)
„nápoj“.
Prosil bych plzeň.
Kód implementující RAID 5 a 6 byl konečně zařazen do experimentální větve v repozitáři Btrfs; jde o důležitý krok na cestě do hlavní řady jádra. První výsledky benchmarků vypadají dobře, ale před označením kódu jako stabilní zbývá vyřešit několik problémů. Zde najdete oznámení, údaje z benchmarku a informace na téma, jak funguje RAID vyšší úrovně v Btrfs. Dost to zní jako MD raid a je to tím, že to je MD raid. Díky implementaci raidu uvnitř Btrfs můžeme používat odlišné úrovně raidu pro metadata a data a můžeme vynutit přepočítání parit, pokud nesouhlasí crc. Taktéž správa operací jako restriping a přidání/odstranění disků může být napojena na transakce v systému souborů. V dlouhodobém horizontu budeme moci přeskakovat čtení bloků, které nejsou alokované, a dělat další vazby mezi raid56 a metadaty systému souborů.
Jaderný ověřovač zámků (locking validator; známý také jako „lockdep“) je jeden z nějužitečnějších proaktivních nástrojů pro ladění, co komunita má. Od svého uvedení v roce 2006 odstranil většinu chyb, co v systému mohou způsobit deadlocky. Protože deadlocky je extrémně obtížné zopakovat a diagnostikovat, výsledkem je díky němu mnohem spolehlivější jádro a šťastnější uživatelé. Při vývoji pro uživatelský prostor je o stejné nástroje nouze, a to navzdory tomu, že i tam může docházet k deadlockům. Ale už je to tak, že zpřístupnění lockdepu pro uživatelský prostor je nakonec mnohem snažší, než by kdo byl řekl.
Lockdep funguje tak, že obaluje volání zámků v jádře. Kdykoliv je určitý typ zámku uzamčen nebo uvolněn, tato skutečnost je zaznamenána spolu s dalšími údaji jako jestli zrovna procesor obsluhoval přerušení. Lockdep si také zaznamenává, které jiné zámky byly v této době uzamčeny; toto je klíčem k většině ověřování, které lockdep dokáže provádět.
Abychom si toto ukázali názorně, představme si dvě vlákna, kde obě chtějí uzamknout dva zámky nazvané A a B.
Pokud jedno vlákno nejprve uzamkne A, zatímco to druhé uzamkne B, tak může situace vypadat následovně:
Pokud se teď obě vlákna pokusí uzamknout druhý zámek, systém se dostane do potíží:
Obě vlákna nyní budou navždy čekat na to, než to druhé z nich odemkne zámek, který drží; systém je nyní ve stavu zvaném deadlock. K tomuto nemusí nikdy dojít; aby se stal podobný deadlock, obě vlákna by musela získat zámek v nevhodný okamžik. Ale jak to na počítačích bývá, i nepravděpodobné věci se dříve či později přihodí, nejčastěji když se to zrovna nejméně hodí.
Této situaci je možné se vyvarovat: pokud obě vlákna budou dodržovat pravidlo, že A musí být vždy zamykáno dříve než B, pak tento konkrétní deadlock (ze zjevných důvodů zvaný „AB-BA“) nemůže nastat. Jenže máme-li systém s velkým množstvím zámků, pak není vždy jasné, jaké pravidla pro uzamykání tu jsou, natož jestli jsou konzistentně dodržována. Chybovat je snadné. Právě zde lockdep přijde vhod: díky tomu, že sleduje pořadí získávání zámků, dokáže upozornit kdykoliv zpozoruje, že vlákno uzamklo A, zatímco už vlastní B. K získání hlášení od lockdepu není nutné způsobit deadlock, což znamená, že i ty nejnepravděpodobnější situace vedoucí k deadlocku mohou být odhaleny dříve, než nastanou. Není vůbec potřeba čekat přesně na konkrétní situaci, kdy se věci pokazí, na to, aby člověk viděl, že je někde problém.
Lockdep dokáže odhalit komplikovanější situace, než jakou jsme si popsali. Dokáže také odhalit související problémy jako zámky, které není bezpečné používat v obsluze přerušení, a přitom se tam používají. Jak asi očekáváte, běh jádra se zapnutým lockdepem znatelně zpomaluje běh; není to tedy volba, kterou byste aktivovali na produkčním systému. Naštěstí je tu ale dostatek vývojářů, kteří mají lockdep zapnutý, takže většina problémů je odhalena dříve, než se dostanou do stabilního vydání jádra. Díky tomu jsou v dnešní době deadlocky na produkčních systémech vcelku výjimečné.
Přesunout jaderné nástroje do uživatelského prostoru není vždy jen tak; jaderné prostředí se znatelně liší od běžného prostředí C, takže jaderný kód je obvykle možné spustit jen v jádře samotném. V tomto případě ale Sasha Levin vypozoroval, že na subsystému lockdep není moc věcí doopravdy specifických pro jádro. Lockdep shromažďuje data a sestavuje grafy popisující vypozorované vzorce získávání zámků; jde o kód, který by mimo jádro mohl běžet vcelku snadno. Proto Sasha sestavil patch, kterým vzniká knihovna lockdep dostupná pro programy v uživatelském prostoru.
Lockdep samozřejmě volá spoustu funkcí jádra, proto je součástí Sashova patche dlouhý seznam prázdných implementací pro funkce jako local_irq_enable(), které v uživatelském prostoru nemají význam. Pro sledování vláken v uživatelském prostoru se používá zkrácená verze struct task_struct a funkce jako print_stack_trace() jsou nahrazeny obdobami z uživatelského prostoru (v tomto případě to je backtrace_symbols_fd()). Interní jaderné zámky (používané v lockdebp) jsou reimplementovány pomocí POSIXových mutexů pthread. Pahýly hlavičkových souborů používané v lockdepu se nacházejí ve zvláštním adresáři. A tak dále. A jakmile je všechno toto hotovo, tak je možné kód lockdepu sestavit přímo mimo strom jádra a vyrobit z něj knihovnu.
Kód z uživatelského prostoru, který chce využít knihovny lockdep, musí nejprve učinit #include <liblockdep/mutex.h>, který mimo jiné přidává skupinu wrapperů kolem typů pthread_mutex_t a pthread_rwlock_t a funkcí, pomocí nichž se s nimi pracuje. Je nutné zavolat liblockdep_init(); každé vlákno by navíc mělo zavolat liblockdep_set_thread() pro inicializaci údajů pro hlášení problémů. To je asi tak vše, co je potřeba; takový program bude mít používání mutexů a r/w zámků sledované lockdepem.
Jako důkaz patch také přidává podporu pro liblockdep do nástroje perf, který se nachází ve stromě jádra.
Jednou z klíčových vlastností Sashova patche je to, že nevyžaduje žádné úpravy v jaderném kódu lockdepu. Knihovnu pro uživatelský prostor je možně sestavit přímo z kódu z jádra. Mimo jiné to znamená, že všechny budoucí opravy a vylepšení budou bezpracně dostupné i v uživatelském prostoru.
Dalo by se to shrnout tak, že tento patch vypadá jako významně prospěšný pro všechny zúčastněné strany; proto nepřekvapí, že se proti patchi ani nezformoval žádný odpor. Objevila se žádost o lepší dokumentaci, explicitní zmínku, že kód je pod GPL, a přepínač aktivující liblockdep až za běhu (aby knihovna mohla být vestavěna do aplikací, ale nemusela by se používat, dokud by to nebylo nutné). Tyto drobnosti by ale nemělo být těžké doplnit. S trochou štěstí bude mít uživatelský prostor v blízké budoucnosti přístup k lockdep, což povede ke spolehlivějšímu používání zámků.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
s/výt/být/;
Jinak pěkný díl