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í
×
    dnes 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
    dnes 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
    dnes 11:44 | IT novinky

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

    Ladislav Hagara | Komentářů: 0
    dnes 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
    včera 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ářů: 8
    včera 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
    včera 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
    včera 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
    včera 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
    včera 02:22 | Nová verze

    Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Jaderné noviny - 4. 10. 2006

    23. 10. 2006 | Robert Krátký | Jaderné noviny | 3838×

    Aktuální verze jádra: 2.6.18. Citáty týdne: Alan Cox, Linus Torvalds, Andrew Morton. Další věci pro 2.6.19. Změny API: zpracovávače přerušení a vektorované I/O. Poslední Wireless Extensions? Prezentace a fotografie ze setkání Kernel Netconf 2006. Uspání a probuzení. Kvůli varováním utíkají chyby.

    Aktuální verze jádra: 2.6.18

    link

    Aktuální verze jádra 2.6 je i nadále 2.6.18; do hlavního repozitáře stále proudí patche pro připravovanou verzi 2.6.19-rc1.

    Aktuální verze -mm stromu je 2.6.18-mm3. Mezi nedávné změny patří patch, který odstraňuje spoustu zbytečných varování kompilátoru, podpora swapového souboru pro softwarové uspání a subsystém kevent.

    Aktuální předverze řady 2.4 je 2.4.34-pre4, vydaná 2. října. Tentokrát bylo začleněno jen několik oprav; vypadá to, že se blíží finální stabilizační fáze 2.4.34.

    Citáty týdne: Alan Cox, Linus Torvalds, Andrew Morton

    link

    Vyhrazuji si právo se jednou pokusit žalovat lidi, kteří můj kód cpou do Tivo. Třeba prohraju, ale toho práva se nevzdávám.

    -- Alan Cox

    Mexičani mají chupacabru, my máme Al Vira. Když ho zaslechnete řvát, _modlete se_, že se chystá rozcupovat kód někoho jiného. Utíkat nemá cenu.

    -- Linus Torvalds

    Vypadá to, že celé tohle jaderné snažení je nekonečné spiknutí proti chudince mému malému Vaio.

    -- Andrew Morton

    Další věci pro 2.6.19

    link

    Příval patchů do hlavního repozitáře pokračuje vysokým tempem; od shrnutí z minulého týdne bylo začleněno dalších několik tisíc patchů. Následuje seznam toho nejdůležitějšího - nejprve uživatelské věci:

    • Konečně byl začleněn clusterový souborový systém GFS2; obsahuje svou vlastní implementaci distribuovaného správce zámků.
    • Nové ovladače: USB porty MCS7840 USB. USB řadiče ELAN U132, USB-na-PCMCIA adaptéry ELAN Uxxx, vibrační zařízení Playstation 2 "Trance", Super-I/O čip VIA VT1211, monitory teploty procesoru AMD K8, tunery Philips TDA10086 a TDA826x, USB mosty DiBcom založené na DiB0700, tunery Hauppauge Nova-T 500, adaptéry TI Flash Media PCI74xx a PCI76xx, komunikační koprocesory QUICC Engine a HP Quicksilver AGP GART.
    • Byl vylepšen kód NFS serveru, včetně možnosti provádět I/O přes TCP spojení v mnohem větších blocích.
    • Začleněn šifrovací souborový systém eCryptfs.
    • IPSec kód získal podporu režimu Bound End-to-End Tunnel (BEET).
    • Ovladač USB hračiček [gadgets], který připojí gadget rozhraní k ALSA MIDI subsystému. Účelem je umožnit systému vystupovat jako MIDI streamovací zařízení připojené k USB.
    • Souborový systém tmpfs nyní může používat POSIXové ACL.
    • Je-li do /proc/sys/kernel/core_pattern zapsán řetězec |program, budou všechny výpisy posílány přes rouru programu, místo aby byly zapisovány na disk.
    • Byly začleněny některé z prvních kontejnerových patchů, včetně samostatných jmenných prostorů pro utsname informace a objekty SYSV IPC.
    • Byl odstraněn bezpečnostní modul BSD secure level.
    • Subsystém "floppy tape" byl označen pro vyřazení v 2.6.20; nikdo ho nespravuje, nemá pravděpodobně žádné aktivní uživatele a jeho ukládací kapacita 1,6 GB je v současné době už trochu kuriózní. Pokud na tomto médiu někdo opravdu měl důležitá data, měl je už překopírovat na něco novějšího.

    Změny viditelné pro vývojáře jádra:

    • Bylo začleněno SRCU - verze read-copy-update, která umožňuje blokování na straně čtení.
    • Mnohem lepší podpora uspávání a probouzení pro USB vrstvu.
    • Byla přidána nová sada funkcí, které USB ovladačům umožňují rychle zjistit směr a režim přenosu koncového bodu.
    • Poněkud okleštěná verze Wireless Extensions 21. Většina původních funkcí byla odstraněna, přičemž se spoléhá na to, že budou WE brzy nahrazena něčím jiným.
    • Velké množství anotací, které utilitě sparse umožňují odhalovat big/little endian chyby.
    • Několik Video4Linux ovladačů bylo převedeno na V4L2 API.
    • Pole flags v struct request bylo rozděleno na dvě nová pole: cmd_type a cmd_flags. První obsahuje hodnotu, která popisuje typ požadavku (požadavek souborového systému, správa napájení atd.), kdežto v druhém jsou parametry, které upravují způsob, jak příkaz funguje (čtení/zápis, bariéry atd.).
    • Vrstva blokových zařízení může být při konfiguraci jádra úplně vypnuta; může se hodit u některých embedded zařízení.
    • Jádro teď má obecný boolean typ nazývaný bool; nahrazuje několik podomácku spíchnutých boolean typů z různých částí jádra.
    • Nová funkce pro alokaci kopie bloku paměti:

          void *kmemdup(const void *src, size_t len, gfp_t gfp);
      

      Na mnoha mistech byly sekvence alokuj-pak-kopíruj upraveny tak, aby používaly kmemdup().

    • Byl začleněn patch s infrastrukturou pro sledování latence.
    • Byly odstraněny metody readv() a writev() ze struktury file_operations; nahradily je aio_readv() a aio_writev() (jejichž prototypy byly změněny). Vizte dále.

    V tuto chvíli je ještě možné začleňovat další patche, takže se do 2.6.19 mohou dostat další významné změny.

    Změny API: zpracovávače přerušení a vektorované I/O

    link

    Za normálních okolností by vydání 2.6.19-rc1 signalizovalo zpomalení vývoje a hledání chyb. Tentokrát to však bude možná vypadat jinak, protože mezi -rc1 a -rc2 dojde pravděpodobně k začlenění velké (změněno téměř 1100 souborů) změny API. Důvody jsou následující: patch, který zasáhne tolik souborů, se zcela jistě srazí i mnoha změnami, které teď proudí do hlavního stromu. Pozdržení patche do doby, až současný příliv utichne, by mělo všem zjednodušit práci.

    Takže o co jde? Zpracovávače přerušení v současné době vypadají takto:

       irqreturn_t handler(int irq, void *data, struct pt_regs *regs);
    

    Struktura regs obsahuje stav registrů procesoru v okamžiku přerušení. Tento stav je předáván každému zpracovávači přerušení, ale skoro nikdy se nepoužívá; z pohledu většiny zpracovávačů přerušení je stav registrů před přerušením jen hrstkou náhodných bitů. Předávání ukazatele však má podle Davida Howellse svou režii:

    Ukazatel registrů se používá jen na několika místech, ale jeho předávání nás může stát jak místo ve stacku, tak nadbytečný kód. Na architektuře FRV má odstranění parametru regs ze všech genirq funkcí za následek zrychlení o 20 procent (tj. od konce timer_interrupt() do konce do_IRQ()).

    David tedy sestavil patch, který ze zpracovávačů přerušení parametr regs odstraňuje. Pokud nějaký kód registry skutečně potřebuje - zjevně jde pouze o zpracovávač přerušení časovače - může ukazatel získat zavoláním nové funkce get_irq_regs(). A protože tento krok vyžaduje opravu každého zpracovávače přerušení v systému - a těch je v hlavním jádře hodně - jde o velký patch, který mění hodně souborů.

    Patch se právě objevil, takže podle normálních pravidel by už bylo trochu pozdě pro začlenění do 2.6.19. Během této verze by tedy seděl v -mm a do jádra by šel v 2.6.20. Ale Andrew Morton k tomu řekl:

    Myslím, že je to dobrá změna. Ale nechce se mi takového bumbrlíčka spravovat dva měsíce mimo strom! Pokud to chceme, měli bychom to tam prostě vrazit a zatnout zuby.

    Nikdo proti této změně zjevně neprotestuje, i když Linus vzpomenul krutý úděl lidí, kteří spravují ovladače mimo hlavní jádro. Všechno ukazuje na brzké začlenění, které bude možná doprovázet speciální definovaný symbol, aby mohli správci nezačleněného kódu napsat kód, který by fungoval s oběma prototypy.

    Odjinud: Strukturu file_operations lze nalézt v útrobách snad každého subsystému, který provádí I/O. Zatímco ovladače znakových zařízení vytvářejí struktury file_operations přímo, většina ostatních částí systému (souborové systémy, síťové protokoly a ovladače, ovladače blokových zařízení) je schovává na vyšší úrovni. Dva ze členů struktury jsou:

        ssize_t (*aio_read) (struct kiocb *iocb, char __user *buf, 
                             size_t len, loff_t pos);
        ssize_t (*aio_write) (struct kiocb *iocb, const char __user *buf, 
                              size_t len, loff_t pos);
    

    Tyto metody implementují asynchronní čtení a zápisy - operace, které mohou být dokončeny po té, co se původní volání vrátí do uživatelského prostředí. Dlouhodobě známým nedostatkem implementace asynchronního I/O v Linuxu je absence vektorovaných operací; každé AIO volání může pracovat jen s jediným bufferem. Jádro 2.6.19 tento nedostatek smaže za cenu změny dvou výšeuvedených prototypů:

        ssize_t (*aio_read) (struct kiocb *iocb, const struct iovec *iov, 
                 unsigned long niov, loff_t pos);
        ssize_t (*aio_write) (struct kiocb *iocb, const struct iovec *iov, 
                 unsigned long niov, loff_t pos);
    

    Jediný buffer byl nahrazen polem struktur iovec:

        struct iovec
        {
    	void __user *iov_base;
    	__kernel_size_t iov_len;
        };
    

    Jednobufferová volání jsou teď obalena jedinou strukturou iovec a předána novým, vektorizovaným verzím AIO operací. Všechen kód, který poskytuje aio_read() a aio_write(), bude muset být aktualizován s ohledem na nové API - a na možnost, že se po něm možná bude chtít provádění vektorovaných operací.

    Změny jdou však ještě dál, protože byly odstraněny file_operations metody readv() a writev(). Příslušná systémová volání jsou teď implementována voláním aio_read() a aio_write(). Převedení starých metod readv() a writev() není příliš obtížné, protože není nutné, aby byly aio_read() a aio_write() asynchronní (vlastně jim bude v tomto případě předáno "synchronní KIOCB", což značí, že je operaci nutné provést synchronně). Ve většině případů jde prostě o přebrání nového prototypu a v případě potřeby také nalezení ukazatele struct file v iocb->ki_filp.

    (Vizte článek z minulého února, kde jsou o této změně podrobnější informace.)

    Poslední Wireless Extensions?

    link

    "Wireless extensions" [rozšíření pro bezdrátové sítě] je API založené na ioctl(), které uživatelskému prostoru umožňuje ovládat parametry specifické pro bezdrátová síťová rozhraní - ESSID, šifrovací hesla, kanály atd. API dlouho spravoval Jean Tourrilhes; posledních několik verzí jádra mělo verzi 20. V tuto chvíli už byla do pre-2.6.19 začleněna verze 21, ale přinejmenším některé části možná zase půjdou pryč.

    Potíž je v tom, že verze 21 obsahuje tak velké změny, že by s ní již starší verze nástrojů nefungovaly. Konkrétně jde o způsob formátování ESSID předávaného jádru. Konfigurace, které se mohly k určité síti připojit s verzí 20, to už s verzí 21 nezvládnou. Je možné to obejít přidáním mezery do řetězce ESSID, ale o tom nebude většina uživatelů vědět, a i kdyby, tak na to přijdou až po upgradu jádra, když zjistí, že už se nemohou připojit k síti.

    Od chvíle, kdy se o tomto problému začalo mluvit, dali mnozí vývojáři (včetně (Linuse) najevo, že je taková změna API nepřijatelná. Pro změnu samozřejmě existují pádné důvody - způsob, jakým se s těmito řetězci v protokolech zachází, se během času změnil. Ale správným řešením by bylo přidat novou ioctl(), která by se o nový formát řetězce postarala; starší verze by byla podporována navždy. Kdyby to bylo provedeno takto, změna formátu by nevadila.

    To se zdá jako dobré řešení, ale má to malý háček. Jean už tento problém patrně delší dobu předvídal. Aby minimalizoval škody, vydával už asi půl roku Wireless Tools [nástroje], které formátu verze 21 rozumí. Dost distribucí už také tyto nástroje přebralo a zařadilo mezi své balíčky; jde například o Slackware 11 a Mandriva 2007. Pokud tyto nástroje přijdou do styku s Wireless Extensions verze vyšší než 20, budou očekávat nový formát ESSID; kdyby tedy byly změny ve verzi 21 odstraněny, přestanou tyto nástroje fungovat.

    Takže Wireless Extensions 21 způsobí na nějakých systémech problémy bez ohledu na to, jestli bude změna formátování ESSID ponechána nebo ne. Jediným způsobem, jak v tuto chvíli předejít chybám na nasazených systémech, je podržet Wireless Extensions na verzi 20. Bezdrátová rozšíření už asi nebudou dále rozšiřována.

    Pokud to dopadne takhle, bude to krátkodobě znamenat určité nepříjemnosti, protože se do API nebudou moci dostat potřebná vylepšení. Dlouhodobě je však stejně v plánu Wireless Extensions nahradit; proto je vyvíjeno nové netlink API nazývané nl80211. Toto API je však úzce svázáno se stackem Devicescape 802.11, kterému však cesta k stavu vhodnému pro začlenění trvá o dost déle, než se očekávalo. Linuxové bezdrátové API tak možná bude nějakou dobu na mrtvém bodě.

    Prezentace a fotografie ze setkání Kernel Netconf 2006

    link

    David Miller vystavil prezentace a fotky z konference linuxových vývojářů síťování. Pokud vás zajímají hardcore podrobnosti, najdete jich tam spoustu.


    Následující obsah je © KernelTrap

    Uspání a probuzení

    link

    28. zář, originál

    Nedávná diskuze na LKML se věnovala aktuálnímu stavu uspávání a probouzení [suspend a resume] v linuxovém jádru. Nigel Cunningham reagoval na patch pro uswsusp: Pánové! Proč nechcete pochopit, že všechny tyhle pokusy o uswsusp jsou čiré bláznoství? A pokračoval zopakováním svého přesvědčení, že důležité otázky uspávání mají být řešeny v jádře, a přesun do uživatelského prostoru ničemu nepomůže. Andrew Morton se připojil: Navrhuji trápit mozkové závity prací na tom, aby byla současná implementace uspávání hezky funkční, stabilní a rychlá. V tuto chvíli se kód suspend-to-disk dlouze zabývá podivnými-ale-asi-zbytečnými věcmi, místo aby zapisoval paměť na disk. Nemám tušení, co to všechen ten čas dělá, ale vsadil bych se, že to nikomu není moc k užitku ;-)

    Dále se diskutovalo o tom, proč je tedy uspávání tak pomalé, a jak vyřešit základní problémy, které brání spolehlivému a stabilnímu fungování. Nigel hlásil: Jedním z největších problémů, se kterými se pravidelně potýkám, jsou chyby ovladačů. Ačkoliv základní kód funguje, mnoho ovladačů pořád není schopných se nechat úspěšně uspat a probudit. Vývojáři se shodli, že tyto chyby by měly být sledovány prostřednictvím bugzilly a někdo by se jimi měl zabývat. Andrew Morton odpověděl: Vím o tom... brzy se mi snad podaří tomu věnovat více času. Prozatím se prosím postarejte o to, aby ty problémy byly v bugzille - důležité je vědět, kdo je nahlásil.

    Kvůli varováním utíkají chyby

    link

    3. říj, originál

    Jeff Garzik podotkl, že novější verze GCC jsou víc a víc upovídané: Množství varování při kompilaci jádra v poslední době stouplo natolik, že se v nich ztrácejí chyby a i jinak znepříjemňují život. Založil nový strom "gccbug", ve kterém začal utišovat falešná varování (po ověření, že jsou skutečně falešná). Audit už odhalil několik menších chyb, což podporuje moje tvrzení, že přílišné množství varování ukrývá chyby. Danial Walker připomněl dřívější zprávu o vytvoření makra, které se o plané poplachy stará, a shrnul tehdejší diskuzi: Nejde o to, že by se kódu po utišení varování nedostalo řádné kontroly. Ale budoucí změny by mohly způsobit problémy, které by byly také skryty. Nemyslím si však, že by to byl velký nedostatek, zvláště když je možné při konfiguraci makro vypnout.

    Andrew Mortonovi se makro líbilo: Je pravda, že ta falešná varování jsou spíše na škodu, a opravdové problémy mohou být přehlédnuty. Takže má určitě cenu se pokoušet nalézt způsob, jak vývojářům a testerům ukázat ta skutečně důležitá varování. Nevýhodou je, že to trochu zaneřádí kód a vznikne menší riziko skrytí pravých "use-uninitialised" chyb. Ale myslím, že přednosti převažují nad nedostatky.

           

    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.