Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.
Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".
Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).
Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".
Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.
OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.
Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
Přehled červencových vydání Jaderných novin: stav vydání jádra, citáty týdne a seznam článků týkajících se jádra.
LWN.net Weekly Edition for July 4, 2019.
Kernel release status. Jonathan Corbet. 3. července 2019
Vývojové jádro 5.2-rc7 bylo vydáno 30. června. Linus řekl: „Všechno je to malé a celkem nezajímavé. Aktualizace architektur, sítě, základy jádra, souborové systémy, různé ovladače. Nic nevyčuhuje – přečtěte si přiložený stručný seznam.“
Stabilní aktualizace: 4.14.131, 4.9.184 a 4.4.184 byly vydány 27. června; obsahují jediný patch, který cílí na regresi způsobenou opravami pádu TCP SACK. 5.1.16, 4.19.57 a 4.14.132 byly vydány 3. července.
Quotes of the week. Jonathan Corbet. 3. července 2019
Sdílený kód je dobrý, dokud se sdílení nestane tak složitým, že ani lidé schopní kód změnit nejsou ochotni na něj sáhnout a opravit ho. To se stalo bufferhead a opakuje se to napříč kódem jaderné infrastruktury.
Stojím si za vyjádřením, že kdokoliv tvrdí, že chce stabilní API pro ovladače, po technické stránce neví, co dělá. Množství balastu, které se v průběhu let a desetiletí nahromadí v interních API, operační systém zabije a máme dřívější příklady, kdy se tak stalo.
Jménem Linux Foundation Technical Advisory Board (TAB) bych ráda oznámila, že upravujeme pravidla hlasování pro letošní volby do TAB. Jednořádkové shrnutí zní tak, že bychom rádi přešli na elektronické volby namísto papírových hlasovacích lístků, aby se mohlo zúčastnit více členů komunity a ovlivnit složení TAB.
bpf()
: kontroverzní postup k uvolnění přístupu k systémovému volání bpf()
.LWN.net Weekly Edition for July 11, 2019.
Kernel release status. Jonathan Corbet. 10. července 2019
Jádro 5.2 bylo vydáno 7. července. Linus Torvalds řekl: „Navzdory docela pozdnímu vrácení zásadního kódu nevidím žádný skutečný důvod, proč věnovat další týden rc, takže 5.2 vychází normálně podle plánu.“
Mezi významnějšími změnami v 5.2 jsou nový příznak CLONE_PIDFD
volání clone()
za účelem získání pidfd pro nový proces, výrazné zlepšení výkonu verifikátoru BPF, které umožňuje navýšit horní limit velikosti programů BPF na 1 milion instrukcí, háček BPF pro správu nastavení sysctl, skupinu nových systémových volání pro připojování souborových systémů, vyhledávání nezávislé na velikosti písmen v souborovém systému ext4, zmrazování procesů pro druhou verzi řídících skupin, sledování zátěže a samozřejmě nepočítaně oprav. Více podrobností na stránce KernelNewbies o vydání 5.2.
Stabilní aktualizace: 5.1.17, 4.19.58, 4.14.133, 4.9.185 a 4.4.185 byly vydány 10. července.
Ryabitsev: Patches carved into developer sigchains. Jonathan Corbet. 8. července 2019
Konstantin Rjabicev zveřejnil dlouhý blogový zápisek popisující jeho představu o opuštění e-mailu pro účely vývoje jádra. „Myslím, že je příliš pozdě na to přijít s řešením, které by poskytovalo decentralizovanou, samoarchivující, plně ověřitelnou, všepokrývající vývojovou platformu řešící všechny aspekty vývoje jádra, nejen kód. Musí nás odtrhnout od e-mailových konferencí, ale aniž by v ní figuroval centrální bod důvěry, autority nebo selhání.“
Quote of the week. Jonathan Corbet. 10. července 2019
Myslím, že slova „stabilní jádro“ čteme odlišně. Ty vidíš „stabilní jádro“ jako jádro, které zůstává více méně pořád stejné a přijímá jen několik málo kritických oprav.
Na druhé straně je moje očekávání od „stabilního jádra“ takové jádro, které neobsahuje známé chyby. Slovo „stabilní“ si spojuji se stabilním běhovým prostředím, spíš než stabilním kódem.
clone3()
, fchmodat4()
, a fsinfo()
: trojice nových systémových volání pro Linux.SCHED_DEADLINE
a SCHED_RT
na systémech s omezenou či asymetrickou kapacitou.LWN.net Weekly Edition for July 18, 2019.
Kernel release status. Jonathan Corbet. 16. července 2019
Začleňovací okno 5.3 bylo otevřené, uzavření bylo očekáváno 21. července. Přehled, co bylo zpočátku začleněno.
Stabilní aktualizace: 5.2.1, 5.1.18 a 4.19.59 byly vydány 14. července.
Quote of the week. Jonathan Corbet. 17. července 2019
Zbývající změny, které jsou potřeba, aby [realtime preempce] byla prvotřídně podporována v hlavní větvi jádra, už nejsou hlavní větvi hned prokazatelně prospěšné. Většina z nich spočívá buď v přeskládání toku kódu, nebo přidání funkcí speciálně pro RT. Ale teď to narazilo do zdi a zvrhlo se v klasický problém vejce a slepice:
Správci se oprávněně mají napozoru před těmito změnami, protože dávají smysl pouze v poslední fázi integrace RT do hlavní hlavní větve jádra.Cílem přidání
CONFIG_PREEMPT_RT
je vyřešit to, má to být jasné znamení, že RT bude zcela integrováno do hlavní větve jádra.
LWN.net Weekly Edition for July 25, 2019.
Kernel release status. Jonathan Corbet. 24. července 2019
Vývojové jádro 5.3-rc1 bylo vydáno 21. července. „Každopádně, navzdory počátečním úskalím a velikosti se věci koncem začleňovacího okna více méně srovnaly. A je toho hodně, co by se v 5.3 mohlo líbit.“
Stabilní aktualizace: 5.2.2, 5.1.19, 4.19.60, 4.14.134, 4.9.186 a 4.4.186 byly vydány 21. července.
Obrovské aktualizace 5.2.3, 5.1.20 a 4.19.61 byly plánovány na 26. července, kdy skutečně vyšly.
Cook: security things in Linux v5.2. Jake Edge. 18. července 2019
Kees Cook na svém blogu prochází změny týkající se bezpečnosti v Linuxu 5.2. „Ačkoliv seznamy volného místa alokátorů SLUB a SLAB byly již nějaký čas randomizovány, u nadřazeného alokátoru stránek tomu tak nebylo. Takže umístění v paměti všeho, co provádělo alokaci mimo kmem_cache/kmalloc()
, bylo deterministické. To je špatně jednak pro zabezpečení, jednak pro některé případy správy mezipaměti. Dan Williams nyní implementoval i tuto randomizaci pod CONFIG_SHUFFLE_PAGE_ALLOCATOR
, což do rozložení paměti přidává další prvek nejistoty, i když s jen poměrně nízkou granularitou 4 MB (viz SHUFFLE_ORDER
). Také si všimněte, že tato funkce musí být povolena pomocí page_alloc.shuffle=1
při zavádění systému, pokud nemáte přímo mapovanou mezipaměť na straně paměti (zkontrolovat si to můžete v /sys/module/page_alloc/parameters/shuffle
).“
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Stojím si za vyjádřením, že kdokoliv tvrdí, že chce stabilní API pro ovladače, po technické stránce neví, co dělá. Množství balastu, které se v průběhu let a desetiletí nahromadí v interních API, operační systém zabije a máme dřívější příklady, kdy se tak stalo.
Tak zrovna k tomuhle slouží sémantické verzování – tzn. zpětná kompatibilita se nemusí udržovat donekonečna1, ale jen v rámci major verze. Pokud se mění jen minor a patch verze, tak by to mělo mít kompatibilní rozhraní.
[1] takže nehrozí, že by jádro bylo zaneřáděné nějakými historickými a nepoužívanými API
API = rozhraní. Je skutečně nutné ho měnit kvůli opravě chyby? Pokud ano, tak je to chyba návrhu a chtělo by to k němu příště přistupovat zodpovědněji. Někdy k tomu může dojít, ale měla by to být výjimečná situace. Může se např. stát, že někdo s tou chybou počítá – a pak je vlastně oprava chyby zpětně nekompatibilní změna.
A hlavně ten argument, na který jsem reagoval, byl:
Množství balastu, které se v průběhu let a desetiletí nahromadí v interních API, operační systém zabije
Tzn. obava o to, že by se v Jádře hromadil starý kód resp. stará rozhraní, která reálně už nikdo nepoužívá. To je ale zbytečná obava, protože tato rozhraní lze vyházet při povýšení major verze. Tzn. třeba jednou za rok za dva nebo jiné dohodnuté období se udělá čistka a zahodí se zastaralá rozhraní – ale všechny verze mezi tím budou zpětně kompatibilní.
Jsou dva extrémní přístupy: a) dodržovat zpětnou kompatibilitu navždy a b) neřešit ji a dělat nekompatibilní změny kdykoli. A pak je tu to sémantické verzování, které nekompatibilní změny nezakazuje (takže lze kód/rozhraní čistit), ale dělá tyto změny řízeně a předvídatelně.
Chápu, že Linux je trochu specifický projekt v tom, že tam je snaha mít všechen kód v jednom gitu a spravovaný centrálně (byť mnoha různými přispěvateli) a udržovat si nějaké moduly bokem není úplně běžné, ale i tak si myslím, že není nutné na tu kompatibilitu takhle úplně rezignovat.
Stabilni minor verze kernelu se udrzuje treba v Redhatu pres 10 let … Nikdo nechce udrzovat nejake rozhrani 10 let, kdyz ani nevi, jestli ho vubec nekdo mimo oficialni strom pouziva.
Lidé obvykle používají stabilní verze softwaru proto, aby měli jistotu, že se v nich nebude nic měnit, že se budou jen opravovat chyby a že se jim při těchto aktualizacích nerozbije nic, co dříve fungovalo. Pokud z toho budeš nějaké API vyřazovat, protože „se ti ho nechce udržovat“, tak už tam jaksi chybí ta žádoucí vlastnost, že po aktualizaci bude fungovat vše, co fungovalo dřív, a popírá to smysl té stabilní verze, ne?
Lidé obvykle používají stabilní verze softwaru proto, aby měli jistotu, že se v nich nebude nic měnit, že se budou jen opravovat chyby a že se jim při těchto aktualizacích nerozbije nic, co dříve fungovalo. Pokud z toho budeš nějaké API vyřazovat, protože „se ti ho nechce udržovat“, tak už tam jaksi chybí ta žádoucí vlastnost, že po aktualizaci bude fungovat vše, co fungovalo dřív, a popírá to smysl té stabilní verze, ne?Vubec ne, protoze ten, kdo tem lidem dodava jadro jim patricne upravi i ostatni casti, tak aby byly kompatibilni. Pokud nejaka distribuce aktualizuje jadro a ta zmena vyzaduje patch mimojadernych modulu, dojde k aktualizaci a prekompilovani modulu behem updatu. Naproste minimum lidi si udrzuje vlastni jaderne moduly a proto od stabilni verze jadra ocekavaji minimalni zmeny v chovani (napriklad zmeny logiky planovace) a ne stabilni API.