V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).
Aktuální vývojové jádro je 4.0.rc4, vydané 15. března. Linus k tomu řekl: "Nic zvláštního se neděje. Shortlog je otevřený, myslím, že na to, v jaké fázi cyklu jsme, si vedeme dobře."
Stabilní aktualizace: 3.19.2, 3.14.36 a 3.10.72 byly vydané 18. března.
Greg Kroah-Hartman přidal strom kdbus do linux-next se záměrem sloučit jej v průběhu příštího začleňovacího okna. "Ten kód byl přepracován a přezkoumán již mnohokrát, poslední kolo bylo bez závad, takže je ve frontě na sloučení do verze 4.1-rc1."
Zatímco většina letošního summitu Linux Storage, Filesystem and Memory Management byla věnována diskuzi o subsystému, některá další témata vyvolala takový zájem, že bylo třeba je projednat na plenárních zasedáních. Al Virova přednáška o vývoji virtuálního souborového systému kernelu (VFS) patřila k těmto tématům. Bez VFS by se toho v systému moc nestalo. Tak či onak, v rychle se vyjíjejícím kernelu, je třeba rychle měnit i VFS.
Jedna z věcí, kterou se ještě, navzdory přáním, nepodařilo uskutečnit, je zajištění lepší sady systémových volání, které by nahradily mount(). Al na tom sice pracoval, ale jeho patche byly zamítnuty ještě než mohly být revidovány. V této oblasti se o pokroku nedá mluvit. Na druhou stranu se trochu podařilo zapracovat na vzniku systémového volání revoke(). Plné přijetí je ještě daleko, ale něco se již podařilo udělat.
Více se pracovalo na přechodu k iov_iter interface. Al doufá, že než se uzavře začleňovací okno 4.1, bude přechod z aio_read() a aio_write() (část asynchronní implementace I/O) na iov_iter dokončen. Některé instance stále potřebují převedení, ale Al je toho názoru, že již nejsou žádné významné překážky.
V minulém roce se konverze iov_iter dočkaly send and recieve cesty síťového zásobníku. Stále chybí sendpages(), ale vypadá to, že v cestě nejsou žádné kompilace. Konverze systémového volání splice() bude mnohem těžší. Kód na straně zápisu byl již téměř celý vyměněn - s jednou výjimkou: Filesystem in Userspace (FUSE). Potíž s FUSE je zero-copy, přesouvání stránek přímo mezi splice() bufferem a cache stránky.
Když byl splice() do kernelu přidán poprvé, bylo "kradení stran" původně záměrem; šlo o užitečnou optimalizaci. Nevýhodou byla spousta chyb, například zmatek v kódu souborového systému v okamžiku kdy se aktualizované stránky dostanou do cache stránky. Nick Piggin tuto vlastnost odstranil v roce 2007 a od té doby se nikdo neměl k tomu ji tam vrátit. Al poznamenal, že Nick popsal některé z problémů ve své zprávě, ale jsou další, ke kterým se Nick v minulých letech nedostal a zdá se, že zůstanou tajemstvím, dokud je někdo znovu neobjeví.
Operace zero-copy jsou ve splice() zablokované s jednou výjimkou: FUSE. Problém, který ovlivňoval kradení stránek u jiných souborových systémů se u FUSE neobjevuje, takže nebyl důvod k zablokování. Kromě toho FUSE vyžaduje zero-copy operace, jina dochází k problémům s výkonem. Toto je důvod, který FUSE zatím ochránil od konverze na iov_iter. Alovým řešením problému by bylo obnovení zero-copy pro všechny případy, to však bude vyžadovat další výzkum.
Strana read (zastoupená splice_read() fire_operations) bude pravděpodobně konvertována někdy letos. Al je překvapen, kolik instancí iovec (předchůdců iov_iter) v kernelu nadále zůstává. A jen tak z něj nezmizí, ale používají se stále méně.
Další novou změnou, mimo virtuální souborový systém, je struktura nameidata, která se stane zcela neviditelnou. Bude definována v kódu VFS. Al by se časem rád zbavil ukazatelů k této struktuře a místo ní zavedl používání ukazatelů ze struktury úloh. Tato změna by neměla výrazně ovlivnit kód mimo VFS, ale Al považoval za dobré toto zmínit, jelikož to poškodí některé patche.
Pokračují i práce na projektu, který má za úkol zbavit se mnoha variant d_add(), základní funkce, která přidává záznam struktuře adresáře (dentry) do dentry cache. Jedna z těchto variant, — d_materialise_unique() — byla odstraněna již ve verzi 3.19. Jiné, jako například d_splice_alias() zůstaly. Ideální by bylo mít jediný základní prvek, který by sdružil dentry a inode. Matthew Wilcox se zeptal, zda by jiné variant stále měly význam pro účely dokumentace, ale Al mu odpověděl, že v takových případech by se mělo pracovat důrazně.
Několik dalších nedávných změn zahrnuje unmount souborových systémů při neplatnosti a lepší zpracování vypínání. Změna při odpojení (unmount) způsobuje automatické odebrání souborových systémů, je li zrušen přípojný bod - tato změna byla zařazena před několika měsíci. Velkou změnou je zpracování vypínaní souborového systému, které je nyní zpožděné a odehrává se v (shallow) zásobníku. To by mělo rozptýlit obavy o přetékání zásobníků, které by se jinak mohly objevit během vypínání.
Poslední Alovo téma se týkalo předávání informací o procesu BSD. Co se stává, když začne předávání informací do souboru a dojde k odpojení (unmount) základního FS. Na BSD systému způsobí odebrání EBUSY chybu. Na Linuxu se "někdo rozhodl, že bude nápomocný" a myslel, že by bylo hezkým gestem automaticky zastavit předávání a povolit odpojení (unmount). Tato taktika vypadá užitečně, ale má háček. Vytváří situace, kdy otevřený soubor na souborovém systému nezpůsobí zaneprázdnění souborového systému. To vedlo ke spoustám zajímavým souběhům "race conditions" zpět do roku 2000 nebo tak nějak. Podle Ala je to "pořádný oříšek".
Tento mechanismus byl z kernelu odebrán. Na jeho místě je mechanismus, který umožňuje přidat objekt do struktury vsmount (která zde zastupuje připojený souborový systém); tento objekt podporuje pouze jediný způsob: kill(). Tyto "pin" objekty zůstávají, dokud nezmizí konečný odkaz vfsmount a v tomto okamžiku jsou volány jejich funkce kill(). Jedná se tedy o čistý mechanismus pro provádění čištění, když zmizí souborový systém.
První využití tohoto mechanismu se využívá při ukončování BSD zápisu procesu informací. Dobré využití se nabízí také v případě, že je třeba odpojit velký strom s několika souborovými systémy. Pokud jsou na sobě souborové systémy závislé, lze vložit pin a ujistit se, že bude vyčistění provedeno ve správném pořadí. Tato funkcionalita, nachází se v fs/fs_pin.c vypadá užitečně, ale, jak poznamenal Ted Ts´o, je v současné době nezdokumentovaná. Al skončil svůj výstup s potvrzením (uznáním), že některé komentáře budou dalším uživatelům k užitku.
Nástroje: Tisk bez diskuse
Tiskni Sdílej: