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í
×
    včera 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | IT novinky

    Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.

    Ladislav Hagara | Komentářů: 11
    3.5. 22:33 | Nová verze

    Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.

    Ladislav Hagara | Komentářů: 2
    2.5. 22:22 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).

    Ladislav Hagara | Komentářů: 0
    2.5. 19:11 | IT novinky

    Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.

    Ladislav Hagara | Komentářů: 3
    2.5. 11:22 | Zajímavý projekt

    Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.

    Ladislav Hagara | Komentářů: 2
    2.5. 09:11 | Bezpečnostní upozornění

    Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.

    Ladislav Hagara | Komentářů: 2
    1.5. 20:00 | Komunita

    V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.

    Ladislav Hagara | Komentářů: 3
    1.5. 19:22 | IT novinky

    Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).

    Ladislav Hagara | Komentářů: 0
    30.4. 22:33 | Nová verze

    Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (8%)
     (21%)
     (4%)
     (2%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 521 hlasů
     Komentářů: 19, poslední 30.4. 11:32
    Rozcestník

    Jaderné noviny - 5. 9. 2007

    18. 9. 2007 | Robert Krátký | Jaderné noviny | 3890×

    Aktuální verze jádra: 2.6.23-rc5. Citáty týdne: 2× Andrew Morton. LinuxConf.eu: dokumentace a API pro uživatelský prostor. LinuxConf.eu: jak nenavrhovat jaderná rozhraní.

    Obsah

    Aktuální verze jádra: 2.6.23-rc5

    link

    Aktuální předverze je (k 5. 9. 2007) 2.6.23-rc5, kterou Linus vydal 31. srpna, těsně před odjezdem na kernel summit. Obsahuje slušnou řádku oprav; jádro se stabilizuje, ale než bude připraveno k vydání, bude ještě potřeba trochu práce.

    Od vydání -rc5 přibylo do hlavního git repozitáře jen několik oprav.

    Aktuální verze -mm stromu je 2.6.23-rc4-mm1. Mezi nedávné změny patří výrazné interní implementační změny v sysfs, změny API pro souborové systémy, patche pro odstranění sysctl() a patche pro regulaci využití paměti v kontejnerech.

    Aktuální stabilní verze řady 2.6 je 2.6.22.6, vydaná 30. srpna s pár desítkami oprav.

    Citáty týdne: 2x Andrew Morton

    link

    Chceme-li administrátorům systémů něco vzkázat, neměli bychom je nutit ten vzkaz hledat v gitu a diskuzích na LKML!

    -- Andrew Morton

    Soudě podle počtu a vážnosti hlášení o chybách, která tu létají, není 2.6.23 zrovna na spadnutí.

    -- Andrew Morton

    LinuxConf.eu: dokumentace a API pro uživatelský prostor

    link

    Michael Kerrisk Michael Kerrisk, od roku 2004 správce linuxových manuálových stránek, přednesl během prvního dne konference LinuxConf Europe 2007 řeč o hodnotě dokumentace. Ačkoliv je dokumentace užitečná i pro koncové uživatele, na ně se Michael nezaměřoval; místo toho mluvil o tom, jak může dokumentace pomoci dělat lepší jádro. Psaní dokumentace podle Michaela odhaluje chyby a špatné návrhy rozhraní, než se stanou součástí vydaného jádra. A to může ušetřit spoustu nepříjemností jak vývojářům jádra, tak uživatelských aplikací.

    Michael nabídl tři příklady na ukázku toho, jak může psaní dokumentace odhalit chyby:

    • Rozhraní inotify bylo přidáno do jádra 2.6.13. Šlo o vylepšení způsobu posílání upozornění aplikacím při změnách adresářů nebo souborů. Kolem verze 2.6.16 se Michael dostal k napsání manuálové stránky pro toto volání, ale zjistil, že jedna volba (IN_ONESHOT) nikdy nefungovala. Jakmile byl problém objeven, oprava byla rychlá - ale nejprve se někdo musel pokusit rozhraní zdokumentovat.

    • splice() bylo přidáno do 2.6.17. Michael zjistil, že bylo snadné napsat program, který zatuhne, aniž by ho šlo odstřelit; snadno šlo také zatuhlými procesy systém zahltit. Opět byl problém rychle opraven, jakmile se na něj přišlo.

    • Rozhraní timerfd(), které bylo začleněno do 2.6.22, nefungovalo ta, jak mělo. Některé nedostatky byly popsány v článku timerfd() a kontrola systémových volání.

    Podle Michaela je přítomnost vadných rozhraní ve stabilních vydáních jádra důsledkem nedostatečného testování -rc verzí během vývojového procesu. S tímto problémem může pomoci lepší dokumentace. Ta by ostatně mohla pomoci i při samotném návrhu API. Navrhování API je složité a ještě jej ztěžuje fakt, že chyby v návrhu musí být podporovány navždy. Takže cokoliv pomůže s vytvářením lepších API si zaslouží pozornost.

    Dobré API se vyznačuje jednoduchostí, snadností použití, obecností, konzistencí s dalšími rozhraními a integrací s dalšími rozhraními. Špatně navržená rozhraní tyto vlastnosti nemají. Jako příklad nabídl Michael rozhraní dnotify - předchozí pokus o poskytnutí služby, která by informovala o změnách souborů. Dnotify mělo problémy kvůli používání signálů, což je vždy zárukou obtížně použitelného rozhraní. Mohlo sledovat pouze adresáře, ne jednotlivé soubory. Vyžadovalo také udržování otevřeného popisovače souborů, takže nebylo možné odpojit žádný souborový systém, kde bylo dnotify používáno. Množství informací poskytovaných aplikacím bylo také omezené.

    Jako další příklad byla uvedena systémová volání mlock() a remap_file_pages(). Obě mají parametry start a length pro určení rozsahu ovlivněné paměti. Rozhraní mlock() zaokrouhluje parametr length na další stránku, kdežto remap_file_pages() zaokrouhluje dolů. Rozhraní se liší také v tom, kdy parametr length uplatňují. Výsledkem je, že volání

        mlock (4000, 6000);
    

    ovlivní bajty 0..12287, zatímco

        remap_file_pages (4000, 6000, ...);
    

    ovlivní bajty 0..4095. Taková nekonzistence vývojářům znesnadňuje práci.

    O tom, jak jsou tato rozhraní špatná, by se dalo vyplýtvat hodně bitů, ale Michael položil i otázku, jestli je to vůbec chyba jejich autorů. Nepřispěla k těmto problémům také absence kontroly?

    Mnohé potíže pramení ze skutečnosti, že ti, kdo rozhraní systémových volání navrhují (hackeři jádra), obvykle daná rozhraní nepoužívají. Ve snaze zlepšit situaci Michael navrhl formalizaci vývojového procesu rozhraní systémových volání. Uznal sice, že bude těžké něco takového prosadit, ale potřeba vytvářet bezvadná rozhraní z toho dělá nutnost. Takže by rád docílil zavedení formální povinnosti podepisování [signoff] API - i když neupřesnil, kdo by podepisoval. Než by mohlo k podpisu dojít, musela by proběhnout kontrola návrhu, musela by existovat kompletní dokumentace a sada testů. Testy by musely být alespoň zčásti od někoho jiného než vývojáře rozhraní, který si nikdy nedokáže představit všechny bláznivé věci, které by s novým rozhraním mohli chtít uživatelé dělat.

    Dokumentace je důležitou součástí procesu. Při psaní dokumentace často vyjdou najevo chyby. Kromě toho je díky dokumentaci pro ostatní snazší navrhovanému rozhraní porozumět, takže je více kontrolováno a testováno. Bez testování ze strany vývojářů aplikací se na chyby v novém API často přijde až po zařazení do stabilního vydání jádra, kdy už je pozdě.

    Při následné debatě se mluvilo tom, že přimět vývojáře aplikací, aby testovali systémová volání v -rc jádrech bude obtížné. Alternativou, která už byla zmíněna dříve, by bylo označovat po několik vývojových cyklů od přidání nová systémová volání jako "experimentální". Pak by bylo možné vyzkoušet nová volání bez provozování testovacích jader a pořád mít vliv na to, jak bude finální podoba API vypadat. Možná by bylo snazší vývojáře jádra přesvědčit k tomuto postupu, místo komplikovaného formálního schvalování. Jak tato diskuze dopadne, to bude záležet na tom, nakolik vývojáři považují současný způsob návrhu a nasazování nových API pro uživatelských prostor za problém.

    LinuxConf.eu: jak nenavrhovat jaderná rozhraní

    link

    Arnd Bergmann Následující den přednesl Arnd Bergmann řeč o tom, jak nenavrhovat jaderná rozhraní. Začal tím, že dobrá rozhraní jsou navrhována "vkusně"; ale rozhodování o dobrém vkusu není vždy snadné. Vkus je subjektivní a časem se mění. Některé charakteristiky vkusného rozhraní jsou však jasné: jednoduchost, konzistence a používání správného nástroje pro daný úkol. Je to samozřejmě velmi podobné tomu, co říkal Michael den předtím.

    Jak tomu bývá i v jiných oblastech, návrhy rozhraní se nejlépe popisují pomocí poukazování na věci, které by se dělat neměly. Arnd začal systémovými voláními, která jsou primárním rozhraním jádra. Přidávání nových systémových volání není snadné; nejprve musí projít množstvím kontrol (ačkoliv, jak bylo zmíněno výše, pořád jich patrně není dost). Ale často může být alternativní řešení ještě horší; Arnd uvedl jako příklad hypotetické zařízení /dev/exit; proces, který dokončil svou práci, by se ukončil otevřením a zápisem na toto zařízení. Takové schéma by umožnilo odstranění systémového volání exit(), ale v žádném případě by se nejednalo o vkusnější rozhraní.

    Systémové volání ioctl() je už dlouho terčem kritiky; není typově bezpečné, těžko se skriptuje a představuje snadný způsob, jak do jádra propašovat změny ABI, aniž by si toho někdo všiml. Na druhou stranu je dobře zavedené, snadno rozšiřitelné, funguje v modulech a může poskytnout dobrý způsob k prototypování systémových volání. A snaha o obcházení ioctl() může opět vést k horším věcem; Arnd představil příklad z kódu InfiniBand, který interpretuje data zapsaná do speciálního popisovače souboru, aby mohl spouštět příkazy. Výsledkem je v podstatě ioctl(), ale ještě méně přehledné.

    Sokety jsou další dobře zavedené rozhraní, které by, podle Arnda, v současné době nebylo do jádra za žádnou cenu přijato. Jsou naprosto nekonzistentní se vším ostatním, pracují se zařízeními, která nejsou součástí stromu zařízení, mají volání pro čtení a zápis, ale nejsou to read() a write() a tak dále. Netlink, který rozhraní soketů ještě zkomplikoval, zrovna situaci v uživatelském prostoru nepomohl; podle Arnda je lepší se jejich použití vyvarovat. Ale podstatné je, že je lepší použít netlink, než jej vynalézat znovu. API bezdrátových rozšíření [wireless extensions] bylo uvedeno jako další příklad, jak věci nedělat; založení bezdrátových rozšíření na netlinku zkombinovalo do jediného rozhraní nejhorší vlastnosti soketů a ioctl().

    "V módě" je teď navrhování nových rozhraní s pomocí virtuálních souborových systémů. Ale i s tím jsou potíže. /proc se stalo smetištěm nových rozhraní, dokud se na přidávání dalších věcí nezačali vývojáři dívat přísněji. Sysfs bylo zamýšleno jako řešení mnoha problémů s /proc, ale zjevně nebyl vyřešen problém se nestabilitou API. Virtuální souborové systémy jsou možná nejlepší způsob vytváření nových rozhraní, ale i tam číhají nepříjemnosti.

    Nakonec se mluvilo o navrhování rozhraní, která by usnadnila emulaci ABI. Arnd navrhoval, aby byly datové struktury stejné v jádře i uživatelském prostoru. Je-li to možné, neměly by se používat long proměnné a ukazatele. K problémům může vést i vatování struktur [structure padding] - ať už explicitní nebo způsobené špatně zarovnanými poli. A tak dále.

    Byla to zajímavá přednáška s velkou účastí publika. Součástí Linuxu je množství chyb v návrhu uživatelských rozhraní, která musejí být už navždy podporována. Je však také velký zájem se podobným chybám v budoucnu vyhnout. I s mnoha zkušenostmi jde však pořád o velmi obtížný problém.

           

    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.9.2007 01:25 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Navrhování API je složité a ještě jej ztěžuje fakt, že chyby v návrhu musí být podporovány navždy.
    Zajímalo by mě, proč nefunguje princip "tady je nové API, za dva roky staré odstraníme. Používejte nové." IMHO jsou dva roky dost času na to, aby bylo možné upravit drtivou většinu programů.
    Quando omni flunkus moritati
    zoul avatar 18.9.2007 10:09 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Hromada programů například bývá neudržovaná. Klidně jsou třeba i naprosto stabilní a odladěné, ale když jim někdo podtrhne API, uživatelé o ně přijdou. Když se často mění API, rychle taky zastarává dokumentace, například knihy a různí průvodci na webu. Nic z toho není fatální, ale je to nepříjemné.
    18.9.2007 12:20 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Porušujete to zlaté pravidlo "nesahat na něco, co funguje". V uživatelském prosotru je při takové změně nutné upravovat programy, které fungují spolehlivě bez jediné úpravy několik let, případně je nutné sahat do částí vyvíjeného programu, se kterými by se jinak vůbec nemanipulovalo. Jak známo, při každé opravě programu se do něj zanese alespoň jedna další chyba.
    21.9.2007 01:26 me
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Linux ma ted trosku problem, vyvoj probiha prubezne ve vetvi 2.6.x. Pokud by se neco melo odstratnit, mela by se utvorit uplne nova vetev, treba 2.8.x. Pokud se bude umazavat ve vetvi 2.6.x, vznikne zrejme znacny chaos. Neslysel jsem, ze by se uvazovalo o otevreni noveho stromu...
    18.9.2007 07:22 cronin | skóre: 49
    Rozbalit Rozbalit vše Dokumentovanie odhaľuje chyby
    Z vlastnej skúsenosti môžem potvrdiť, že dokumentácia rozhrania odhaľuje jeho chyby. Viackrát sa mi stalo, že som písal dokumentáciu metódy, pričom som písal to, o čom som bol presvedčený, že metóda robí; keď som sa ale aspoň zbežne na tú metódu pozrel, zistil som, že v žiadnom prípade nemôže robiť to, čo som práve napísal. Pozrem lepšie, ajhľa, chyba! Nestalo sa mi to veľakrát, ale stalo sa mi to neraz. Písať dokumentáciu k programom je správne.
    18.9.2007 07:57 cedrik
    Rozbalit Rozbalit vše Re: Dokumentovanie odhaľuje chyby
    Ještě je dobré si ji po sobě přečíst. Někdy si človek říká na co zrovna myslel, když mohl zplodit takovou nepěknou, ošklivou tentonoc.
    19.9.2007 08:01 polish
    Rozbalit Rozbalit vše Re: Dokumentovanie odhaľuje chyby
    jj, tomu se rika midnight kod
    18.9.2007 14:41 lm
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    super. a ani ta cestina mi nevadila, (naopak) :)
    19.9.2007 10:34 Jirka
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Ze by se otviral prostor pro uplne nove jadro?
    19.9.2007 21:15 nardew | skóre: 5
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    urcite nie
    the best way of Memtest is emerge qt kde-meta
    19.9.2007 21:19 alexovi
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Nedalo by sa napisat nove jadro (API) a stare emulovat ? Po niekolkych rokoch by sa emulator mohol poupravit tak aby trosku spomaloval (nie vyrazne, aby to prinutilo ludi prepisat dane programi na nove API), popripade preposielat informacie o programoch, ktore ho pouzivaju do nieakej globalnej databazy a snad by sa niekto nasiel kto by to prerobil. Pride mi nezmyselne udrziavat nevhodne API. Potom to iba rastie a rastie az je toho tolko, ze novy vyvojary nevedia co pouzit. (ala windows)
    19.9.2007 22:22 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Kolko tisic riadkov produckneho kodu si uz napisal?
    19.9.2007 23:28 alexovi
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Hodne, programujem profesionalne (alebo ak chces tak pracovne) uz okolo 10 rokov. Je pravda, ze "iba" aplikacie narocne na zdroje, ktore sa snazia vyuzivat maximum z toho co hardware da. Takze pouzivane technologie sa nam menia casto. Ale o mna tu nejde. Linuxovy kernel sledujem iba povrchne. Z predchdzjucej diskusie som pochopil, ze problem je hlavne so starsimi aplikaciami, ktore nikto uz neudrziava. Pod zmenou API som samozrejme nemyslel prepisat vsetko az taky naivny nie som. Uz zopar krat sa nam osvedcilo zbavit sa uplne niektorych starych kodov a napisat to na novo. Ano clovek tam naroby nieake nove chybky ale roby to kvoli tomu ze tie stare chybky sa uz nedaju rozumne opravovat.
    20.9.2007 07:12 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    Ja tiez programujem/navrhujem pracovne. Tvoj navrh mi prisiel dobry "as is", ale v praxi sa mi zda nepravdepodobne vyvijat taku namahu navyse. Na druhej strane, malokto si dovoli odstranit interface, na ktorom zavisia aplikacie; stratit akukolvek cast zakaznikov, v tomto pripade pouzivatelov, kvoli vykonaniu nejakej vlastnej akcie, ktorej dosledky sa dali predvidat, nikto nebude riskovat. Ako priklad mozem uviest Javu: je par rozhrani, ktore su navrhnute vyslovene zle. Vie sa, ako to urobit dobre, existujuce metody su uz mnoho rokov @deprecated, velmi vela profesionalnych dizajnerov a programatorov chce novu ocistenu Javu a nevadi im, ze nebude spatne kompatibilna, ale Sun jednoducho odmieta urobit taky krok, ktory by okamzite znefunkcnil co i len 1% programov; pre pouzivatelov by to bol velmi zly signal: dnes znefunkcnili 1% programov, zajtra mozu 5% a medzi nimi moze byt aj ta nasa...

    Takze chciet vynutit len spravne navrhnute rozhrania je dobre a chvalyhodne, ale svet je o kusok komplikovanejsi. :-(
    20.9.2007 17:33 ed | skóre: 18
    Rozbalit Rozbalit vše Re: Jaderné noviny - 5. 9. 2007
    uz niekolko verzii jadra mi picmic subsystem pri boote tvrdi, ze sucasne mnou pouzivane rozhranie bude z kernelu odstranene a co si myslis, ze s tym robim? nic :) na ho pouzivam k spokojnosti, tak nevidim dovod ho odstranovat.

    Založit nové vláknoNahoru

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