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í
×
dnes 10:55 | Nová verze

OpenOrienteering Mapper je svobodný program pro vytváření map pro orientační běh. Vydána byla nová stabilní verze 0.9.0. Přehled novinek v oficiálním oznámení.

Ladislav Hagara | Komentářů: 0
dnes 09:11 | Zajímavý projekt

Mozilla.cz informuje, že Mozilla spolupracuje na projektu offline překladače Bergamot. Jedná se o výzkumný projekt spolufinancovaný Evropskou unií. Na výzkumu se podílí také Univerzita Karlova. Videoukázka integrace Bergamotu do Firefoxu na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Komunita

Nadace GNOME informuje o pokračování soudního sporu Rothschild Patent Imaging vs. GNOME Foundation ohledně údajného porušování patentu US 9,936,086 B2 ve správci fotografií Shotwell. Společnost Rothschild Patent Imaging nabídla nadaci GNOME za pětimístnou částku žalobu zrušit a poskytnout licenci k použití patentu. Dle nadace by bylo snadné částku zaplatit a dál to neřešit. Proti patentovým trollům je ale třeba bojovat. Soudní spor bude pokračovat. Nadaci GNOME lze finančně podpořit na stránce GNOME Patent Troll Defense Fund.

Ladislav Hagara | Komentářů: 15
dnes 00:22 | Nová verze

Google Chrome 78 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 78.0.3904.70 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 37 bezpečnostních chyb. Za nalezení dvou nejvážnější bylo vyplaceno 35 tisíc dolarů.

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

Byla vydána nová major verze 4.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Jedná se o první verzi postavenou na Debianu 10 s kódovým názvem Buster. Přehled změn v příslušném seznamu. Z novinek lze zdůraznit nahrazení správce hesel KeePassX aktivně vyvíjeným KeePassXC, Tor Browser 9.0 nebo MAT 0.8.0. Opravena byla také řada bezpečnostních chyb.

Ladislav Hagara | Komentářů: 0
včera 08:00 | Komunita

Dnes a zítra proběhne v Nokia Bell Labs oslava padesátin Unixu. Dnešní panelovou diskusi bude možné sledovat živě od 14:45 na YouTube.

Ladislav Hagara | Komentářů: 9
včera 07:00 | Nová verze

Dnes vyjde Mozilla Firefox 70.0. Přehled novinek v poznámkách k vydání a na stránce věnované vývojářům. Zdůraznit lze odstranění informace o EV certifikátu z adresního řádku, nového správce hesel Firefox Lockwise nebo také nové logo.

Ladislav Hagara | Komentářů: 19
21.10. 18:11 | Komunita

Project Trident je desktopový operační systém aktuálně postavený na TrueOS, což je operační systém vycházející z FreeBSD, s grafickým prostředím Lumina. Vývojáři Tridentu oznámili, že přechází z TrueOS na Void Linux. Výhody ale i nevýhody přechodu v oficiálním oznámení.

Ladislav Hagara | Komentářů: 0
20.10. 13:22 | IT novinky

Samsung oznámil, že program Linux on DeX končí. Android 10 už nebude podporován. Linux on DeX umožňuje spouštět linuxový desktop a aplikace z vybraných telefonů od Samsungu připojených pomocí Samsung DeX.

Ladislav Hagara | Komentářů: 41
20.10. 12:00 | Komunita

Ubuntu slaví 15 let od vydání první verze. Přesně před patnácti lety, 20. října 2004, byla vydána první verze 4.10 s kódovým názvem Warty Warthog.

Ladislav Hagara | Komentářů: 5
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
 (20%)
 (4%)
 (11%)
 (39%)
 (24%)
 (2%)
Celkem 457 hlasů
 Komentářů: 25, poslední dnes 09:04
Rozcestník

www.AutoDoc.Cz

Jaderné noviny - 27. 2. 2008

7. 5. 2008 | Lukáš Helebrandt | Jaderné noviny | 2572×

Aktuální verze jádra: 2.6.25-rc3. Citát týdne: Jörn Engel. Časné začleňování ovladačů. Sledování memory-mapped I/O operací.

