Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané jejich konzultačním týmem.
Immich byl vydán v první stabilní verzi 2.0.0 (YouTube). Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Český telekomunikační úřad vydal zprávy o vývoji cen a trhu elektronických komunikací se zaměřením na rok 2024. Jaká jsou hlavní zjištění? V roce 2024 bylo v ČR v rámci služeb přístupu k internetu v pevném místě přeneseno v průměru téměř 366 GB dat na jednu aktivní přípojku měsíčně – celkově jich tak uživateli bylo přeneseno přes 18 EB (Exabyte). Nejvyužívanějším způsobem přístupu k internetu v pevném místě zůstal v roce 2024 bezdrátový
… více »Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-10-01. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Jedná o první verzi postavenou na Debianu 13 Trixie.
Byla vydána nová verze 4.6 svobodného notačního programu MuseScore Studio (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem věnovala 1,1 milionu dolarů (stejně jako loni) na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Rozdělila je mezi 29 organizací a projektů. Za 15 let rozdala 8 050 000 dolarů.
Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.17. Díky 278 přispěvatelům.
Bylo vydáno openSUSE Leap 16 (cs). Ve výchozím nastavení přichází s vypnutou 32bitovou (ia32) podporou. Uživatelům však poskytuje možnost ji ručně povolit a užívat si tak hraní her ve Steamu, který stále závisí na 32bitových knihovnách. Změnily se požadavky na hardware. Leap 16 nyní vyžaduje jako minimální úroveň architektury procesoru x86-64-v2, což obecně znamená procesory zakoupené v roce 2008 nebo později. Uživatelé se starším hardwarem mohou migrovat na Slowroll nebo Tumbleweed.
Ministerstvo průmyslu a obchodu (MPO) ve spolupráci s Národní rozvojovou investiční (NRI) připravuje nový investiční nástroj zaměřený na podporu špičkových technologií – DeepTech fond. Jeho cílem je posílit inovační ekosystém české ekonomiky, rozvíjet projekty s vysokou přidanou hodnotou, podpořit vznik nových technologických lídrů a postupně zařadit Českou republiku mezi země s nejvyspělejší technologickou základnou.
… více »Radicle byl vydán ve verzi 1.5.0 s kódovým jménem Hibiscus. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.
Aktuální vývojové jádro je 3.18-rc3. Vývojové jádro 3.18-rc3 vyšlo dne 9. listopadu (oznámení). Linus k tomu řekl:
Tak se nám to konečně začíná zklidňovat. Vlastně to vypadalo opravdu klidně až do včerejška, kdy si někteří lidé zjevně řekli: „Hele, měl(a) bych svůj kód poslat Linusovi, aby ho přidal do rc4“, a tak třetina všech změn dorazila poslední den. Přesto však rc4 konečně vypadá, že do sebe začíná všechno pěkně zapadat. Teď tuhle verzi musíme stabilizovat.
Stabilní aktualizace: Minulý týden nebyly vydány žádné stabilní aktualizace. Aktualizace verzí 3.17.3 (319 oprav!), 3.14.24 a 3.10.60 jsou v době vzniku tohoto textu v procesu kontroly, lze je očekávat nejdříve 14. října.
Když se editor LWN se probíral sadami oprav, které provádějí změny týkající se složených stránek, došlo mu, že jeho pochopení těchto stránek byl spíš slabší. Když se ponořil do zdrojových kódů, aby si rozšířil obzory, napadlo ho: svět musí být plný lidí, kteří by se hrozně rádi dozvěděli víc o složených stránkách. Pro všechny z vás, kteří mají na seznamu svých požadovaných životních úspěchů lepší pochopení tohoto tématu, přinášíme rychlý úvod do složených stránek v linuxovém jádře.
Složená stránka je jednoduše seskupení dvou nebo více fyzicky souvislých stránek do jednoho celku, se kterým lze, v mnoha ohledech, zacházet jako s jednou větší stránkou. Slouží nejčastěji k vytvoření obrovské stránky použité v rámci subsystémů hugetlbfs nebo transparentní obrovské stránky (THP), ale objevují se i v jiných případech. Složené stránky mohou sloužit jako anonymní paměti nebo se dají použít jako vyrovnávací paměti v rámci jádra. Nemůžou se ale objevit v mezipaměti stránek, která je připravená jen na práci s jednotlivými stránkami.
K přidělení složené stránky se používá volání funkce přidělení běžné paměti jako alloc_pages() s nastaveným alokačním příznakem __GFP_COMP a řádem alespoň jedna. Nelze vytvořit složenou stránku s řádem nula (jedna stránka) s ohledem na to, jak jsou složené stránky implementovány. („řád“ alokace je logaritmus o základu 2 z počtu stránek určených k přidělené; nula tak odpovídá jediné stránce, jedna dvěma stránkám, atd.).
Složené stránky se liší od stránek vrácených z normálního požadavku na přidělení vyššího řádu. Například volání:
pages = alloc_pages(GFP_KERNEL, 2); /* bez __GFP_COMP */
vrátí čtyři fyzicky souvislé stránky, které ale nebudou složené. Rozdíl je v tom, že vytvoření složené stránky zahrnuje vytvoření značného množství metadat; ta většinu nejsou potřeba, proto by se vytvářet nemusela a šetřilo by to nároky na systém.
Jak tedy tato metadata vypadají? Vzhledem k tomu, že většina z nich je uložena v souvisejících strukturách page, lze předpokládat, že je to složité. Začněme s příznaky stránky. První (normální) stránka složené stránky se nazývá „vedoucí stránka“ (head); má nastaven příznak PG_head. Všechny ostatní stránky jsou „následující“ (tail); mají nastavený příznak PG_tail. Přinejmenším to platí v systémech, které příznaky stránek oplývají – tedy v 64bitových systémech. 32bitové systémy nemají žádné příznaky stránek nazbyt, takže se používá jiné schéma; všechny stránky ve složené stránce mají příznak PG_compound a následující stránky mají také nastaven příznak PG_reclaim. Bit PG_reclaim běžně používá kód mezipaměti stránek, ale vzhledem k tomu, že složené stránky nelze reprezentovat v mezipaměti stránek, tento příznak tady lze použít znovu.
Kód řešící složené stránky se ale nemusí starat o různé konvence označování. Bez ohledu na to, která konvence se používá, vrátí volání PageCompound() hodnotu true, pokud je předaná stránka stránkou složenou. Vedoucí a následující stránky lze v případě potřeby rozlišit pomocí funkcí PageHead() a PageTail().
Každá následující stránka obsahuje ukazatel na vedoucí stránku uložený v poli first_page struktury struct page. Toto pole zabírá stejně paměti jako pole private, zámek používaný, když stránka obsahuje položky stránkovací tabulky, nebo ukazatel slab_cache používaný, když stránku vlastní alokátor tabulky. Pomocnou funkci Compound_head() lze použít k nalezení úvodní stránky přiřazené ke všem souvisejícím následujícím stránkám.
Tam je pár informací popisujících složené stránky jako celek: řád (velikost) stránky a destruktor používaný k vrácení stránky do systému, když již není potřeba. Nejprve by nás mohlo napadnout uložit tyto informace do struktury struct page vedoucí stránky, v ní ale na ně není žádné místo. Pořadí je místo toho uloženo v poli lru.prev ve struktuře page pro první následující stránku. Zatímco uniony se používají pro mnoho překrytých polí ve struktuře struct page, zde je pořadí jednoduše formulováno na typ ukazatele a pak uloženo do pole ukazatele. Podobně ukazatel na destruktor je uložen v poli lru.next struktury struct page první následující stránky. Kvůli tomuto rozšíření metadat složené stránky do druhé struktury page musí složená stránka obsahovat alespoň dvě stránky.
Mimochodem, v jádře jsou deklarované pouze dva destruktory složených stránek. Ve výchozím nastavení se používá volání free_compound_page(); to vrací danou paměť alokátoru stránek. Subsystém hugetlbfs však používá volání free_huge_page(), kterým aktualizuje své záznamy.
Ve většině případů nejsou složené stránky potřeba a lze použít obyčejné alokace; volající kód si musí pamatovat, kolik stránek má přiděleno, ale jinak nejsou metadata, která by byla uložena ve složené stránce, potřebná. Složená stránka je ale vhodná tehdy, když je důležité zacházet se skupinou stránek jako celkem, i když někdo odkazuje na jednu stránku v ní. Klasickým příkladem jsou transparentní obrovské stránky; pokud se uživatelský prostor pokusí změnit ochrany na části této obrovské stránky, je nutné uzamknout celou obrovskou stránku a rozdělit ji. Různé ovladače také používají složené stránky pro usnadnění správy větších vyrovnávacích pamětí.
A to je v podstatě jediné, co odlišuje složené stránky od běžných alokací vyššího řádu. Většina vývojářů na složené stránky ve své oblasti jádra ani nenarazí. V případech, kdy je skutečně nezbytné nakládat se sadou stránek jako s jedinou jednotkou, však mohou být složené stránky součástí sady řešení.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Toto pole zabírá stejně paměti jako …
Nejde o to, že zabírá stejně paměti, ale o to, že využívá stejné místo jako ostatní zmíněné hodnoty (je to union). Stejně paměti to ani být nemusí, protože třeba na x86_64 jsou pointery 64-bitové, zatímco spinlock má 32 nebo dokonce jen 16 bitů.
alokátor tabulky
Když už překladatel cítí potřebu vymýšlet vlastní překlady zavedených termínů, bylo by možné aspoň u prvního výskytu přidat do závorky původní termín? Kdyby v té větě nebylo jméno položky jako nápověda, tak bych bez originálu neměl šanci pochopit, o čem je řeč. U "mezipaměti stránek" bych na to časem asi přišel, ale podívat se bylo rychlejší. Jenže když se pro pochopení textu musím každou chvíli podívat do původního článku, tak ten překlad tak nějak ztrácí smysl.