abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | Pozvánky

    Ve středu 29. dubna 2026 se v pražské kanceláři SUSE v Karlíně uskuteční 7. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj i uživatelský prostor. Akce proběhne od 10:00 do večerních hodin. Hackday je určen všem zájemcům o praktickou práci s Linuxem na telefonech. Zaměří se na vývoj aplikací v userspace, například bankovní aplikace, zpracování obrazu z kamery nebo práci s NFC, i na úpravy

    … více »
    lkocman | Komentářů: 0
    včera 21:55 | Nová verze

    LilyPond (Wikipedie) , tj. multiplatformní svobodný software určený pro sazbu notových zápisů, byl vydán ve verzi 2.26.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 20:33 | Nová verze

    Byla vydána nová verze 11.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 237 vývojářů. Provedeno bylo více než 2 500 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Společnost SpaceX amerického miliardáře Elona Muska oznámila, že si zajistila opci buď na akvizici startupu Cursor za 60 miliard dolarů (přes 1,2 bilionu Kč) do konce letošního roku, nebo na zaplacení deseti miliard dolarů za nové partnerství s touto firmou zabývající se generováním kódů. SpaceX se dále prosazuje na lukrativním trhu s vývojářskými nástroji pro umělou inteligenci (AI). Cursor, startup zabývající se prodejem modelů AI pro

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 13:11 | Komunita

    Díky AI modelu Claude Mythos Preview od společnost Anthropic bylo ve Firefoxu nalezeno a opraveno 271 zranitelností.

    Ladislav Hagara | Komentářů: 4
    včera 04:44 | Nová verze

    Byla vydána nová verze 2.54.0 distribuovaného systému správy verzí Git. Přispělo 137 vývojářů, z toho 66 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 13.0. Přehled novinek v aktualizované dokumentaci a na YouTube. Stalo se tak na konferenci GrafanaCON 2026.

    Ladislav Hagara | Komentářů: 0
    21.4. 19:00 | IT novinky

    Na YouTube proběhl Framework [ Next Gen ] Event 2026. Společnost Framework představila nový Framework Laptop 13 Pro, vylepšení Framework Laptopu 16 a OCuLink Dev Kit pro připojení vysoce výkonných periferií jako jsou eGPU a bezdrátovou klávesnici s integrovaným touchpadem Framework Wireless Touchpad Keyboard.

    Ladislav Hagara | Komentářů: 0
    21.4. 18:22 | Nová verze

    Byl vydán Mozilla Firefox 150.0. 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 150 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 5
    21.4. 17:22 | Zajímavý software

    Byl představen (reddit, 𝕏) webový prohlížeč Brave Origin. Jedná se webový prohlížeč Brave bez VPN, krypto peněženky a odměn, tj. bez funkcí, ze kterých je vývoj Brave financován. Stojí jednorázově 59,99 dolarů. Verze pro Linux je zdarma.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1384 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Jaderné noviny – 5. 11. 2014: Podpora hybridních disků SSD

    5. 12. 2014 | Tadeáš Pelech | Jaderné noviny | 3154×

    Aktuální verze vývojového jádra: 3.18-rc3. Podpora hybridních disků SSD. Podpora atomického nastavování režimu pro ovladače KMS. Pokračování podpory Linuxu 3.16.y.z. Podpora hybridních disků SSD. Příznaky open(): O_TMPFILE a O_BENEATH.

    Obsah

    Aktuální verze vývojového jádra: 3.18-rc3

    link

    Aktuální vývojové jádro je 3.18-rc3, vydané 2. listopadu (oznámení). Linus si postěžoval, že se situace nezklidňuje, jak by si přál, ale že mu to nedělá příliš starosti:

    To znamená, že si nemyslím, že by snad docházelo k něčemu obzvlášť hroznému. Spousty a spousty drobností, většinou jde o ovladače (jak v počtu zápisů, tak v počtu řádků), ale objevuje se i něco kolem sítí a jádra. Nic nijak zvlášť nevyčnívá.

    S tímto prepatchem se kódové jméno vydání změnilo na „Diseased Newt“.

    Stabilní aktualizace: Aktualizace verzí 3.17.2, 3.16.7, 3.14.23, a 3.10.59 byly vydány dne 30. října.

    Podpora atomického nastavování režimu pro ovladače KMS

    link

    Pro ty, kdo si libují v nechutných podrobnostech o zprovoznění nových operací atomického nastavování režimu pracujících s existujícími ovladači grafických adaptérů, má Daniel Vetter exkluzivní zprávu:

    Tak jsem jen znovu zveřejnil svůj seriál o pomocníku atomického nastavování režimu, a protože hlavním cílem celé té práce bylo zajistit hladký a jednoduchý přechod stávajících ovladačů do země zaslíbené atomickému zpracování, je na čase trochu to rozvést. Velkým problémem je, že stávající pomocné knihovny a zpětná volání do backendů řadičů příliš neodpovídají nové sémantice, takže bylo provést několik úprav, abychom předešli dlouhodobým problémům. Pokud programujete ovladače a chcete se dozvědět podrobnosti, přečtěte si, co musíte udělat pro podporu atomických aktualizací nastavení režimu pomocí těchto nových pomocných knihoven.

    Pokračování podpory Linuxu 3.16.y.z

    link

    Jaderný tým Ubuntu oznámil, že bude poskytovat prodlouženou podporu jádra řady 3.16. Tým naváže tam, kde přestal Greg Kroah-Hartman, u verze 3.16.7, a bude poskytovat podporu až do dubna 2016.

    Podpora hybridních disků SSD

    link

    V posledních letech jsme byli svědky přidání řady subsystémů do jádra, které poskytují vysokorychlostní mezipaměť pro data na (relativně) pomalých jednotkách; patří mezi ně bcache nebo dm-cache. Ale výrobcům disků nebrání nic v tom, aby do svých výrobků přímo vestavěli tento způsob ukládání do mezipaměti. Výsledkem takového spojení jsou „hybridní disky SSD“ – rotační disky, které obsahují také nějaké úložiště typu flash. Pokud se taková paměť správně používá, může zrychlit přístup k často používaným datům. Ale ukazuje se, že „správně si zvyknout“ není tak jednoduché, jak by si člověk mohl myslet.

    Samozřejmě můžete všechno nechat na vlastní jednotce. Pokud disk ponecháte jeho osudu (tak říkajíc), bude sledovat, ke kterým blokům se často přistupuje, a bude se snažit ukládat je do rychlého úložiště. Ale operační systém – nebo programy v něm spuštěné – mají často lepší představu o tom, která data bude potřebovat v budoucnu. Pokud tyto informace předává jednotkám, výsledkem by mělo být lepší využití rychlého ukládání, a tedy lepší výkon.

    Umožnění této komunikace je cílem této sady oprav, předložené Jasonem Akersem. Z reakce na tuto sadu oprav od komunity jádra je ale jasné, že je stále ještě potřeba zapracovat na zjištění nejlepšího způsobu, jak z takových jednotek získat nejlepší možný výkon.

    Tato sada záplat používá hodnotu priority podle procesu I/O jako způsob signální informace o využití mezipaměti. Tuto prioritu je možné nastavit pomocí příkazu ionice. Pomocí pár bitů pole priorita může uživatel zadat jednu z řady zásad (zde uvedeny v symbolické podobě):

    • IOPRIO_ADV_EVICT říká, že data zapojená do operací I/O by měla být z vyrovnávací paměti aktivně odebírána, pokud tam budou nalezena. Je to způsob, jak říct, že data nebudou téměř jistě v blízké budoucnosti opětovně použita.
    • IOPRIO_ADV_DONTNEED říká, že by data neměla jít do mezipaměti, ale že není třeba je z mezipaměti aktivně stěhovat, pokud v ní už jsou.
    • IOPRIO_ADV_NORMAL nechá zásady ukládání do mezipaměti na disku, jako by systém vůbec žádná doporučení neposkytoval.
    • IOPRIO_ADV_WILLNEED označuje, že data budou v blízké budoucnosti znovu potřeba, a proto by měly být uložené v mezipaměti.

    Tato sada oprav nebude v současném stavu do jádra v dohledné době začleněna hned z několika důvodů. Jedním z nich je, jak upozornilo několik vývojářů, že sdružuje vstupně-výstupní zásady ukládání do mezipaměti s procesem poněkud nezvykle. Jednotlivé procesy mohou vyžadovat různé zásady ukládání do mezipaměti pro různé soubory se kterými pracují; dokonce mohou vyžadovat různé zásady pro různé části jednoho souboru. Kvůli vytvoření jediné zásady na proces je tento způsob použití téměř nemožný.

    Kromě toho, jak poukázal Dave Chinner, proces, který generuje vstupně-výstupní operace v uživatelském prostoru, nemusí být shodný s procesem, který odešle I/O do blokového subsystému. Mnoho souborových systémů používá k provádění skutečného odeslání pracovní podprocesy. Tím se přeruší vazba s procesem, který vstupně-výstupní operaci původně vytvořil. Souborové systémy také mohou chtít upravit zásady ukládání do mezipaměti – nabízí se například možnost, že budou dávat vyšší prioritu pro ukládání do mezipaměti metadatům než datům. Skutečnost je taková, že souborový systém má možnost upravit hodnotu priority I/O u jednotlivých požadavků, ale není to nejelegantnější API.

    Z těchto důvodů někteří vývojáři navrhují, aby zásady ukládání do mezipaměti byly nastavovány na úrovni souboru v systémovém volání jako fadvise(), a nikoli na úrovni procesů. Ještě lepší by bylo, jak poznamenal Jens Axboe, přidat mechanismus, který by procesům umožnil poskytnout doporučení na úrovni operací. Tento přístup použitý v návrhu neblokovaného čtení z vyrovnávací paměti může být vhodný pro tento typ využití.

    S touto sadou oprav je ale ještě jeden problém: typy „poradenství“, které lze poskytovat, jsou pevně vázané na specifikace způsobu práce současné generace hybridních disků. Nabízí pouze nízkoúrovňové kontrolu nad jedinou úrovní mezipaměti. Budoucí disky mohou pracovat jinými způsoby, které výše popsaným operacím nemusí vyhovovat. Hybridní disky navíc nejsou jediným místem, kde může být k dispozici tento druh poradenství; může být také užitečné pro NFS 4.2, zařízení s perzistentní pamětí nebo nastupující „značkovací deskriptory logických bloků“ T10/T13. Obecně platí, že je nejlepší vyhnout se začleňování takových řešení, která fungují jen s jedním druhem současné technologie, které ale nebudou mít žádný význam pro jiné technologie.

    Martin Petersen věnoval docela dost času hledání optimálního způsobu, jak poskytovat poradenství zařízením obecně. Jeho přístupem je vyhnout se konkrétním instrukcím („vyloučit tato data z mezipaměti“) a spíše popisovat, proč se daná operace I/O provádí. Své výsledky popsal jako „obrovskou pokroucenou spleť tabulky s poníky různých velikostí“, ve skutečnosti to ale zase tak složité není.

    Tato tabulka obsahuje sadu tříd I/O a důsledky na výkon každé třídy. Uvádí třídu „transakce“ s přísnými požadavky na čas dokončení a latenci a vysokou pravděpodobností, že data budou přístupná opět v blízké budoucnosti. Třída „streamování“ také chce rychle dokončení příkazů, ale pravděpodobnost opětovného přístupu k datům je poměrně nízká. Následují třídy „metadata“ (jako transakce, ale s nižší pravděpodobností opětovné potřeby dat), „stránkování“, „data“ a „pozadí“ (která má nízkou naléhavost a nepotřebuje ukládání do mezipaměti).

    V případě (nespecifikovaného) rozhraní API používajícího tyto třídy I/O může kód nízkoúrovňového ovladače namapovat třídu jakékoli konkrétní vstupně-výstupní operace na řádné doporučení pro hardware. Toto mapování může být ale trochu složitější, než by se zdálo, protože hardware je složitější. Navíc je tu problém konzistence přes různá zařízení; kdyby ovladače tyto třídy interpretovaly různě, může to způsobit významné rozdíly ve výkonu, a tím i vyvolat nespokojenost uživatelů.

    Tyto problémy se ale musí vyřešit, pokud mají linuxové systémy řídit hybridní zařízení v jiném než výchozím režimu řízením samotným zařízením. Pokud bude vhodné API pro jádro a uživatelský prostor, přístup založený na třídách se zdá být dostatečně pružný pro co nejlepší využití možností hardwaru blízké budoucnosti. Potom to ale znamená, že se autoři oprav pro současné hybridní disky se budou muset vrátit a začít znovu.

    Příznaky open(): O_TMPFILE a O_BENEATH

    link

    V linuxovém systému se téměř nic neděje bez volání funkce open() nebo některé z jejích variant. Neexistuje žádný jiný způsob vytvoření nového nebo přístupu k existujícímu souboru. Z toho tedy vyplývá, že různé příznaky, které řídí chování open(), mají významný vliv na funkčnost systému jako celku. Podíváme se na dva konkrétní příznaky volání open(); jeden z nich byl do jádra přidán poměrně nedávno, zatímco druhý je stále ještě ve fázi návrhu.

    O_TMPFILE

    Příznak O_TMPFILE se na těchto stránkách probíral několikrát; protože byl přidán poměrně ve spěchu, neprošel důkladnou revizí a došlo u něj k řadě problémů po začlenění. Koncept tohoto příznaku je celkem jednoduchý: požaduje vytvoření souboru bez přidružené položky adresáře. Je tedy určen pro dočasné soubory, které nebude otevírat jiný proces.

    Eric Rannaud se nedávno zeptal: Co by se mělo stát, když proces provede následující volání:

        int fd = open("/tmp", O_TMPFILE | O_RDWR, 0);

    Příznaky požadují vytvoření dočasného souboru pro zápis, ale třetí argument (režim souboru) říká, že není žádný přístup (čtení nebo zápisu) povolen. Pokud k tomu dojde, POSIX se staví zcela jasně k případům, kdy je vytvořen soubor s běžným, příznakem O_CREAT: zadaný režim platí pouze po vytvoření souboru. Tedy, i když proces může vytvořit soubor, ke kterému nemůže obecně přímo přistupovat, může přesto získat funkční popisovač souboru při samotném vytvoření.

    Vypadá to ale, že vytvoření souboru s příznakem O_TMPFILE takto nefunguje; režim souboru se aplikuje od začátku, takže volání open() uvedené výše selže. Takové chování se obecně považuje za chybu a Ericova oprava byla začleněna do verze 3.18-rc3. Objevilo se ale pár zajímavých poznámek, na které je dobré se podívat.

    Podle jedné toto volání:

        int fd = open("/tmp", O_TMPFILE | O_RDONLY, 0666);

    se stejně nezdaří. Když byla implementována funkce O_TMPFILE, zdálo se, že není žádný případ použití dočasného souboru, do kterého nelze zapisovat, proto byl tento případ (O_TMPFILE s O_RDONLY) výslovně zakázán. Ale ukazuje se, že pro tento typ souboru existuje případ použití: atomické vytvoření prázdného souboru s konkrétní sadou rozšířených atributů. Volání open() bude následovat jeden nebo více volání fsetxattr(); když bude všechno připraveno, lze použít linkat() k zviditelnění souboru v souborovém systému. Linus zpočátku souhlasil, že by tento případ použití měl být podporován, ale později si to rozmyslel. Takže soubory O_TMPFILE jen pro čtení nejsou nadále podporovány.

    Zajímavé na tom je, že původní chyba byla objevena při průzkumu související chyby glibc. Zdá se, že když se použije O_TMPFILE, argument režimu není do jádra vůbec předán. V případě open() u počítačů s architekturou x86-64 všechno funguje díky velké dávce štěstí: argument režimu je čirou náhodou umístěn ve správném registru, když glibc provádí volání do jádra. Volání openat() ale tak dobře nefunguje. Důsledkem je, že v aktuálních instalacích glibc nelze O_TMPFILEopenat() vůbec použít. Tato chyba je dobře srozumitelná a měla být brzy odstraněna.

    O_BENEATH

    Když vývojář provede volání openat(), obvykle očekává, že se otvíraný nebo vytvářený soubor bude nacházet v zadaném adresáři. Jak se ovšem často stává, překvapení nepřejí nepřipraveným. Potíže mohou pocházet z překvapivého symbolického odkazu nebo záměrně škodlivého vstupu; v každém případě to může vést k vytváření nebo otvírání souborů tam, kde by být neměly.

    David Drysdale má řešení v podobě příznaku O_BENEATH pro openat(). Pokud je tento příznak součástí volání, soubor, k němuž se přistupuje, musí existovat v daném adresáři nebo v některém z jeho podadresářů. Uplatňování tohoto pravidla je vcelku jednoduché: zadaná cesta je omezena tak, aby nezačinala znakem „/“ ani neobsahovala znak „../“. Stejné podmínky musí splňovat všechny symbolické odkazy procházené při zjišťování cesty.

    Tato funkce byla implementována v rámci sady oprav omezení přístupu souborového systému Capsicum. Ukazuje se, že však existují další potenciální uživatelé. Konkrétně při kombinaci s filtrem, bezpečných výpočtů (dále jen „seccomp“) lze O_BENEATH použít k bezpečnému poskytnutí adresáře, ve kterém může pracovat proces v sandboxu.

    První námitky proti této opravě byly vyřešeny v aktuální verzi. Jedná se o poměrně jednoduchou a neinvazivní opravu, takže je reálná šance, že se dočkáme jejího zavedení do hlavního stromu v rámci některého z následujících začleňovacích oken.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.