Obsah

Aktuální verze jádra: 2.6.25-rc3

link

Aktuální vývojová verze jádra (27. 2. 2008) je 2.6.25-rc3, vydaná 24. února. Změny tvoří opět většinou opravy, ale objevil se třeba nový parametr modulu libata.force, ovladač pro hardwarové monitorovací čipy ADT7473 a pro SAS/SATA řadiče Marvell 88SE6440, nový stav power managementu PM_EVENT_HIBERNATE {a new PM_EVENT_HIBERNATE power management state} a podpora kvalifikací souborů [file capabilities] pro bezpečnostní modul SMACK. Detaily hledejte v krátkém nebo dlouhém changelogu.

Od vydání -rc3 se do hlavního git repozitáře pomalu trousily opravy chyb.

Aktuální stabilní jádro je 2.6.24.3, vydané 25. února s pěknou dávkou oprav. Stejného dne vyšly s menším množstvím oprav také aktualizace stabilních jader 2.6.23.17 a 2.6.22.19; jsou to pravděpodobně poslední aktualizace řad 2.6.22 a 2.6.23.

Starší jádra: 24. února bylo vydáno 2.4.36.2; opravuje bug zavedený v 2.4.36.1 a jeden poměrně obskurní bezpečnostní problém.

Citát týdne: Jörn Engel

link

Strojově generovaná varování jsou skvělým způsobem, jak v jinak nepřeberném množsví kódu najít podezřelé věci. Ani moc nezáleží na tom, jaká varování hledáte; téměř všechny kontrolery kódu {code checkers} najdou ta stejná ožehavá místa.

Je v tom ale malý háček. Pokud použijete příliš horlivou varovací politiku, která "opraví všechny ty warningy", varování sice mohou zmizet, ale opravdové problémy ne. Radši ani nezmiňuji nové problémy zavedené těmito takzvanými "opravami". [...]

Nezapomeňte na jeden děsivý děsivý důsledek: kontrolery kódu v nesprávných rukou aktivně škodí.

-- Jörn Engel

Časné začleňování ovladačů

link

Ovladače mají tendenci žít ve svém vlastním světě, ve kterém se chyby často týkají jen velmi malé skupiny uživatelů jádra. Bohužel každý, kdo je chce testovat nebo pomoct pročistit v době, než jsou začleněny, si užije svoje. Aby pomohl tyto bariéry zredukovat, začal Linus Torvalds spolu s dalšími obhajovat časné začleňování ovladačů s tím, že jejich další vylepšování bude probíhat přímo v jádře.

Politiku včasného začleňování ale nevítají úplně všichni, přičemž jako příklad byl uveden nedávný ethernetový ovladač vzdáleného DMA (RDMA), který sídlí ve stromu infiniband. Na základě problémů, které v ovladači objevil, se Adrian Bunk zeptal: To opravdu chceme začleňovat ovladače bez _jakékoli_ kontroly? To byla patrně příliš dramatická otázka, jelikož ten ovladač podstoupil kontrolu, ale ne všechny změny se odrazily ve verzi, která je v hlavním jádře. Je na něm ještě spousta práce, zdůrazňuje maintainer Infiniband stromu Roland Dreier:

Jen aby bylo jasno, ten ovladač byl zkontrolován. Bylo nalezeno mnoho problémů; mnohé z nich byly opraveny a na dalších se pracuje.

Je věcí názoru, kdy by se měly věci začleňovat, ale v tomto případě, kdy výrobce dobře spolupracoval, jsem v jeho odložení neviděl žádné výhody.

Tento názor zastávají i další vývojáři jádra; pokud je po ruce vývojář, který reaguje na zpětnou vazbu a má funkční ovladač, je jednoznačným přínosem dostat jej do hlavního jádra, kde jej může podrobněji zkontrolovat mnohem více očí. Linus by tento postup v zájmu rozšíření spolupráce uvítal:

Opravdu bych ty ovladače raději přijal, protože i *další* lidi pak mohou posílat patche!

