abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 4
    včera 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 15
    včera 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Nová verze

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

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

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    22.4. 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    22.4. 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 2
    22.4. 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    22.4. 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    KDE Plasma 6
     (72%)
     (10%)
     (2%)
     (17%)
    Celkem 697 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé

    18. 3. 2014 | Luboš Doležel | Jaderné noviny | 3093×

    Aktuální verze jádra: 3.14-rc4. Citáty týdne: Thomas Gleixner, Paul McKenney. Řádné ošetřování neznámých příznaků v systémových voláních.

    Obsah

    Aktuální verze jádra: 3.14-rc4

    link

    Aktuální vývojová verze jádra je 3.14-rc4 vydaná 23. února. Linus ji okomentoval slovy: Nic velkého nebo obzvláště strašidelného.

    Stabilní aktualizace: verze 3.13.4, 3.12.12, 3.10.31 a 3.4.81 vyšly 20. února, verze followed by 3.13.5, 3.12.13, 3.10.32 a 3.4.82 pak 22. února.

    Citáty týdne: Thomas Gleixner, Paul McKenney

    link

    A teď vážně, všichni, kdo stále používají tasklety, aniž by si byli vědomi jejich nenápadných problémů a měli zatraceně dobrý důvod je používat, by si měli vzít štípačky nebo nějaký jiný vhodný nástroj, aby zneškodnili svou klávesnici a začali pracovat v pekárně, kde mohou jíst vše, co si sami nadrobili.

    -- Thomas Gleixner

    Rád dávám patchům několik týdnů pořádný záhul, než je předám dál. Mám tu zkušenost, že když to neudělám, tak dostanu zanedlouho záhul já.

    -- Paul McKenney

    Řádné ošetřování neznámých příznaků v systémových voláních

    link

    Jedním z důležitých kroků při přidávání argumentu flags pro příznaky do systémového volání je ověřování, zda tento argument obsahuje jen podporované hodnoty. Pokud se tak nestane, tak si zavaříme na řadu problémů s kompatibilitou do budoucna. Pohled na historii vývoje systémových volání na Linuxu (a Unixu) ale ukazuje, že dělá lidem problém si na to zvyknout.

    Každý argument s příznaky (nebo jakoukoliv jinou vstupní strukturou, která obsahuje pole s příznaky) by měl mít příslušnou kontrolu, která může vypadat následovně:

    if (flags & ~(FL_XXX | FL_YYY))
    	return -EINVAL;
    

    Zde FL_XXX a FL_YYY představují hypotetickou sadu příznaků, kterým systémové volání rozumí, důsledkem této kontroly je pak vrácení chyby, pokud volající nastaví jakýkoliv bit, které není v seznamu podporovaných. Podobné kontroly připravují toto API na budoucnost, tedy aby bylo možné systémové volání rozšířit o dodatečné příznaky. Představme si, že systémové volání má nový příznak nazvaný FL_ZZZ a mění tedy kontrolu následovně:

    if (flags & ~(FL_XXX | FL_YYY | FL_ZZZ))
    	return -EINVAL;
    

    Aplikace v uživatelském prostoru je nyní schopna ověřit, jestli běží pod jádrem, kde dané systémové volání podporuje FL_ZZZ, a to tak, že si pohlídá chybu EINVAL při uskutečňování volání. Díky tomu mají aplikace možnost řešit rozdíly v systémových voláních napříč verzemi jádra.

    I když implementace podobných kontrol v jádře může vypadat jednoduše, ukazuje se, že spousta systémových volání tuto kontrolu nedělá, a to včetně clock_nanosleep(), clone(), epoll_ctl(), fcntl(F_SETFL), mmap(), msgrcv(), msgsnd(), open(), recv(), send(), sigaction(), splice(), unshare() a spousty dalších.

    Většina těchto volání tu s námi je už celé roky. Mladší volání, která argument flags mají, nezbytnou kontrolu zpravidla obsahují. I mezi nimi se ale najde pár takových, které ji nemají, jako jsou open_by_handle_at() (2.6.39), recvmmsg() (2.6.33) a sendmmsg() (3.0). V těchto případech autor možná emuloval nepřítomnost takové kontroly u příslušných dřívějších volání (open(), recv(), send()). Jde ale o promeškanou příležitost, jak původní API vylepšit.

    U každého volání, které u argumentu flags postrádá kontrolu, pak nemají aplikace v uživatelském prostoru možnost jak zjistit, které příznaky daná verze jádra podporuje. Opomenutí implementovat tyto kontroly v jádře pak představuje komplikaci i pro životy jaderných vývojářů, což několik vzniklých situací dokazuje.

    Pokud jádro nekontroluje, že ve flags dostává jen platné bity, pak mohou aplikace beztrestně do „nevyužitých“ bitů ve flags dávat náhodný bordel. Jestliže se pak jaderný vývojář rozhodne využít některý z nevyužitých bitů, tak může docházet k překvapivým poruchám v aplikacích, což zase může vést k tomu, že jaderný vývojář bude muset psát neoptimální implementace nových funkčností v API. Příkladem z nedávné doby budiž implementace příznaku EPOLLWAKEUP, kde snaha vyhnout se rozbití uživatelského prostoru vede k tomu, že jádro tiše ignoruje tento příznak, pokud volající proces nemá právo CAP_BLOCK_SUSPEND. V ideálním případě by samozřejmě jádro volajícího o chybě informovalo navrácením chyby. Následkem toho aplikace, které si chtějí být naprosto jisté, že volání uspěje, si musí explicitně ověřit, že mají právo CAP_BLOCK_SUSPEND.

    Ještě čerstvějším případem je implementace příznaku O_TMPFILEopen(), kdy definice příznaku zahrnuje příznak O_DIRECTORY s tím účelem, aby starší jádra, která O_TMPFILE neznají, vrátila chybu v případě, že je tento příznak použit. Bylo potřeba to tak udělat proto, že aplikace vytvářející dočasné soubory si jsou často vědomy bezpečnostních důsledků a potřebují vědět, zda bylo požadavku na vytvoření skrytého dočasného souboru vyhověno. Bez této úpravy by příznak O_TMPFILE byl na starších jádrech prostě ignorován a aplikace by nevědomky vytvářela viditelný soubor. Nepříjemným vedlejším účinkem je pak to, že aplikace musejí kontrolovat vrácení dvou různých chybových hodnot, aby zjistily, zda běží na jádře, které O_TMPFILE nepodporuje.

    Dále stojí za zmínku, že několik systémových volání přidalo kontrolu argumentu flagspo počáteční implementaci. Mezi ně patří dvě stará volání umount2() (kontrola přidána v Linuxu 2.6.34) a swapon() (kontrola přidána v Linuxu 3.4). Dále je tu pak mremap(), které se poprvé objevilo v Linuxu 2.0 a bylo rozšířeno o kontrolu v Linuxu 2.4, a volání timerfd_settime(), které se poprvé objevilo ve verzi 2.6.25 a bylo o kontrolu rozšířeno v Linuxu 2.6.29.

    Přidání kontrol do těchto volání ale představuje vyjímku z pravidla, že podobné kontroly nelze přidávat, jelikož by mohlo dojít k rozbití stávajících aplikací, které předávají nahodilý bordel v „nevyužitých“ bitech argumentu flags. U umount2() a swapon() bylo možné změnu udělat snad proto, že mimo příkazy mount a swapon je málokdo používá a tyto programy by bylo možné v případě rozbití jednoduše opravit. V případě timerfd_settime() došlo ke změně krátce po počáteční implementaci, kdy toto rozhraní moc programů asi ještě nepoužívalo. A v případě mremap() došlo ke změně při velkém skoku verze jádra (mezi 2.2 a 2.4), kdy byly takové změny ABI výjimečně povoleny; při současném 10týdenním vývojovém cyklu takové změny možné nejsou.

    Proto, když kontrola nepoužívaných bitů příznaků není zařazena do počáteční implementace, nebývá možné ji doplnit později. Jednoznačným závěrem tedy je, že náležité kontroly by měly být přidány hned zkraje.

           

    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ář

    18.3.2014 22:47 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Pouzivani EINVAL pro kontrolu, zda je featura dostupna, me prijde jako dost prasacke rozhrani. Pokud se zavadi kontrola s ohledem na budouci rozsiritelnost, tak by mel byt pouzit nejaky specificky chybovy kod ('ENOFLAG'), podobne jako se pouziva ENOPROTOOPT u setsockopt() pro nezname options. A EINVAL by se mel nechat pro skutecne invalidni hodnoty, nikoliv pro nezname, ale potencialne (v budoucnu) validni.
    Karry avatar 18.3.2014 23:58 Karry | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Přijde mi že jaderní vývojáři se zdráhají vytvářet jednoznačné chybové kódy... Podobně jako u Btrfs může ENOSP znamenat od "došlo místo", "vyčerpal jsi kvótu", "kernel špatně odhadl místo pro metadata" až po "nepodařilo se mi alokovat buffer v paměti"...
    unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
    20.3.2014 08:31 Petr Ježek | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Kdyby tak byly jednoznačné podněty pro vyvolání těchto chybových kódů. Jak známo, rozbít si ústa lze nekonečně mnoha způsoby...
    Archlinux for your comps, faster running guaranted!
    little.owl avatar 19.3.2014 12:24 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    I like to hammer new patches for a few weeks before passing them on. My experience is that if I fail to do so, they hammer me somewhat later. ;-)
    a
    Rád dávám patchům několik týdnů pořádný záhul, než je předám dál. Mám tu zkušenost, že když to neudělám, tak dostanu zanedlouho záhul já.

    Tohle me hned chytlo za usi, preklad posledni vety je cely dosti mimo.
    A former Red Hat freeloader.
    19.3.2014 13:39 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Nevidím problém?
    little.owl avatar 19.3.2014 14:07 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Kounete se na znovu na posledni vetu.

    Anglicka verze jasne rika od koho se dostane zahul, v ceskem prekladu se to musite domyslet; navic prelozit "later" jako "zanedlouho" take neni to prave orechove, pozdeji neznamena zanedlouho.

    Tedy, trochu lepe:
    ... , tak [oni] daji pozdeji zahul mne.
    Tohle vam v komunikaci prinese problemy.
    A former Red Hat freeloader.
    19.3.2014 14:36 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    No nic. Tyhle doslovný překlady fakt "miluju"...

    P.S. Kdo oni? Snad ony?
    19.3.2014 14:41 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    P.P.S. "Somewhat later" je něco somewhat jiného než "later". :-D
    little.owl avatar 19.3.2014 15:11 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Jiste, lze to jeste upresnit. Jinak si rad poslechnu jaky rozdil v tom vy vidite.
    A former Red Hat freeloader.
    19.3.2014 15:57 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    jaky rozdil v tom vy vidite.
    No, asi takový, jako autor překladu, který to přeložil jako zanedlouho a ne později. :-)
    little.owl avatar 19.3.2014 17:15 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Tak to v zadnem pripade, je to stale "pozdeji", tomu neutecete. "somewhat" je tu neco mezi urcitou formou eufemismu a slovni vatou.

    Schvalne jsem se na to ted zeptal svych rodilych britskych kolegu: vypusteni "somewhat" zde vyznam v zasade nemeni, ani nema vliv na to jestli se to stane drive ci pozdeji na casove ose (vseobecna shoda), spise to indikuje, ze se tak skutecne stane (o neco mensi shoda). Anglicane, co ti vedi o anglictine, ze?
    A former Red Hat freeloader.
    19.3.2014 17:20 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Kolego, končím debatu o lejnu.
    little.owl avatar 19.3.2014 15:05 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Nejde o doslovnost, ani pravopis, ale posunuti vyznamu a vypusteni informace, coz je u citace problem; dalsi casti take rozhodne nejsou doslovne a nic proti tomu nemam.
    P.S. Kdo oni? Snad ony?
    Muzsky nezivotny, nominativ by asi mel byt skutecne "ony". Vyrustal jsem v prostredi, kde se pouzivalo jen "oni". V jake oblasti CR se prirozene mluvi podle doporucenych pravidel Ustavu pro jazyk cesky?
    A former Red Hat freeloader.
    19.3.2014 15:55 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Já tam skutečně žádnou vypuštěnou informaci nikde nevidím, sorry.
    V jake oblasti CR se prirozene mluvi podle doporucenych pravidel Ustavu pro jazyk cesky?
    No, to je tak, když někdo nesmyslně rejpe do překladu, a pak to sám zkomolí tak, že to nedává smysl...
    19.3.2014 20:42 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    V jake oblasti CR se prirozene mluvi podle doporucenych pravidel Ustavu pro jazyk cesky?

    Jak se mluvi je vzhledem k psane forme komentare irelevantni, ale pise se tak snad ve vsech oblastech.
    19.3.2014 22:05 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Asi tak nějak. Ale jinak na závěr tip pro sovy: co se jít vyřádit třeba na ýDěs? :-D

    Originál: "It sounds very much like a fireball or an extra-bright meteor, meaning a chunk of rock from space that got in the way of Earth and burns up in the atmosphere."

    Překlad: "Podle výpovědí to vypadá na obyčejnou ohnivou kouli, nebo velice jasný meteorit."

    :-D :-D :-D
    little.owl avatar 20.3.2014 01:05 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    OK, OK, beru vse zpet a prekladateli zde se timto omlouvam.
    A former Red Hat freeloader.
    little.owl avatar 20.3.2014 01:05 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Vetsinou se pise tak jak se mluvi a predtim, nez to budete rozporovat, projdete si diskuze na tomto serveru.

    Pokud si jeste vzpominam na stredni skolu, kde jsem kvuli tomu dostaval na budku - rozlisujeme: (a) spisovnou cestinu, (b) hovorovou spisovnou cestinu a (c) nespisovnou cestinu. (a) je odvozovano z (b), a (b) pouziva prvky z (c). Slang, kterym se to tu casto jen hemzi, je povazovan za nespisovnou cestinu.

    Predpoklad, ze psana forma je automaticky (a), skoncil v dobe kdy pisemny projev prestal byt domenou formalni komunikace.
    A former Red Hat freeloader.
    Pavel Stárek avatar 20.3.2014 13:21 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    No a tedy jak by měl znít správný překlad oné věty?
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    20.3.2014 14:18 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Rád kladivo nové záplaty pro několik týdnů předtím, než je předá dál. Moje zkušenost je, že když tak neučiní, že kladivo mě o něco později. ;)
    21.3.2014 15:50 u2
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    tak to asi neumis anglicky. Me osobne naopak z originalu konecne ta veta zacla davat smysl. Mel me varovat uz ten pubertacky vyraz "zahul", ze neco nebude s prekladatelem vporadku...
    21.3.2014 15:54 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Máš pravdu, jen jsem v Anglii vystudoval VŠ a překládáním se asi deset let živím, jinak do toho vůbec nevidím. Já mám totiž bohužel dojem, že lidi přestávají (roz)umět česky.
    20.3.2014 08:34 Petr Ježek | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Stálo to za to takhle zaplavelit téma? Nic jiného na sdělení k tématu? Kam to spějeme...
    Archlinux for your comps, faster running guaranted!
    20.3.2014 09:27 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    +1, tesil jsem se, ze se zas dozvim neco o flazich, jako pod minulym dilem a ono tohle :-P
    Baník pyčo!
    21.3.2014 15:55 u2
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    obavam se ze o FLAZICH by ses nedozvedel stejne nic

    Založit nové vláknoNahoru

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