TerminalTextEffects (TTE) je engine pro vizuální efekty v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Od čtvrtka 30. 5. do soboty 1. 6. lze v Praze navštívit Veletrh vědy, tj. největší populárně naučnou akci v České republice, kterou každoročně od roku 2015 pořádá Akademie věd ČR. Vstup zdarma.
Canonical představil Ubuntu optimalizované pro jednodeskový počítač s RISC-V procesorem Milk-V Mars.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 24.5.1 Havier. Přehled novinek v Changelogu.
Společnost xAI založena Elonem Muskem a stojící za AI LLM modelem Grok získala investici 6 miliard dolarů.
Finálový zápas mistrovství světa v ledním hokeji přinesl nový rekord NIX.CZ (𝕏): "Dosavadní absolutní maximum našeho propojovacího uzlu bylo překonáno v čase 21:10, kdy jsme při přenosu dat dosáhli 3,14 Tbps. Je třeba také doplnit, že po deváté hodině večerní byly na maximu i ostatní datové přenosy nesouvisející s hokejovým šampionátem".
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 12. a 13. října na FIT ČVUT v pražských Dejvicích. CfP poběží do konce prázdnin, pak proběhne veřejné hlasování a výběr přednášek.
Na crowdsourcingové platformě Crowd Supply byla spuštěna kampaň na podporu open source biometrického monitoru ve tvaru hodinek HealthyPi Move. Cena je 249 dolarů a plánovaný termín dodání listopad letošního roku.
Firma Murena představila /e/OS verze 2.0. Jde o alternativní sestavení Androidu bez aplikací Google. Mezi novinkami je podrobnější nastavení ochrany soukromí před sledováním aplikacemi. Murena prodává několik smartphonů s předinstalovaným /e/OS (Fairphone, repasovaný Google Pixel 5).
Aktuální vývojová verze jádra je 3.15-rc5 vydaná 9. května. A ačkoliv rc5 bude možná větší než rc3/4, nemám z toho obavy. Toto začleňovací okno bylo větší než většina jiných a tedy to, že je rc5 o něco větší než obvykle, mě příliš neznepokojuje. A protože rc4 zase bylo menší než obvykle, tak se to pěkně vyrovná. Celý příští týden ale nebudu vůbec dostupný, takže se vrhněte na testování, jelikož na -git stromu bude ticho.
Stabilní aktualizace: verze 3.14.4, 3.10.40 a 3.4.90 byly vydány 13. května.
Možná že důvodem, proč Linus přešel na git (a předtím na BK) je částečně i to, aby se vyhnul problému posílej-patche-dokola-než-je-Linus-přestane-zahazovat. Vypadá to, že jsme problém ani tak neopravili, jako ho spíš přesunuli o krok dál na správce subsystémů.
Dřív jsem si myslel, že 32bitová zařízení budou do roku 2025 minulostí. Nejen, že je teď zjevné, že tomu tak nebude, dokonce jsem se zmýlil tím nejhorším způsobem... a to proto, že všude tam, kde dnes máme 8bitové mikrokontroléry za pár korun s triviálními operačními systémy, budeme mít 32bitové mikrokontroléry za pár korun a na velkém množství z nich poběží Linux. Jak se blížíme k bodu, kdy nejdražší věcí na mikrokontroléru je jeho obal, tak už není důvod si nepořídit výkonné CPU se skutečným OS a minimalizovat čas strávený programováním toho zmetka.
Jak tomu tak bývá, jaderní výojáři nemají rádi, když se problémy obcházejí nebo skrývají za pomoci všelijakých hacků. Ačkoliv nedávno zaslaný patch, který právě takový hack používá, asi nebude začleněn, byl obecně vcelku dobře přijat a předvádí zajímavý způsob použití této techniky. Když už jsou naděje na správnou opravu problematického subsystému ztraceny, tak je možná čas na zoufalé činy.
Subsystém, o kterém se bavíme, je ten, který se stará o hotplug CPU. Nabízí se řada důvodů, proč bychom mohli chtít za běhu připojovat (nebo odebírat) CPU na běžícím systému: hardware nám něco takového zkrátka umožňuje nebo chceme odpojit procesor, který se špatně chová. Ve světě virtualizace je změna počtu CPU za běhu zjevným způsobem, jak upravit výpočetní výkon dostupný hostovskému systému. Tato funkčnost má svůj přínos a nikdo by určitě nenavrhoval ji odstranit. Ale nikdo není spokojený s tím, jak byl CPU hotplug implementován.
Změna procesorů na běžícím systému je komplexní operací; na různých úrovních se nachází řada stavů specifických pro procesor, o které je nutné se postarat. V takových situacích dává smysl mít obecný mechanismus, který se stará o složitost, rozděluje ji na jednoduché kroky a zajišťuje, že tyto kroky jsou provedeny ve správném pořadí. Linuxové jádro takový mechanismus bohužel nemá; namísto toho má matoucí pole notifikátorů a zpětných volání, se kterým je obtížné něco dělat. Nepřekvapí tedy, že se v něm nacházejí chyby; vývojáři, kteří se odhodlali je jít hledat, neměli problém na nějaké hned narazit.
Chyb je tam dokonce tolik, že se Borislav Petkov chce postarat o to, aby bylo těžší je najít. V úvodu jeho patche se píše:
Máme tady hromadu přehnaně aktivních testerů, co slepí nějaký skript a začnou bezmyšlenkovitě mlátit do CPU hotplugu a pak hlásí chyby, co se jim podařilo vyvolat.
V první řadě se většina chyb, ne-li všechny, týká tak či tak hotplugu. Ale víme, že hotplug je slepený lepící páskou a a přelepený papírovými pytlíky. Proto jednoznačně marníme příliš mnoho času nad mechanismem, o kterém víme, že je beztak celý rozbitý.
Jeho řešení bylo jednoduché: vložit jednosekundovou prodlevu do každé operace hotplug. Takové zpomalení minimalizuje počet operací, které je možné testovat, a také souběhy mezi nimi. Mělo by to pěkně omezit přísun hlášení chyb.
Má to ale jeden drobný háček: tento patch neopravuje žádné chyby; jen je skrývá. Andrew Morton rychle podotkl, že by takový patch s jisotou vedl k méně opraveným chybám. Thomas Gleixner si zato myslí, že to může být dobrá věc: Kdyby lidé raději strávili stejné množství času tím, že by ten binec v hotplugu přepsali, bylo by to jen ku prospěchu. Ale ne, my tam radši nacpeme ještě víc lepící pásky a všelijakých hacků.
Thomas se už v minulosti o určitý přepis pokusil; v Jaderných novinách jsme o tom psali vloni. Rozdělil hotplug a hotunplug na dlouhý seznam jednotlivých kroků; pak sestavil systém, který je spustí v řádně definovaném pořadí. Ke skutečnému řešení problému to ale mělo daleko; většina stávajícího kódu hotplugu zůstala, jak byl, jen se volal jinak. Vznikl ale framework, který by časem mohl pomoci kompletnímu přepisu.
Jediným problémem je, že nikdo přepis neuskutečnil. Thomasovi došel čas a přesunul se zpět k jiným úkolům a nikdo to po něm nepřevzal, takže patche od svého zveřejnění akorát chřadnou. Namísto přepisu se přidávají opravy čím dál složitějších chyb (nedávný příklad) ve snaze stávající implementaci urdžet v běhu. Tyto opravy mohou řešit konkrétní chyby, ale neřeší složitost a neudržovatelnost systému jako celku; samozřejmě nakonec problémy spíš zhoršují.
Borislava k zaslání patche vedla frustrace z lepení dalších vrstev lepící pásky a papírových pytlíků. Nakonec je to tak, že vývojáři, kteří se v této oblasti kódu pohybují, nechtějí další opravy chyb; chtějí, aby byl kód jednodušší a snáze pochopitelný, aby se přestaly valit opravy, co kód ještě zhoršují. Ztížení nacházení chyb v tomto subsystému je takovým hrubým pokusem o to, jak přesunout pozornost vývojářů jinam.
Patch je samozřejmě spíš vyjádřením postoje, než skutečnou snahou o změnu jádra; bylo by překvapivé, kdyby byl patch začleněn. Ve světě, kde správci subsystému jádra nemohou nutit vývojáře pracovat na konkrétní oblasti a kde žádný manažer neuznal za vhodné, aby jejich podřízení pracovali na vyřešení problému s hotplugem CPU, je někdy nutné být kreativní, aby se podařilo s něčím hnout. Můžeme jen doufat, že zaslání tohoto patche konečně někoho rozhoupe k tomu, aby na problému zapracoval. Thomas ale možná tuto snahu nechtěně sabotoval tím, že řekl, že jestliže se k přepisu subsystému pro hotplug CPU nikdo nedostane, udělá to sám.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Jak bránit nalézání dalších chybNa tuhle formulaci bych si dával pozor ;).