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:22 | Nová verze

    Knihovna FFmpeg byla vydána ve verzi 8.0 „Huffman“. Přibyla mj. podpora hardwarově akcelerovaného kódování s využitím API Vulcan, viz seznam změn.

    Fluttershy, yay! | Komentářů: 0
    včera 17:44 | IT novinky

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2024 (pdf). V loňském roce NÚKIB evidoval dosud nejvíce kybernetických bezpečnostních incidentů s celkovým počtem 268. Oproti roku 2023 se však jedná pouze o drobný nárůst a závažnost dopadů evidovaných incidentů klesá již třetím rokem v řadě. V minulém roce NÚKIB evidoval pouze jeden velmi významný incident a významných incidentů bylo zaznamenáno 18, což oproti roku 2023 představuje pokles o více než polovinu.

    Ladislav Hagara | Komentářů: 1
    včera 13:55 | Komunita

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie). Servo mimo jiné nově zvládne animované obrázky APNG a WebP.

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

    Na chytré telefony a počítačové tablety v Rusku bude od začátku příštího měsíce povinné předinstalovávat státem podporovanou komunikační aplikaci MAX, která konkuruje aplikaci WhatsApp americké společnosti Meta Platforms. Oznámila to dnes ruská vláda. Ta by podle kritiků mohla aplikaci MAX používat ke sledování uživatelů. Ruská státní média obvinění ze špehování pomocí aplikace MAX popírají. Tvrdí, že MAX má méně oprávnění k přístupu k údajům o uživatelích než konkurenční aplikace WhatsApp a Telegram.

    Ladislav Hagara | Komentářů: 24
    včera 04:22 | IT novinky

    Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu srpnový souhrn novinek. Kvůli nedostatečnému zájmu byla ukončena výroba telefonů PinePhone Pro.

    Ladislav Hagara | Komentářů: 1
    21.8. 22:22 | Nová verze

    Po pěti měsících vývoje byla vydána nová verze 0.15.1 programovacího jazyka Zig (GitHub, Wikipedie). Verze 0.15.0 byla přeskočena. Přispělo 162 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    21.8. 21:55 | Komunita

    Před sedmi lety společnost Valve představila fork projektu Wine s názvem Proton umožňující v Linuxu přímo ze Steamu hrát počítačové hry do té doby běžící pouze ve Windows. Aktuální přehled podporovaných her na stránkách ProtonDB

    Ladislav Hagara | Komentářů: 0
    21.8. 14:55 | IT novinky

    Společnost DuckDuckGo rozšířila svůj AI chat Duck.ai o GPT-5 mini (𝕏). Duck.ai umožňuje anonymní přístup bez vytváření účtů k několika modelům umělé inteligence. Aktuálně k GPT-4o mini, GPT-5 mini, Llama 4 Scout, Claude Haiku 3.5 a Mistral Small 3.

    Ladislav Hagara | Komentářů: 5
    21.8. 12:44 | Bezpečnostní upozornění

    Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze

    … více »
    Ladislav Hagara | Komentářů: 1
    20.8. 21:11 | IT novinky

    Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.

    Ladislav Hagara | Komentářů: 25
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (76%)
     (10%)
     (4%)
     (4%)
     (6%)
     (0%)
    Celkem 49 hlasů
     Komentářů: 6, poslední 21.8. 13:35
    Rozcestník

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

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

    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.