GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.
Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.
Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.
Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.
Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.
O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.
Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.
Začleňovací okno 4.7 zůstává otevřeno. Pro shrnutí změn začleněných do vydání 4.7 viz níže.
Stabilní aktualizace: 4.5.5, 4.4.11 a 3.14.70 byly vydány 18. května.
waitid()
Práce na fuzzingu systémových volání nedávno ukázala na zajímavý problém mnoha linuxových systémů. Proces může v závislosti na použitém init systému vytvořit trvalého zombie potomka tak, že naklonuje vlákno, zavolá na něj ptrace() a skončí. Pokud daný init na proces nečeká „správným způsobem“, dané vlákno zůstane nepovšimnuto a nebude ani odstraněno. Na rozdíl od jiných zombie se však nebude pohybovat po systému hledajíc mozky ke svačině, nýbrž bude navždy nehnutě sedět a jen spotřebovávat paměť, což už je špatné samo o sobě.
Čistě technicky se nejedná o problém jádra: volání waitid() (které většina implementací init systémů zřejmě používá) nemá při absenci příznaku __WALL čekat na své podomky. Jedná se však o typ DoS (Denial of Service), změna všech implementací initu by bylo nepraktické a konečně: systémové volání waitid() – na rozdíl od volání wait4() – příznak __WALL vůbec neakceptuje. Oleg Nesterov se tudíž rozhodl, že tento problém by se měl vyřešit v jádře, přestože o chybě můžeme říct, že je to problém někoho jiného.
Takže od verze 4.7 bude volání waitid() čekat na procesy potomků, které běží pod ptrace(). Volání bude také akceptovat příznak __WALL, i když ho proti invazi zombií nebude zapotřebí. Jak Oleg poznamenal v seznamu změn, jedná se o změnu ABI: „__WCLONE a __WALL již pro debugger nemají význam. Jen doufám že se tím nic dalšího nepokazí. Ale aspoň už nebude trpět strace/gdb.“ Tato změna by neměla způsobovat problémy nikde jinde, ale jeden nikdy neví. Pokud se ve vývojovém cyklu 4.7 objeví problémy, možná bude tahle změna muset zase ven.
V době psaní tohoto článku bylo Linusem do hlavního repozitáře jádra 4.7 začleněno 9900 neslučovacích sad změn, z toho 6500 od shrnutí z minulého týdne. Po téměř rekordním množství změn, které šly do verze 4.6, komunita trochu zpomalila, ale jen o trochu.
Některé zajímavé změny viditelné uživatelům zahrnují:
Změny viditelné jaderným vývojářům:
Příliv patchů do hlavního repozitáře se v poslední době zpomalil, téměř všechny větší stromy již byly začleněny. Začleňovací okno má v době psaní ještě stále několik dní, příští týden se podíváme na shrnutí tohoto vývojového cyklu.
Nástroje: Tisk bez diskuse
Tiskni Sdílej: