Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …
Evropská komise by do léta mohla předložit návrh normy omezující používání sociálních sítí dětmi v zájmu jejich bezpečí na internetu. Prohlásila to včera předsedkyně EK Ursula von der Leyenová, podle níž řada zemí Evropské unie volá po zavedení věkové hranice pro sociální sítě. EU částečně řeší bezpečnost dětí v digitálním prostředí v již platném nařízení o digitálních službách (DSA), podle německé političky to však není dostatečné a
… více »Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 4.0.
Chybí vám někdo, s kým byste si popovídali o bastlení, technice, počítačích a vědě? Nechcete riskovat debatu o sportu u piva v hospodě? Pak doražte na virtuální pokec u virtuálního piva v rámci Virtuální Bastlírny organizované strahovským MacGyverem již tento čtvrtek. Možná se ptáte, co se tak může probírat? Dají se probrat slavná výročí - kromě 55 let obvodu 555 (což je mimochodem prý andělské číslo) a vzpomínky na firmu Signetics -
… více »GTK2-NG je komunitní fork GTK 2.24 (aktuální verze je 4.22). Oznámení a diskuse v diskusním fóru Devuanu, forku Debianu bez systemd. Není to jediný fork GTK 2. Ardour je například postaven na vlastním forku GTK 2 s názvem YTK.
V neděli 17. května 2026 proběhne v Českých Budějovicích první MobileLinux Hackday zaměřený na Linux v mobilech, embedded platformy a open source hardware. Po sedmi úspěšných měsíčních setkáních v Praze se akce přesouvá také do jižních Čech, aby se komunita mobilního Linuxu mohla potkat i mimo hlavní město. Akce se uskuteční v konferenčním sále Vajgar v Clarion Congress Hotelu (Pražská tř. 2306/14) se zahájením mezi 14:00 až 15:00 a … více »
Vývojáři Debianu zhruba v polovině vývojového cyklu Debianu 14 s kódovým názvem Forky rozhodli, že Debian musí dodávat reprodukovatelné balíčky, tj. kdokoli si může nezávisle ověřit, že daný binární balíček vznikl překladem a sestavením z konkrétních zdrojových kódů. Aktuálně je reprodukovatelných 98,29 % balíčků.
Německý e-shop Škoda Auto byl hacknut. Útočníci získali přístup k uživatelským údajům (jméno, adresa, e-mail, heslo, telefon, …).
Na webu konference Den IPv6 2026, která se uskuteční 4. června v Národní technické knihovně v pražských Dejvicích, je nyní k dispozici kompletní program této tradiční akce věnované tématům spojeným s protokolem IPv6. Na celodenní pásmo přednášek je třeba se přihlásit a zaplatit účastnický poplatek 242 korun. Registrační formulář najdou zájemci opět na webu akce. Konferenci Den IPv6 2026 organizují i letos společně sdružení CESNET, CZ.NIC a NIX.CZ.
Byl představen emulátor terminálu Ratty (GitHub) s podporu 3D grafiky přímo v terminálu. Inspirací byl operační systém TempleOS od Terryho Davise. Ratty je napsán v jazyce Rust. Využívá knihovnu Ratatui pro tvorbu rozhraní a herní engine Bevy pro 3D vykreslování.
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.