KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
Byl vydán Mozilla Firefox 158.0. Stejně jako Chrome 155 s podporou JPEG XL (test). Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 158 bude brzy k dispozici také na Flathubu a Snapcraftu.
Svobodný kancelářský balík ONLYOFFICE (Wikipedie) byl vydán ve verzi 10.0. Jak online Docs, tak i offline Desktop Editors. Přehled novinek také na YouTube.
Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.
Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.
… více »Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).
V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.
Ubuntu 27.04 bude Tenacious T-Rex.
Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.
Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a
… více »Současný vývojový kernel je 4.7-rc2, vydaný 5. června. Linus k tomu dodal: „Přidal jsem jednu záležitost, která není opravou. Chtěl jsem ji přidat už nějakou dobu, přestože začleňovací okno je již zavřené. Pochybuji, že si vůbec někdo všimne důsledků změny/úklidu pty, což znamená, že odporná stará volba DEVPTS_MULTIPLE_INSTANCES je pryč, protože po úklidu již nebude zapotřebí.“ Pro podrobnosti o změně viz tento nedávný článek.
Stabilní aktualizace: 4.6.2, 4.5.7, 4.4.13 a 3.14.72 byly vydány 7. června. Verze 4.5.7 představuje konec řady 4.5.
Po vydání verze 4.6 si spousta lidí stěžovala na omezené použití __ro__after_init v Linuxu, patche ale neposlali. Abych ukázal, jak dosáhnout pokroku v této oblasti, přidávám dvojici patchů pro x86 a ARM. Dostat je ze sady patchů grsecurity/PaX mi zabralo jenom asi hodinu. Vyzývám tedy ostatní, aby v této práci pokračovali – je to celkem jednoduché.
Pokud v seznamu změn použijete slovo „také“, většinou to znamená, že by patch měl být rozdělen na více částí.
„Swapování“ je něco jako sprosté slovo mezi dlouholetými uživateli Linuxu, kteří nezřídka udělají skoro cokoli, aby se mu vyhnuli. Subsystém správy paměti byl navržen tak, aby se toto vyhýbání usnadnilo, kdykoli to jen jde. Vývojář Johannes Weiner nyní navrhuje dát ve světle posledního vývoje v oblasti hardwaru swapování ještě jednu šanci. Jeho sada patchů obsahuje také výsledky benchmarků, které svědčí o tom, že na něco možná kápl.
Paměť dostupná uživatelům linuxových systémů se dělí na dvě části: jedna je založená na souborech (file-backed) a ta druhá je anonymní. V prvním případě stránky (popř. stránky diskové cache) odpovídají segmentu souboru na disku. Pokud neobsahují nově zapsaná data, která se zatím nedostala až zpět do perzistentní paměti, mohou být tyto stránky jednoduše uvolněny pro jiné účely. Anonymní stránky naopak nejsou svázány se souborem na disku, nýbrž drží data používaná či vytvářená procesy. Opětovné využití anonymní stránky vyžaduje zápis obsahu do swapovacího zařízení.
Platí obecné pravidlo, že uvolňování anonymních stránek pro další použití (swapování) je považováno za mnohem nákladnější než v případě stránek založených na souborech. Jednou z hlavních příčin tohoto rozdílu je to, že stránky založené na souborech je možné číst z perzistentní paměti (nebo je do ní zapisovat) ve velkých, souvislých blocích, zatímco anonymní stránky mají tendenci být náhodně rozptýlené po swapovacím zařízení. Na rotačním úložišti jsou takto rozptýlené I/O operace nákladné, takže swapující systém to notně zpomalí. Je mnohem rychlejší načíst spoustu sekvenčně uložených stránek založených na souborech – a protože soubor je obvykle přímo na disku, nemusí být tyto stránky zapsány v okamžiku dalšího použití.
Swapování je tak pomalé, že se většina administrátorů snaží nakonfigurovat své systémy tak, aby ho bylo třeba co nejméně. V nejextrémnějších případech to může znamenat, že vůbec nenastaví swapovací zařízení. Jedná se o běžnou praxi, která jádro zbavuje možnosti znovu využít anonymní stránky, přestože by tato paměť mohla být využita také jinde. Mezistupněm je použití konfigurační volby swappiness (popsané v tomto článku z roku 2004) k silnému vychýlení systému směrem k využívání stránek založených na souborech. Nastavení swappiness na nulu způsobí, že jádro bude swapovat pouze v okamžiku, kdy dosáhne přetlak paměti krajních mezí.
Johannes začíná vysvětlovat svou sadu patchů poznámkou, že tento mechanismus byl navržen pro charakteristiky rotačních disků. Kdykoli musel disk použitý pro swapování provést operaci seek – což se s náhodně rozptýleným I/O stávalo často – dramaticky poklesla propustnost. Odtud ten silný odpor ke swapování. Johannes dodává, že technologie je dneska jinde, a proto by některá dosavadní rozhodnutí měla být přehodnocena:
„S rozšiřováním zařízení s rychlým náhodným I/O, např. SSD a perzistentní paměti, se swapování stává znovu zajímavým, nikoli však jako krajní možnost, nýbrž jako rozšíření paměti, kterou je možné využít k optimalizaci vyvážení paměti mezi diskovou cache a pracovní sadou anonymních stránek i při mírném zatížení. Naše současná rozhodnutí ohledně opětovného využití stránek nezohledňují potenciál tohoto hardwaru.“
Johannes tvrdí, že systém by měl být nejen ochotnější swapovat anonymní paměť, ale v jistých situacích může být swapování lepší volba než opětovné použití stránek diskové cache. To by mohla být pravda v situaci, kdy je swapovací zařízení rychlejší než úložiště souborů… a platí to také v situaci, kdy systém recykluje potřebné stránky postavené na souborech, zatímco paměť je plná nepoužívaných anonymních stránek.
Prvním krokem v sadě patchů je rozšíření možných nastavení pro volbu swappiness. V současných jádrech může jít od nuly (pokud možno žádné swapování) do stovky (rovným dílem recyklovat stránky anonymní a na souborech založené). Johannes zvyšuje maximum na 200; při této hodnotě bude systém silně upřednostňovat swapování. Jedná se o možnost, o kterou nikdy nikdo předtím nestál, ale díky rychlým diskům se stala užitečnou.
I když bude i nadále existovat využití pro swapovací volby jako swappiness, nejlepší systém je ten, který se ladí sám bez potřeby zásahu správce systému. Johannes tedy pokračuje úpravami mechanismu, který rozhoduje zda recyklovat stránky ze seznamu nejdéle nepoužívaných (LRU) anonymních stránek, nebo ze seznamu LRU stránek založených na souborech. Pro každý seznam zavádí koncept „ceny“ recyklace stránky z příslušného seznamu. Tento kód se potom zaměřuje na seznam s nejnižší „cenou“ opětovného použití stránek.
Prvním krokem je sledování ceny „rotací“ v každém LRU seznamu. Kód správy paměti dělá vše proto, aby znovu používal stránky, které nejsou aktivně využívány. To se provádí tak, že se občas projde seznam a vyčistí se bit indikující, že stránka byla odkazována. U následně použitých stránek bude tento bit nastaven zpět, kdežto ty, které ho při dalším průchodu nemají nastavený, mezitím nebyly použity – u těchto stránek je nejméně pravděpodobné, že budou chybět, a proto jsou první na řadě k uvolnění. Stránky, které odkazovány byly, se „přesunou“ na začátek seznamu, takže dostanou nějaký čas, než se na ně při uvolňování znovu dostane řada.
Tento přesun stojí nějaký procesorový čas. Obsahuje-li konkrétní seznam LRU spoustu odkazovaných stránek, bude průchod poměrně časově náročný v porovnání s malým počtem uvolnitelných stránek. V tomto případě by mělo jádro raději kontrolovat seznamy, které obsahují více nepoužívaných stránek. Za tímto účelem sleduje Johannesova sada patchů počet přesunutých stránek, aby bylo možné stanovit cenu uvolnění stránek z jednotlivých seznamů.
Zatímco přesouvání má svou cenu, tyto náklady jsou nic v porovnání s opětovným používáním stránek, když ty se vzápětí chybně vrácejí do paměti – i když zápis probíhá na rychlé úložné zařízení. A tak Johannes přidal mechanismus, který sleduje tyto stránky, už v roce 2012. V současných jádrech se používá k určení velikosti aktivní pracovní sady v libovolném okamžiku. Tento mechanismus může jádru také říct, zda uvolňuje příliš mnoho stránek anonymních nebo založených na souborech. Poslední patch v této sadě využívá informace o chybných přesunech stránek ke korigování ceny uvolňování z každého seznamu LRU. Pokud se stránky z jednoho seznamu rychle vracejí zpět, zaměří se jádro na jiný seznam.
V současné sadě patchů je cena chybně vrácené stránky nastavena na 32násobek ceny rotované stránky. Johannes v komentářích navrhuje, že tato hodnota je vybrána nahodile a v budoucnu se může změnit. Zatím je cílem, aby chybné přesuny měly převažující podíl na ceně, ale mohou nastat situace, ve kterých jsou chybné přesuny levnější než rotace.
Sadu patchů doplňuje řada benchmarků, které ukazují její vliv na výkon. Benchmark PostgreSQL ukazuje nárůst z 81 na 105 transakcí za sekundu s aplikovanými patchi, přičemž míra chybných přesunů je poloviční a sníží se i zátěž CPU způsobená jádrem. Benchmark I/O streamů, který by neměl vytvořit vážný tlak na paměť, běží v podstatě beze změny. Takže zatím poskytnuté výsledky vypadají dobře.
Změny ve správě paměti představují potenciální nebezpečí a je možné, že tyto změny poškodí jiné typy zátěže. Jediná možnost, jak se přesvědčit, že to nenastane, je testování a revize. Tato sada patchů je celkem nová, obdržela nějaké kladné recenze, ale testování jí stále schází. Takže bude chvíli trvat, než se dostane někam blíž k hlavnímu stromu jádra. Už nějakou dobu je jasné, že správa paměti si vyžádá řadu změn, aby odpovídala současnému hardwaru. Diskutovaná práce může být v tomto směru slibným krokem.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
top - 23:56:59 up 11 days, 23:58, 14 users, load average: 4,25, 4,41, 4,56 Tasks: 394 total, 2 running, 392 sleeping, 0 stopped, 0 zombie %Cpu(s): 21,1 us, 2,4 sy, 52,6 ni, 23,7 id, 0,1 wa, 0,0 hi, 0,2 si, 0,0 st KiB Mem: 24620464 total, 24114708 used, 505756 free, 291492 buffers KiB Swap: 8388604 total, 233328 used, 8155276 free. 15166088 cached Mem