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 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

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

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 0
    včera 17:55 | Nová verze

    AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

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

    Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Zajímavý článek

    Bylo vydáno do češtiny přeložené číslo 717 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.

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

    Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.10.38 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 5
    včera 00:22 | Komunita

    Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.

    Ladislav Hagara | Komentářů: 2
    5.5. 22:22 | IT novinky

    Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.

    Ladislav Hagara | Komentářů: 7
    5.5. 00:33 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

    Ladislav Hagara | Komentářů: 0
    4.5. 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (15%)
     (14%)
    Celkem 118 hlasů
     Komentářů: 8, poslední 4.5. 08:25
    Rozcestník

    Jaderné noviny - 6. 9. 2006

    22. 9. 2006 | Robert Krátký | Jaderné noviny | 4138×

    Aktuální verze jádra: 2.6.18-rc6. Citát týdne: Linus Torvalds. Podpora ovladačů v uživatelském prostoru. Ovladače pro paralelní IDE. Označování stránek hosta.

    Aktuální verze jádra: 2.6.18-rc6

    link

    Aktuální předverze je 2.6.18-rc6, vydaná 3. září. Jde patrně o poslední -rc před vydáním 2.6.18. Obsahuje množství oprav; jednou z nich je odstranění značné části kódu SMP alternativ, který u některých kompilátorů způsoboval problémy. Podrobnosti najdete v dlouhém changelogu.

    Od vydání -rc6 se do hlavního git repozitáře dostalo jen několik změn.

    Aktuální verze -mm stromu je 2.6.18-rc5-mm1. Mezi nedávné změny patří vylepšení podpory ne-MMU architektur, několik aktualizací NFS serveru, stálý přísun oprav Reiser4 a sada patchů umožňující kompilaci jádra bez podpory blokových zařízení (i když to ještě moc nefunguje).

    Willy Tarreau vydal 2.4.33.3 s menší sadou důležitých oprav a 2.4.34-pre2 s většími zásahy. Podle současného plánu bude podpora gcc 4.x začleněna do 2.4.34-pre3.

    Další poznámky: několik vývojářů zaznamenalo problémy s posíláním patchů do konferencí hostovaných na vger.kernel.org (server, na kterém běží LKML). Správci konference začali používat bogofilter, protože se chtějí pokusit omezit množství pronikajícího spamu - a také pravděpodobně proto, aby v budoucnu nemuseli věnovat tolik času ručnímu udržování filtrů. Prozatím to vypadá, že bogofilter mnohé zprávy obsahující patche považuje za spam. Na druhou stranu přes filtr bez potíží proplouvá poměrně dost netechnicky zaměřených emailů týkajících se kvalit rodinného života a členů živočišné říše. Dá se jen předpokládat, že trénovací proces tyhle malé problémy nakonec vyřeší.

    Citát týdne: Linus Torvalds

    link

    "Tiedostoa tai hakemistoa ei ole" znamená prostě "Soubor nebo adresář neexistuje. [No such file or directory]".

    To ví přeci KAŽDÝ.

    Nejsou tam ani žádná ä nebo ö, takže to nemůžete svádět na podivná písmena (a to je nezvyklé, protože ve finštině bývá obyčejně každé druhé písmeno 'ä' - i kdyby nemuselo, tak aspoň pro zmatení nepřítele).

    -- Linus Torvalds

    Podpora ovladačů v uživatelském prostoru

    link

    Ovladače zařízení jsou většinou kvůli výkonu a ovládání součástí jádra. Existují však případy, kdy se hodí možnost spustit ovladač v uživatelském prostoru. Patří mezi ně situace, kdy je kód příliš velký na to, aby byl začleněn do jádra (například X.org), nebo když autor nechce kód vydat s GPL. Některé druhy ovladačů (třeba pro USB zařízení) lze v uživatelském prostoru spouštět snadno. S jinými je to trochu náročnější. Například velmi málo PCI ovladačů je použitelných v uživatelském prostoru.

    Thomas Gleixner napsal modul rozhraní, který by situaci mohl změnit. S tímto kódem mohou být PCI ovladače (alespoň některé) napsány téměř celé v uživatelském prostoru, zatímco do jádra bude natažen jen malý kousek modulu.

    Ten modul má dva specifické úkoly. Jednak je to registrace zařízení, které má být ovládáno, pomocí pár bitů důležitých informací. Za tím účelem vyplní strukturu iio_device, která obsahuje následující pole:

    struct iio_device {
        char			*name;
        char			*version;
        unsigned long		physaddr;
        void			*virtaddr;
        unsigned long		size;
        long			irq;
    
        irqreturn_t (*handler)(int irq, void *dev_id, struct pt_regs *regs);
        ssize_t (*event_write)(struct file *filep, const char __user * buf,
        		       size_t count, loff_t *ppos);
        struct file_operations	*fops;
        void			*priv;
        /* ... */
    };
    

    První část struktury poskytuje informace o hardwaru - název, umístění I/O oblasti paměti (physaddr), kam byla oblast namapována do jádra (virtaddr), její velikost a přerušení, které zařízení používá. Je-li virtaddr nula, bude physaddr vykládáno jako začátek rozsahu I/O portů a ne jako adresa paměti.

    Pole fops poskytuje pro zařízení operace se soubory; obyčejně jsou nastaveny na běžné verze poskytované prostřednictvím ovladače IIO (neboli "industrial I/O"): iio_open(), iio_read(), iio_mmap() atd. S takovým nastavením může ovladač vytvořit základní zařízení, které uživatelskému programu umožní číst nebo zapisovat do paměti (nebo portů) zařízení. Do uživatelského prostoru lze namapovat i I/O paměť.

    Co bylo až dosud popsáno, se možnostmi příliš neliší od toho, co jde udělat pomocí /dev/mem; hlavním rozdílem je, že ten modůlek může PCI zařízení oživit a provést veškeré potřebné inicializace. Pravá potíž s psaním PCI ovladačů pro uživatelské prostředí však vězí v přerušeních. Zatím neexistuje způsob, jak napsat uživatelský kód pro zpracovávání přerušení - a IIO patch na tom moc nemění. Místo toho se od mini-ovladače očekává, že to zařídí sám.

    Tento "zpracovávač" [handler] je potřeba proto, že každé zařízení vyžaduje svůj vlastní potvrzovací postup. Jádro musí na přerušení rychle reagovat a věnovat zařízení svou pozornost, aby se přestalo o přerušení hlásit. Pak už může být další zpracovávání relativně beze spěchu. Takže jakmile zpracovávač dodaný s miniovladačem potvrdí přerušení, může být zbytek práce dodělán ovladačem v uživatelském prostoru.

    Je pouze nutné dát tomuto ovladači vědět, že přerušení už proběhlo. Pro tento účel poskytuje IIO dva mechanismy: druhý soubor zařízení přiřazený k danému zařízení; kdykoliv proběhne přerušení, může být z tohoto "zařízení pro události" přečten bajt. Ovladač v uživatelském prostoru tedy může dát blok při čtení z tohoto zařízení nebo použít v komplikovanějších případech poll(). Ovladač v uživatelském prostoru také může při přerušení přijímat signály SIGIO. Ale použití signálů obvykle zvyšuje celkovou dobu reakce na přerušení.

    Aby to tedy bylo všechno možné, poskytuje miniovladač minimalistický zpracovávač přerušení v poli handler() struktury iio_device. Při přerušení zavolá IIO modul tento zpracovávač; když vrátí IRQ_HANDLED, bude to oznámeno uživatelskému prostoru. Pokud miniovladač poskytuje funkci event_write(), bude zavolána jako reakce na operaci zápis na zařízení pro události. Taková schopnost může být využívána k dalšímu ovládání reakcí jádra na přerušení, požadavků na maskování přerušení atd.

    Pokud se vám zdá, že mechanismus událostí se podobá navrhovanému kevent subsystému, máte pravdu. Je pravděpodobné, že IIO kód pro zpracovávání události bude přepsán tak, aby používal kevents (až bude v hlavním jádře).

    I bez toho však už teď ovladač IIO funguje. Thomas poslal ukázkový ovladač (nebo spíš části), aby předvedl, jak lze mechanismus využít. Hlavní otázka se však zjevně týká toho, jestli by IIO mohly využívat ATI a nVIDIA, aby své ovladače odstranily z jádra. Na to však mohou odpovědět jen ty firmy - takže než se vyjádří, nebudeme vědět nic.

    Ovladače pro paralelní IDE

    link

    V roce 2003 Jeff Garzik oznámil "nový SCSI ovladač". Ve skutečnosti šlo o subsystém libata, který byl základem linuxové podpory SATA. Při té příležitosti Jeff uvažoval i o podpoře PATA jednotek, i když to nebyl tak docela záměr:

    PATA je v tom ovladači jen jako dodatečný nápad. Hlavní zaměření je teď i v budoucnu SATA.

    V posledních třech letech byly paralelní ATA disky, které jsou většinou používány, ovládány starým subsystémem IDE. Některé části toho kódu pamatují úplné začátky Linuxu. Od těch dob byl tento subsystém spravován dlouhým seznamem lidí, přičemž o mnohých se soudí, že je ta zkušenost dohnala k šílenství. Aktuální správce Bartlomiej Zolnierkiewicz se už nějaký čas drží při zemi; pro jádro 2.6.17 ani 2.6.18 nepodepsal žádné patche. Na IDE frontě klid.

    To však neznamená, že by byl klid v oblasti paralelního ATA. V průběhu minulého roku pracoval Alan Cox na doplnění plné podpory PATA do kódu libata. Výsledné ovladače už nějakou dobu seděly v -mm, ale to už je u konce. Sada ovladačů byla zařazena do seznamu věcí k začlenění do 2.6.19.

    Inzerované výhody nového PATA kódu jsou mnohé. Byl zcela přepracován a odpovídá teď úrovni aktuálního jádra. Použití libata znamená, že jsou ovladače dobře integrovány se SATA bratříčky, což opět sbližuje dva roztržené subsystémy. Nové ovladače podporují několik čipsetů, které IDE vrstva nezvládá. Bylo velmi vylepšeno zpracování chyb. A také se podle Alanova srpnového oznámení mohou pochlubit "aktivní správou a aktualizacemi" a "dalšími zajímavými chybami, které čekají na objevení a opravení".

    Na druhou stranu však ještě nejsou považovány za připravené pro produkční nasazení a neočekává se, že by je distributoři v blízké budoucnosti zapínali. Začlenění do 2.6.19 je především cíleno na rozšíření okruhu testerů. Úplně nový diskový subsystém patří k věcem, které je lepší pečlivě otestovat, než jim svěříte data, která budete chtít také zpět. Testování může tedy ještě chvíli trvat. Stojí také za zmínku, že nový PATA kód odstraňuje podporu některých starodávných IDE řadičů.

    Co však zajímá každého, to je skutečnost, že stejně jako všechny disky, o které se stará libata, i PATA jednotky se tváří jako SCSI disky a jsou tedy pojmenovány /dev/sd*. Kdyby někdo přepnul na nový ovladač bez aktualizace /etc/fstab (nebo nepoužil funkci "připojit-podle-označení"), čekalo by ho při bootu nepříjemné překvapení. Jde o problém, který je snadné vyřešit, ale některým lidem přesto vadí používání SCSI názvů. Ve skutečnosti se spíše děje to, že se Linux posouvá k obecnému diskovému subsystému, ve kterém je vše nazýváno prostě /dev/diskN. Zbývá už jen pár drobností a nová sada udev pravidel k přejmenování souborů zařízení.

    Jednoho dne bude nový PATA kód používat většina z nás. Ale není to proces, který by proběhl rychle. Zatím také nejsou žádné plány na odstranění stávajícího IDE kódu:

    V tuto chvíli by bylo předčasné rozebírat nebo plánovat, kdy bude stará IDE vrstva odstraněna. O tom se můžeme začít bavit v okamžiku, kdy budou všichni souhlasit s tím, že nová libata vrstva poskytuje lepší kvalitu a podporu než ta stará. A ani pak nebude důvod ke spěchu.

    Takže to vypadá, že Linux bude mít nějakou dobu paralelní subsystémy pro paralelní ATA.

    Označování stránek hosta

    link

    Paravirtualizované systémy jsou ze svého pohledu samostatnými operačními systémy - v rámci možností vypadají jako nezávislé systémy. Ve skutečnosti však paravirtualizovaný systém běží v rámci hostitele a musí s tímto hostitelem spolupracovat. Nedávná sada patchů (pojmenovaná "označování stránek hosta [guest page hinting]") ukazuje, že provozování paravirtualizovaných systémů úplně nezávisle může mít špatný vliv na výkon - a také to, jaké triky mohou vést k efektivnějšímu provozu.

    Představte si například aplikaci, která na hostovaném systému běží jen krátce. Taková aplikace může znečistit množství stránek a pak se ukončit, když je její práce odvedena. Hostovaný systém ví, že už ty nečisté stránky nejsou využívány, a je možné je recyklovat. Z pohledu hostitele je však známo pouze to, že jde o nečisté stránky. Takže bude-li hostitel tyto stránky potřebovat, poctivě jejich (zbytečná) data nejprve zapíše do swapu. To je plýtvání a bylo by fajn mu zabránit.

    Označovací [hinting] patche přidávají dvě nízkoúrovňová primitiva, která mohou hostované systémy využít: set_page_unused() a set_page_stable(). První označuje stránku jako nepotřebnou pro hostovaný systém, druhé stránku označuje jako aktivně používanou. Architektura s/390 (na kterou se tento patch v současné době zaměřuje především) může tyto stavy implementovat prostřednictvím dvojice parametrů stránek, které dokáže nastavit hostovaný systém, takže je pak operace rychlá. Jakmile jsou stránky označeny jako nepoužívané, hostitelský systém je může znovu využít bez dalších omezení, což celý subsystém virtuální paměti činí mnohem efektivnějším.

    Dalším krokem jsou stránky keše stránek. Tyto stránky obsahují data ze souboru, který se nachází na nějakém úložném médiu, což znamená, že mohou být v případě potřeby obnovena ze zdroje. A to znamená, že by je hostitel mohl při nedostatku paměti zlikvidovat. Ale opět je tu problém, že hostitel o keších stránek hosta nic neví. Takže označovací patche přidávají další stav, který se nazývá "volatile" [nestálý], aby označoval stránky s uloženou zálohou. Když hostitel potřebuje paměť, může nestálé stránky zrušit, aniž by ukládal jejich obsah. Musí si však dát pozor, aby o tom věděl hostovaný systém, aby mohla být stránka odstraněna z hostovy keše stránek. V aktuální verzi funguje toto upozorňování pouze na strojích s/390.

    Stránky, které byly do paměti uzamčeny, představují speciální problém - mohou být částí keše stránek, ale přesto by hostitelským systémem neměly být odstraněny. Takové stránky tedy nejde označit jaké nestálé. Potíž je v tom, že zjišťování, jestli je stránka uzamčena, je těžší, než by se mohlo zdát; může to znamenat prohlížení seznamu struktur oblastí virtuální paměti (VMA), což je pomalé. Označovací patche tedy přidávají nový parametr ke struktuře address_space, který značí, že někdo uzamkl stránky v daném adresním prostoru paměti. Je-li parametr nastaven, nebudou takové stránky označeny jako nestálé.

    Swapovací keš z této práce také hodně těží - jak jednou hostovaný systém zapíše stránku do swapu, má taková stránka dobrou zálohu a může si ji odchytit hostitelský systém. Přístup se podobá způsobu využitému u keší stránek, i když je tu několik detailů navíc, o které je nutno se postarat. Například si hostovaný systém musí pohlídat, aby byla stránka označena jako stabilní (a vypořádat se s tím, že by ji hostitel mohl vyhodit), než se ve swapu uvolní příslušná položka.

    Pozorný čtenář si možná povšiml, že jsou tyto patche velmi zaměřeny na architekturu s/390. IBM se samozřejmě virtualizací zabývá už dlouho, takže není překvapivé, když některé poměrně pokročilé virtualizační patche přicházejí od nich, nebo že jsou architektury od IBM navržené s virtualizací na paměti. Jiné paravirtualizační projekty však narazí na mnoho podobných problémů a mohou mít z této práce prospěch. Dalším krokem pro tuto sadu patchů je tedy posouzení ostatními projekty a případné předělání označovacích funkcí, aby byly obecněji použitelné.

           

    Hodnocení: 97 %

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

    22.9.2006 10:06 Jan Marek | skóre: 16
    Rozbalit Rozbalit vše Re: Jaderné noviny - 6. 9. 2006

    Zdravim,

    A také se podle Alanova srpnového oznámení mohou pochlubit "aktivní správou a aktualizacemi" a "dalšími zajímavými chybami, které čekají na objevení a opravení".

    tak tahle veta me opravdu pobavila: mam tedy povazovat aktivni spravu a aktualizace za zajimavou chybu, ktera ceka na odstraneni? :-)

    Zdravi
    Honza Marek

    22.9.2006 18:01 Jiri
    Rozbalit Rozbalit vše Re: Jaderné noviny - 6. 9. 2006
    Takovy nezaludny citat, a kolik nadela starosti...
    2.10.2006 12:03 Mak
    Rozbalit Rozbalit vše Re: Jaderné noviny - 6. 9. 2006
    Zda se, ze vyvojari jadra Linuxu udelaji uplne cokoliv, jen aby pomohli proprietarnim resenim. :(
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.