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

    Google Chrome 126 byl prohlášen za stabilní. Nejnovější stabilní verze 126.0.6478.55 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

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

    Byl vydán Mozilla Firefox 127.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 127 je již k dispozici také na Flathubu a Snapcraftu.

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

    Byla vydána (𝕏) nová verze 9.5 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

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

    Společnost Raspberry Pi dnes vstoupila na Londýnskou burzu jako Raspberry Pi Holdings plc (investor).

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

    Do 17. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2024 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.

    Ladislav Hagara | Komentářů: 0
    10.6. 22:33 | IT novinky

    Apple na své vývojářské konferenci WWDC24 (Worldwide Developers Conference, keynote) představil řadu novinek: svou umělou inteligenci pojmenovanou jednoduše Apple Intelligence, iOS 18, visionOS 2, macOS Sequoia, iPadOS 18, watchOS 11, …

    Ladislav Hagara | Komentářů: 10
    10.6. 21:44 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Gajim, která přidává podporu reakcí pomocí emoji (XEP-0444: Message Reactions) a citace zpráv (XEP-0461: Message Replies). Přehled dalších vylepšení je k dispozici na oficiálních stránkách.

    sonicpp | Komentářů: 1
    10.6. 15:00 | Nová verze

    Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 7
    10.6. 12:00 | Zajímavý článek

    Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.

    Fluttershy, yay! | Komentářů: 1
    10.6. 08:44 | Zajímavý software

    Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).

    Fluttershy, yay! | Komentářů: 2
    Rozcestník

    Jaderné noviny - 1. 11. 2006

    27. 11. 2006 | Robert Krátký | Jaderné noviny | 3498×

    Aktuální verze jádra: 2.6.19-rc4. Citát týdne: Harald Welte. Záplava varování. Nadcházející změna API: struct path.

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

    link

    Aktuální předverze je 2.6.19-rc4, vydaná 30. října. Obsahuje docela dost oprav, včetně té, která napravuje změnu, kvůli které nefungoval ndiswrapper. Podrobnosti v dlouhém changelogu.

    V hlavním git repozitáři se stále hromadí patche; po vydání -rc4 byly zařazeny opravy síťového subsystému, změny eCryptfs a několik velkých aktualizací architektur.

    Adrian Bunk i nadále spravuje seznam známých regresí v aktuálních předverzích řady 2.6.

    Aktuální verze -mm stromu je 2.6.19-rc4-mm1. Mezi nedávné změny patří odstranění stromů ACPI a ovladačového jádra kvůli různým problémům a patche pro podporu paravirtualizace na i386.

    Citát týdne: Harald Welte

    link

    Kolikrát už jsi viděl, že by kód, který vydávají (většinou embedded) výrobci pod GPL, byl doopravdy něčím užitečný, aby stálo za to jej začlenit do existujícího Free Software projektu, nebo ze kterého by dokonce vznikl nový Free Software projekt. Za sebe mohu říct: nikdy. Opravdové číslo možná není nula, ale bude to blízko.

    -- Harald Welte

    Záplava varování

    link

    Předverze 2.6.19-rc4 nadělala více starostí, než by vývojářům bylo milé; zmatky kolem návratového typu interní funkce vedly k nežádoucímu pomíchání ukazatelových a celočíselných typů v hlubinách blokové vrstvy. Ukázalo se, že gcc o problému věděl a řádně na něj upozornil. Nikdo si však varování před začleněním patche nevšiml a výsledné jádro bylo vydáno. Jinými slovy: problém, kterému by mělo být snadné se vyhnout.

    Linus reagoval takto:

    A to mám zapnutý SYSFS, takže jsem to varování měl vidět.

    Ale já už jsem k těm varováním slepý. Prostě proto, že máme tolik zbytečného balastu o zastaralosti a dalších pitomostech, a PPC má ještě navíc vlastní hromadu nesmyslných varování generovaných kompilátorem a linkerem.

    Už bychom se měli zbavit všech těch varování "ze slušnosti", protože se mezi nimi ztrácejí ta _skutečná_.

    Nejeden vývojář jádra si určitě pomyslel, proč to trvalo tak dlouho, než k tomu došlo - stížnosti na přehnané množství varování nejsou nic nového. Je velký zájem na tom, aby počítač sám nacházel problémy, kdykoliv je to možné. To vede ke stoupajícímu počtu značení "must check" [povinná kontrola] a dalším změnám, jež mají za následek vypsání varování, kdykoliv něco vypadá podezřele. Navíc gcc generuje slušné množství varování v situacích, kde žádné skutečné problémy nejsou. Výsledkem je, že varování týkající se opravdových problémů se v té záplavě ztratí.

    Už nějakou dobu existují patche, které řeší mnohá varování typu "this variable might not be initialized before being used" [tato proměnná možná nebyla před použitím inicializována]. Ne všichni však souhlasí se začleněním; některým vývojářům se nelíbí představa zaneřádění (a zvětšení) jádra nepotřebnými inicializacemi kvůli něčemu, co považují za chybu gcc. Nic nenasvědčuje tomu, že by poslední epizodka nějak změnila pohled na věc; inicializační patche možná budou i nadále vyčkávat.

    Al Viro na to šel jinak. Vyvinul malý nástroj nazývaný "remapper", který sleduje pohyb bloků kódu v jádře mezi jednotlivými verzemi. S pomocí generovaných informací může být sada varování kompilátoru přemapována ze starého jádra na odpovídající čísla řádků v novějším jádře. Pak je možné použít nástroj jako diff pro porovnání výstupu ze staré a nové kompilace; výsledkem je výpis pouze těch varování, která se objevila až u nového jádra. S takto filtrovaným výstupem mohou vývojáři snadno nalézt místa, kde kompilátor upozornil na skutečné problémy.

    Remapper je možné stáhnout pomocí git:

        git://git.kernel.org/pub/scm/linux/kernel/git/viro/remapper.git
    

    Dave Jones také připravuje každodenní verze.

    Používání remapperu je poměrně jednoduché. Po kompilaci nástroje remap-log začnete příkazem:

        diff-remap-data 2.6.19-rc2 2.6.19-rc3 > 2-to-3.map
    

    Výsledný "map" soubor je plný názvů souborů a čísel; mapují čísla řádků za starého adresářového stromu do nového - a označují bloky kódu, které byly úplně odstraněny. Další nástroj (git-remap-data) provádí stejnou věc u dvou commitů v git repozitáři; v takovém případě je možné také správně zpracovat přejmenované soubory.

    Nástroj remap-log může být využit k přesunutí starých logů kompilace do současných:

     remap-log 2-to-3.map < 2.6.19-rc2.log > 2.6.19-rc2-remapped.log
    

    Pokud je pak nový log pomocí diff porovnán s výstupem z kompilace verze 2.6.19-rc3, budou jediným výstupem varování (nebo chyby), které se objevily či zmizely oproti předchozí verzi. Takové, které se pouze posunuly kvůli změnám v souboru, budou odfiltrovány. Krátký dokumentační soubor přibalený ke kódu nabízí další možnosti použití.

    Někteří vývojáři na tento nástroj nedají dopustit. Jeff Garzik však nebyl zrovna nadšen; v dřívější diskuzi řekl:

    Myslím, že je zároveň smutné a výmluvné, když velké množství kompilačního šumu vytrénovalo vývojáře k imunitě před varováními a/nebo k přípravě čím dál důmyslnějších nástrojů pro vylovení užitečných zpráv ze všeho toho nepořádku.

    Jeff místo toho sestavil samostatný strom jádra, kde je většina zbytečných varování odstraněna. Je to náročná práce - každé varování je nutno prověřit a prokázat, že je nesmyslné, než bude odstraněno. Není cílem tento kód začlenit; jde o vytvoření vývojové platformy, na které jsou vidět důležitá varování. Tato sada změn je součástí -mm od 2.6.18-mm3.

    A ještě další způsob řešení varování typu "možná není inicializována" se objevil v květnu; zavádí speciální makro, které proměnnou "inicializuje", aniž by se ve skutečnosti něco stalo. To umlčí varování bez toho, aby se zvětšila velikost jádra. Makro je určeno k použití pouze v případech, kdy byly cesty kódu zkontrolovány. Tenkrát zazněla námitka, že ačkoliv je současné použití proměnné možná správné, budoucí změny by mohly vytvořit cestu, kde by proměnná byla skutečně použita bez inicializace. Varování by však bylo potlačeno a na chybu by se přišlo až mnohem později. Patch tedy nebyl začleněn.

    Chyby v kompilátoru snad mohou být časem opraveny. Ale vzrůstající zájem o používání automatizovaných nástrojů pro hledání potenciálních chyb zaručuje, že se budou vývojáři muset i nadále potýkat s množstvím planých varování. Pokud by ta automatizovaná varování měla doopravdy vést k opravě chyb - než se někdo spálí - bude nutné najít způsob, jak udržet nízkou úroveň šumu.

    Nadcházející změna API: struct path

    link

    Struktura file, která reprezentuje otevřený soubor, je předávána do většiny operací týkajících se souborových systémů a ovladačů. Obsahuje dvě užitečná pole:

    	struct dentry		*f_dentry;
    	struct vfsmount         *f_vfsmnt;
    

    Josef Šípek si nedávno všiml, že v fs/namei.c je podobně vypadající struktura, která je definována takto:

        struct path {
    	struct vfsmount *mnt;
    	struct dentry *dentry;
        };
    

    Rozhodl se, že struct path si zaslouží větší rozšíření; výsledkem je série patchů přesouvající struct path do <linux/namei.h> a pozměňující struct file, aby používalo struct path místo těch dvou výše uvedených samostatných polí.

    V jádře je samozřejmě nějaký kód, který struct file očekává na původním místě; konkrétně pole f_dentry je často používané. Takže tento přesun představuje změnu interního API, kterou dá práci napravit. Když byla celá sada patchů přidána do 2.6.19-rc3-mm1, Andrew Morton ji proto označil jako 102 patchů, které dělají cosi poněkud zbytečného.

    Tak co za tím vězí? Josef to vysvětlil takto:

    Je to o trochu čistší než mít dva ukazatele. Obecně lze říci, že v jádře je dost uživatelů dvojic dentry-vfsmount, a struct path to pěkně zaobaluje.

    "O trochu čistší" se zdá jako dost slabý důvod pro patch, který manipuluje s tolika soubory a ovlivní i hodně kódu spravovaného mimo jádro. Dostalo se to však až do -mm, což napovídá, že je velká šance na začlenění do 2.6.20. Ať už zbytečné nebo ne, struct path má asi namířeno do jádra.

           

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

    27.11.2006 08:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Překlepy
    Překlep: kolikrát už jsi viděl…
    27.11.2006 22:59 Haaja | skóre: 25 | blog: haaja | Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny - 1. 11. 2006
    Nerekl bych ze ty opravy jsou zbytecne, zprehledneni kodu je podle mne celkem zasadni vec a takovehle krucky k tomu smeruji.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.