Jde o to, co začlenění opravdu znamená - lidé na tom mohou rozumně společně pracovat. Před začleněním je to mnohem těžší, takže pokud to s tím ovladačem někdo nemyslí opravdu vážně, provádí se údržba jen velmi zřídka.

Další správci popsali svá kritéria pro přijetí ovladačů nedosahujících obvyklé kvality. Shodli se na tom, že přijatelné jsou ty, které:

  • se zkompilují a vypadají funkčně
  • neobsahují žádné očividné bezpečnostní díry
  • mají aktivního správce
  • ovlivní pouze lidi, kteří mají daný hardware
  • nezavádí žádná nepotřebná nebo nedomyšlená rozhraní v uživatelském prostoru

Na straně nevýhod je toho jen málo. Protože jsou ovladače samostatné, nezpůsobují obvykle problémy na jiných místech v jádře. Za předpokladu, že si lidé, kteří kód kontrolují, pohlídají možné bezpečnostní problémy, které by mohly vést ke kompromitaci stroje nic netušícího uživatele, neexistuje moc způsobů, jak by mohly negativně ovlivnit jádro jako celek. Rozhraní v uživatelském prostoru, která používají ioctl(), sysfs nebo další prostředky musí být také pořádně zkontrolována, jelikož jsou spravována jako část rozhraní jádra.

Mezitím se objevila spousta stížností na checkpatch - skript v perlu upozorňující na různé stylistické problémy v patchích. Je pozoruhodné, že výše uvedený seznam vůbec neobsahuje požadavek na vyřešení chyb či varování, na které checkpatch upozorňuje. Důvodem většiny stížností proti němu je kontrola délky řádku, kterou provádí; výsledné "opravy" kódu často nejsou nejlepší. Zatímco se všeobecně souhlasí s tím, že dlouhé řádky mají za následek špatně čitelný kód, posouzení, co je už příliš dlouhé, záleží většinou na estetickém cítění. Otrocké lpění na fixním počtu znaků na řádek z důvodu utišení checkpatche je zjevně vnímáno jako problém.

Pro některé je kvůli tomu checkpatch téměř zbytečný, někdy jeho výsledky hraničí s ohrožením čitelnosti kódu. Linus prohlásil, že už několikrát zvažoval jeho odstranění z hlavního stromu jádra. Pro opravu chyb hlášených checkpatchem je potřeba lidského faktoru, a právě toho se občas nedostává. Na druhou stranu, Ingo Molnár tento nástroj vehementně brání:

Díky zkušenostem z první ruky se můj názor na checkpatch radikálně změnil: teď věřím, že pro dlouhodobě kvalitní vývoj jádra je téměř stejně důležitý jako BitKeeper/Git. Kdybych jej měl přestat používat, byl by to pro mě stejně špatný krok zpět, jako kdybychom měli migrovat správu kódu jádra na CVS.

Ingo pokračoval popisem plusů a mínusů, z nichž všechny jsou v prudkém kontrastu s jeho dřívějšími stížnostmi na tento nástroj.

Pro většinu ovladačů se cesta do jádra stala mnohem jednodušší. To se snad projeví rychlejším dodáním funkčních (nebo téměř funkčních) ovladačů do rukou uživatelů. Co je ještě důležitější, také se kód mnohem rychleji dostane do rukou komunity kolem jádra. Pravděpodobným výsledkem bude funkční, čistě napsaný ovladač rychleji než kdy předtím. Už tak dost rychlý vzestup podpory hardwaru v Linuxu se právě možná ještě zrychlil.

Sledování memory-mapped I/O operací

link

Ovladače zařízení obvykle dělají v konečném důsledku jednu věc: komunikují s hardwarem prostřednictvím sady memory-mapped I/O (MMIO) registrů. Když se snažíte zjistit, co ovladač dělá - například pro účely ladění - je často zajímavé podívat se na sekvence MMIO operací, které provádí. A pokud se pokoušíte rozlousknout [reverse-engineer] ovladač dostupný pouze v binární podobě, sledování jeho manipulace s MMIO registry může být jediným způsobem, jak zjistit, jak daný hardware funguje. Z tohoto důvodu vyvinuli vývojáři projektu Noveau nástroj zvaný "mmiotrace", který jim pomáhá sledovat, co se děje s memory-mapped I/O. Nyní je tento nástroj vylepšován a protlačován do hlavního stromu.

Ovladače získávají přístup k MMIO oblastem pomocí ioremap() (nebo pomocí jedné z funkcí vyšší úrovně jako pci_iomap()), to je tedy logicky místo, kam umístit sledovací infrastrukturu. Proto přidává současný mmiotrace patch nové varianty ioremap():

 void __iomem *ioremap_cache_trace(unsigned long offset, unsigned long size);
 void __iomem *ioremap_nocache_trace(unsigned long offset, unsigned long size);
 void iounmap_trace(volatile void __iomem *addr);

Tyto funkce vrací (stejně jako ioremap() a ioremap_nocache()) ukazatel na I/O paměť, díky kterému se ovladač může dostat k MMIO prostoru. Ale uvnitř se děje něco trochu jiného.

Na x86 architektuře (stejně jako na většině ostatních) je k I/O paměťovému prostoru přistupováno pomocí paměťových operací přes tabulky stránek obvyklým způsobem, takže ioremap() zkrátka vrátí adresu, která mapuje na požadovanou fyzickou oblast. Sledovací verze ale přidává krok navíc - označí stránky v I/O oblasti jako nepřítomné v systému. Kdykoli se pak kód pokusí přistoupit k dané oblasti, výsledkem bude vygenerování výpadku stránky [page fault].

Za normálních okolností způsobí výpadky stránek vyvolané při běhu v jaderném módu kernel oops. Existují ale výjimky, například funkce kopírující data mezi uživatelským a jaderným prostorem. Patch mmiotrace přidává další výjimku, která porovnává výpadkové adresy se sledovanými MMIO oblastmi. Pokud bude adresa ukazovat, že jde o pokus o MMIO přístup, provede mmiotrace kód následující:

  1. Označí příslušnou stránku zpět jako přítomnou v paměti.
  2. Ve stavové masce procesoru vypadávajícího vlákna nastaví TF (sledovací) bit.
  3. Vyvolá "pre" handler poskytovaný sledovacím kódem vyšší úrovně.
  4. Označí chybu jako zpracovanou a vrátí kontrolu vypadávajícímu kódu.

Po provedení těchto kroků proběhne původní instrukce, která způsobila výpadek stránky, znovu, nyní úspěšně. Nastavení sledovacího bitu ale způsobí novou past procesoru [processor trap] po vykonání instrukce. V tu chvíli je stránka ještě jednou označena jako nedostupná, sledovací bit je resetován (pokud nebyl nastaven jinde), zavolá se "poštovní" agent sledovací vrstvy a pak jde život dál, dokud se nevyskytne další výpadek.

Sledovací vrstva má v podstatě pouze jednu úlohu: přijít na to, co se kód snaží v MMIO prostoru provést, prostřednictvím předávacího [relay] rozhraní akce logovat. Přijít na to znamená dozvědět se dostatek informací o instrukci, která způsobila výpadek stránky, aby šlo určit, ke které adrese se přistupovalo, jestli to byl zápis nebo čtení, velikost přenášených dat a vlastní hodnotu, která byla čtena nebo zapisována. Kvůli tomu je obsaženo jisté množství na architektuře závislého kódu prohledávajícího instrukce, který je v nynější podobě patche poskytován jen pro x86 stroje.

Protože se sledování aktivuje voláním speciální verze ioremap(), není možné sledovat ovladač bez editace jeho zdrojového kódu a rekompilace. To může pro nástroj určený pro pomoc (mimo jiné) s reverzním inženýrstvím vypadat jako zvláštní požadavek, ale ovladač zkoumaný projektem Nouveau používá GPL mezivrstvu slinkovanou s jádrem, takže modifikace kódu nebyla v tomto případě nic těžkého. Pro ovladače bez této "lepící" vrstvy bude zřejmě nutné najít obecnější řešení.

Kromě toho pravděpodobně patch projde před začleněním do hlavního jádra ještě několika změnami. Při kontrole kódu bylo objeveno dost věcí, které je nutné opravit, a v kódu je až příliš mnoho míst, kde komentáře říkají (doslovně): "když se stane tohle, rozpoutá se peklo na zemi". Navíc se zdá pravděpodobné, že mmiotrace bude začleněn s nedávno zaslaným sledovacím mechanismem ftrace. Na dokončení práce je před otevřením začleňovacího okna pro 2.6.26 ještě čas, ale hackeři mmiotrace budou ve vývoji muset pokračovat.

       

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

7.5.2008 00:40 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: Jaderné noviny - 27. 2. 2008
zdůrazňuje maintainer Infiband stromu Roland Dreier
jako část rozhrání jádra.
Quando omni flunkus moritati
7.5.2008 08:41 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Překlepy
Díky za Jaderné noviny.
7.5.2008 08:52 Fantomas
Rozbalit Rozbalit vše Re: Překlepy
Ale no tak, je mladej a cestinu se jeste douci;-)
7.5.2008 11:32 melkors | skóre: 13 | blog: kdo_chce_kam
Rozbalit Rozbalit vše Re: Překlepy
Stromek nutno ohybak, dokud je jeste mlady ;-)
7.5.2008 10:01 hydrandt | skóre: 35 | blog: Kanál | Ko Pha-ngan
Rozbalit Rozbalit vše Re: Překlepy
Myslíš přesunout tebou vytučněná slova na druhou pozici? Minimálně u toho prvního si za tím stojím ;) protože je to prakticky rozdělená věta "... jsou ty, které se zkompilují a vypadají funkčně."

Druhý bod: to je pravidlo? Přiznávám, zní to líp, ale příjde mi to spíše jako záležitost citu. Rád se poučím.
I am Jack's wasted life.
7.5.2008 10:12 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Překlepy
Myslíš přesunout tebou vytučněná slova na druhou pozici?
Ne. Ta zvýrazněná slova tam byla dvakrát (je však možné, že to mám na svědomí já), ale já už to mezitím opravil.
7.5.2008 15:31 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Jaderné noviny - 27. 2. 2008
kontrolery kódu {code checkers}
Slovo "kontroler" (nebo "kontrolér") je v tomto významu podle mě nevhodné, protože už před mnoha desítkami let se dostalo do češtiny jako termín pro zařízení, které řídí elektrické stroje (počeštěný "controller"). Změnil bych to na "kontrolor" nebo ještě něco jiného, co mě teď nenapadá. :-)
7.5.2008 18:27 hydrandt | skóre: 35 | blog: Kanál | Ko Pha-ngan
Rozbalit Rozbalit vše Re: Jaderné noviny - 27. 2. 2008
Kontroloři kódu? Nevím... : ) Nějaký další nápad?
I am Jack's wasted life.
7.5.2008 18:37 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: Jaderné noviny - 27. 2. 2008
To už radši kontroler než kontrolor... to druhé zní blbě.
Quando omni flunkus moritati
8.5.2008 23:50 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: Jaderné noviny - 27. 2. 2008
Ověřovače kódu? Aplikace pro kontrolu kódu?
Píšu pro Pivní recenze a protože mě to IT už fakt nebaví, tak jsme si s klukama postavili pivovar Lucky Bastard
Jakub Lucký avatar 7.5.2008 01:04 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Jaderné noviny - 27. 2. 2008
Tak se konečně dočítám, co to moje jádro vlastně umí :) Každopádně děkuji překladatelům, ačkoliv přichází s článkem po kompilaci ;)
If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek
10.5.2008 19:28 Lukáš Helebrandt ( CL CITY)
Rozbalit Rozbalit vše Re: Jaderné noviny - 27. 2. 2008
Zdravím autora .. jmenuju se stejně jménem i přímením muj email je : primerouno@seznam.cz

Založit nové vláknoNahoru

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