Francouzská veřejná správa má v rámci vládní iniciativy LaSuite Numérique ('Digitální sada') v plánu od roku 2027 přestat používat Microsoft Teams a Zoom a přejít na videokonferenční platformu Visio, hostovanou na vlastním hardwaru. Konkrétně se jedná o instance iniciativou vyvíjeného open-source nástroje LaSuite Meet, jehož centrální komponentou je LiveKit. Visio nebude dostupné pro veřejnost, nicméně LaSuite Meet je k dispozici pod licencí MIT.
Eben Upton oznámil další zdražení počítačů Raspberry Pi: 2GB verze o 10 dolarů, 4GB verze o 15 dolarů, 8GB verze o 30 dolarů a 16GB verze o 60 dolarů. Kvůli růstu cen pamětí. Po dvou měsících od předchozího zdražení.
Shellbeats je terminálový hudební přehrávač pro Linux a macOS, který umožňuje vyhledávat a streamovat hudbu z YouTube, stahovat odtud skladby a spravovat lokální playlisty. Pro stahování dat z YouTube využívá yt-dlp, pro práci s audiostreamy mpv. Je napsán v jazyce C a distribuován pod licencí GPL-3.0, rezpozitář projektu je na GitHubu.
Byla vydána nová verze 26.1.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. S podporou hardwarového dekódování videa. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl po deseti měsících od vydání verze 1.3 vydán ve verzi 2.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Guido van Rossum, tvůrce programovacího jazyka Python, oslavil 70. narozeniny. Narodil se 31. ledna 1956 v nizozemském Haarlemu.
OpenClaw je open-source AI asistent pro vykonávaní různých úkolů, ovládaný uživatelem prostřednictvím běžných chatovacích aplikací jako jsou například WhatsApp, Telegram nebo Discord. Asistent podporuje jak různé cloudové modely, tak i lokální, nicméně doporučován je pouze proprietární model Claude Opus 4.5 od firmy Anthropic v placené variantě. GitHubová stránka projektu OpenClaw.
Projekt VideoLAN a multimediální přehrávač VLC (Wikipedie) dnes slaví 25 let. Vlastní, tenkrát ještě studentský projekt, začal již v roce 1996 na vysoké škole École Centrale Paris. V první únorový den roku 2001 ale škola oficiálně povolila přelicencování zdrojových kódů na GPL a tím pádem umožnila používání VLC mimo akademickou půdu.
Moltbook je sociální síť podobná Redditu, ovšem pouze pro agenty umělé inteligence - lidé se mohou účastnit pouze jako pozorovatelé. Agenti tam například rozebírají podivné chování lidí, hledají chyby své vlastní sociální sítě, případně spolu filozofují o existenciálních otázkách 🤖.
scx_horoscope je „vědecky pochybný, kosmicky vtipný“ plně funkční plánovač CPU založený na sched_ext. Počítá s polohami Slunce a planet, fázemi měsíce a znameními zvěrokruhu. Upozornil na něj PC Gamer.
Aktuální vývojová verze jádra je 3.14-rc7 vydaná 16. března. Linus už z toho má lepší pocit. Jediný týden a jaké změny přinese. Před týdnem, když jsem vytvářel rc6, jsem neměl dobrou náladu: ve vydání byla spousta změn a vnímal jsem to tak, že rc8 a možná i rc9 by byly reálnou možností. Teď uběhl týden a rc7 vypadá mnohem lépe. Aktuálně říká, že může jít o poslední -rc ve verzi 3.14.
Stabilní aktualizace: řadu 3.12 nyní spravuje Jiří Slabý; jeho první vydání 3.12.14 vyšlo 14. března.
Na bezpečnosti mi záleží, měli bychom práci odvádět pořádně. Máme tu další velký skok v nezbytnosti zabezpečení, který bude přinejmenší stejně velký jako skok mezi internetem typu „univerzita, všichni jsou hodní“ a internetem dneška.
-- Alan Cox
Ano, je to tak trochu hack, ale je to jednoduché a přímé a explicitní a zjevné. Škodu páchá nenápadná hackovitost.
Obvykle, když někdo říká „nemůžu“, tak mi to spíš zní jako "Rozhodl jsem se přestat snažit přemýšlet o tom, jak to vyřešit."
-- David Miller
Rozhraní „smrskávače“ [shrinker] v jádře umožňuje subsystému pro správu paměti informovat ostatní subsystémy o tom, že se paměti nedostává a měla by být nějaká paměť uvolněna, pokud je to jen možné. Objevily se různé pokusy o to přidat podobný mechanismus, který by umožnil jádru požádat procesy v uživatelském prostoru, aby pročistily paměť, ale všechny narazily kvůli známým problémům se složitostí a obecnou obtížností začleňování změn ve správě paměti. To ale nezabránilo vývojářům v tom, aby se o to pokoušeli; nedávno byly zaslány dva nové patche podobného ražení.
Oba tyto patche implementují variaci na téma zvané volatilní rozsahy paměti. Tyto rozsahy představují oblasti v adresním prostoru procesu, které obsahují data, jež je možné v případě nutnosti regenerovat. V případě, že se jádru nebude dostávat paměti, tak si může vzít stránky z volatilního rozsahu, a to s jistotou, že se z toho proces používající danou paměť zotaví, třebaže se ztrátou výkonu. Dokud je ale paměti dostatek, tak nebudou volatilní rozsahy jádrem odebírány a data tam cachovaná mohou být volně používána aplikací.
Většina práce na volatilních rozsazích je motivovaná snahou o vytvoření náhrady pro mechanismus ashmem z Androidu, který je s hlavní částí subsystému pro správu paměti lépe integrován. Pro tuto funkčnost se ale najde i jiné využití.
Během uplynulých let se objevila spousta verzí patchů pro volatilní rozsahy. Někdy byly implementovány pomocí systémového volání posix_fadvise(); jindy byly dodány do fallocate(). Další verze je zase přidávaly jako dodatečnou funkci do madvise(). 11. verze patche pro volatilní rozsahy se ale vydává úplně jiným směrem. Namísto toho přidává nové systémové volání:
int vrange(void *start, size_t length, int mode, int *purged);
V této podobě vrange() pracuje s length bajty paměti začínajícími na adrese start. Pokud je režim mode nastaven na VRANGE_VOLATILE, tak tento rozsah paměti bude označen jako volatilní. Pokud je naopak režim VRANGE_NONVOLATILE, pak je označení jako volatilní odstraněno. V tomto případě ale některé nebo všechny stránky dříve prohlášené za volatilní mohly být odebrány jádrem; v takovém případě je *purged nastaveno na nenulovou hodnotu na znamení toho, že předchozí obsah paměti už není k dispozici. Je-li *purged nulové, tak aplikace ví, že obsah paměti není ztracen.
Proces může nadále přistupovat k paměti ve volatilním rozsahu. Pokud se pokusí přistoupit ke stránce, která byla odebrána jádrem, tak dostane signál SIGBUS na znamení toho, že stránka je pryč. Proto programy, které jsou na přijetí tohoto signálu připravené, mohou volatilní rozsahy používat bez potřeby volat vrange() před přistoupením k paměti.
Tato verze patche se od svých předchůdců liší dalším významným způsobem: fungují jen s anonymními stránkami, zatímco předchozí verze fungovaly pouze se systémem souborů tmpfs. Práce s anonymními stránkami pomáhá patch zjednodušit, jak je to jen možné, aby se zvětšila šance, že bude revidován a nakonec začleněn, ale bere si to svou daň: nemožnost pracovat s tmpfs znamená, že volatilní stránky nebudou vhodnou náhradou z ashmem. V plánu je podporovat případ, kdy se za pamětí skrývá soubor (což kód zesložiťuje), ale až jakmile bude panovat shoda ohledně zákadního patche.
Interně pracuje vrange() na úrovni virtuální oblasti paměti (virtual memory area, VMA). Všechny stránky v rámci VMA buď jsou volatilní, anebo ne; VMA mohou podle potřeby být při voláních vrange() slučovány nebo rozdělovány. Díky tomu by vrange() mělo být rozumně rychlé, jelikož není nutné procházet každou stránku v rozsahu.
Jiný způsob řešení podobného problému můžeme spatřit v patchi MADV_FREE. Tento patch přidává nový povel do stávajícího volání madvise():
int madvise(void *addr, size_t length, int advice);
Podobně jako vrange() také madvise() pracuje s rozsahem paměti určeným volajícím; to, co se dělá, je rozlišeno argumentem advice. Volající může použít MADV_SEQUENTIAL, aby řekl jádru, že ke stránkám v tomto rozsahu bude přistupováno sekvenčně, nebo MADV_RANDOM, aby řekl jádru pravý opak. Volání MADV_DONTNEED způsobí, že jádro okamžitě převezme určené stránky a zahodí jejich obsah.
Nová operace MADV_FREE se podobá MADV_DONTNEED, ale je tu jeden důležitý rozdíl. Namísto okamžitého odebrání stránek je toto volání označí k „pozdějšímu uvolnění“ někdy v budoucnu. Pokud by jádru začala docházet paměť, pak právě takto označené stránky by byly jádrem odebírány jako první; pokud se aplikace pokusí takovou stránku použít po jejím odebrání, tak jádro poskytne novou stránku plnou nul. Pokud je ale paměti dostatek, tak zůstanou stránky označené pomocí MADV_FREE na místě; další přístup k těmto stránkám odstraní příznak přidaný přes MADV_FREE a data budou ve stavu jako před voláním madvise().
Aplikace nemá jak zjistit, zda nebyl obsah stránek odstraněn, aniž by prozkoumala obsažená data. Proto by program mohl implementovat něco jako volatilní rozsahy tak, že si na začátek každé stránky před použitím MADV_FREE umístí strukturu, jež dovede poznat, a před přístupem k dalším datům by si ověřil, že je struktura stále na svém místě. To se ale nezdá být zamýšleným způsobem používání.
MADV_FREE se zdá být zaměřené na implementace alokátorů paměti v uživatelském prostoru. Kdykoliv aplikace uvolní sadu stránek, tak alokátor použije MADV_FREE, aby jádru oznámil, že na obsahu stránek už nezáleží. Pokud by aplikace ve stejném rozsahu rychle alokovala více paměti, tak se použijí stejné stránky, tudíž se vyhne režii uvolňování stránek a nulování nových. Ve zkratce je MADV_FREE způsobem, jak říci "Na datech v tomto rozsahu mi nezálěží, ale brzo možná tento rozsah opětovně použiji."
Stojí za zmínku, že MADV_FREE je již podporován na jádrech BSD, takže na rozdíl od vrange() by nešlo o funkci specifickou pro Linux. Pochopitelně by to znamenalo zlepšení přenositelnosti programů, které tuto funkci na BSD systémech používají.
V době psaní tohoto textu se žádnému z patchů nedostalo příliš reakcí. Ke skutečnému revidování pravděpodobně dojde až na letošním Linuxovém sumitu o systémech souborů a správě paměti, který začíná 24. března.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: