Portál AbcLinuxu, 29. dubna 2024 04:10

Jaderné noviny 181

9. 9. 2002 | Leoš Literák
Články - Jaderné noviny 181  

Dnešní číslo se věnuje potížím IDE kódu a jeho budoucnosti.

Do konference přišlo celkem 1483 emailů, nejvíce psali Alan Cox, Ingo Molnar a Linus Torvalds.

Nekončící trable s IDE, 87 emailů

Martin J. Bligh si všiml, že Jens Axboe kompletně smazal veškerý zdrojový IDE kód z řady 2.5 a nahradil jej verzí z jádra 2.4.19-pre-acX. Zeptal se tedy, co se stalo. Linus Torvalds odpověděl, že Martin vzdal svůj boj. Matthias Andree odpověděl:

Zní to jako smutný den pro Martina, který věnoval tolik času práci na této části, zatímco lidé mu nebyli vůbec vděčni, naopak na cestě po něm křičeli. To lidi vyčerpá.

Existuje nějaký způsob, jak zachránit jeho vylepšení? Nebo aspoň půjdou použít znalosti do ovladače IDE-TNG? Bylo by velice smutné, kdyby tolik investovaného času do tohoto projektu bylo ztraceno.

Andre Hedrick napsal:

Pánové, přednesu vám IDE-TNG na stříbrném tácu. Modulární čipsety a registrace indexu kanálu [channel index registration]. Volitelné IOPS pro platformově nezávislé Transportní vrstvy. Je třeba dodělat seznam tříd zařízení [device class link list], který bude adresovat plně modulární podovladače [subdrivers]. Obsahuje to i první generaci otevření zařízení a volání metody select.

Zaregistrovali jste ide-cd na CD-RW a chcete vypálit CD?

Skip Ford se zeptal Andreho, jestli by mohl zaslat do konference patch, rád by jej totiž vyzkoušel. Ať zašle jen diff, ale bez tance a zpěvu. Smějící se Marc-Christian Petersen napsal Linusovi, že si dovede představit, o čem teď Linus sní: Proč jsem k**va nakopal Andreho do zadku a řekl mu, ať skočí do jezera. Jenže Rik van Rielovi vůbec nepřipadalo směšné zahodit měsíce tvrdé dřiny. Rik Martinovi poděkoval za pokus učinit IDE vrstvu lepší, ač jeho způsob odstraňovaní funkcí nakonec nefungoval. Andrew Morton dodal, že Martin aspoň demonstroval, kolik práce je zde potřeba a kolik neřádu se v IDE nahromadilo.

Linus odpověděl na Marc-Christianovu poznámku, že sní o správci IDE, se kterým se dá spolupracovat a nechápe, proč s IDE měl větší problémy než s celým zbytkem jádra dohromady. Nyní to vypadá, že Alan je ochoten aspoň na čas pracovat na IDE kódu, což je skvělé. Linus jen neví, jak dlouho vydrží. Nový správce by měl rozhodovat o vlastnostech a být za ně odpovědný. Lidé si stěžovali, že něco nefunguje a správce zahlcený stížnostmi přestal vnímat realitu a místo toho se začal obávat o kompatibilitu s dokumentací, doufajíc, že to spraví všechno. To by mohlo fungovat, kdyby problémy nebyly v hardwaru, který nesplňuje specifikace a potřebuje nějakou berličku [workaround]. Takže pokud začne nemoc s Takhle je to dokumentováno a pokud to nefunguje, máte vadný počítač, všechno půjde z kopce.

Jinde jsou také problémy s kompatibilitou zařízení, ale když se nahromadí příliš hodně odpadu, tak vyvojáři napíší kompletně nový ovladač bez historických nesmyslů. Takže věří, že jedinou správnou cestou je mít nezávislé ovladače, které pravděpodobně budou obsahovat hodně duplikací, ale kde vyvojáři budou odpovědni za své ovladače (což vyřeší situaci, kde právě jeden řadič je chybný). Některé oblasti mohou být nezávislé na hardwaru, ale nesmí být ovlivněny jeho případnými chybami.

V podstatě si myslím, že chyba není v lidech, ale ve směšném linkování uvnitř ide.c a příliš komplikovaných pravidlech. Kód je prasácký. Ovladače síťovek mají různá nastavení sdílející stejný čipset, ale mají vlastní ovladače, které sdílejí pomocné rutiny. Přesto každý ovladač dělá vlastní PCI registraci atd. Narozdíl k tomu ale když jde o IDE, máte nejdříve ovladač IDE, pak ovladač PCI čipsetu a toto zapřahání vozu před koně ústí v problémy.

Dokonce i něco tak jednoduchého jako ovladač PIIX (jenž by se měl zaregistrovat jako ovladač pro PIIX čipsety) to nedělá. Místo toho máme ide-pci.c, který udržuje seznam všech známých čipsetů a provádí inicializaci a volá metody, které zná. To je incest. A všichni víme, kam incest vede. Dědičné šílenství.

Následovala krátká debata Alexandera Vira a Alana Coxe, po níž Linus předestřel svou představu IDE-TNG:

Hlavním smyslem IDE-TNG bude podporovat jen hlavní řadiče a umožnit jim mít vlastní ovladač a nestarat se o historickou zátěž. A pak za pět let, v čase Linuxu 3.2, se můžeme odhodlat zahodit starý IDE kód s PIO módy apod. Určitě jej někteří lidé budou používat (stejně jako to dělají s řadou 2.0 a hd.c), ale to nebude překážet vytváření čistšího ovladače. A ano, je zřejmé, že se jedná o materiál pro řadu 2.7.

Tento článek vychází ze seriálu Kernel Traffic (http://kt.zork.net) a je zveřejněn pod licenci GPL verze 2.

Další články z této rubriky

Jaderné noviny – přehled za březen 2024
Jaderné noviny – přehled za únor 2024
Jaderné noviny – přehled za leden 2024
Jaderné noviny – přehled za prosinec 2023
Jaderné noviny – přehled za listopad 2023

Diskuse k tomuto článku

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.