Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Deset největších průšvihů v historii Linuxu (první část)

Tomáš Crhonek aura:71
17. 7. 2009 11:17

Re: Deset největších průšvihů v historii Linuxu (první část)

celé vlákno

Pro mě je největším průserem patch do jádra po tzv. chybě ext4.


Krátce připomenu o co šlo: Někteří uživatelé Ubuntu (první masově rozšířené disto s ext4) s root oddílem na ext4 hlásili ztrátu dat po tvrdém pádu stroje.


V čem byl problém: Špatně napsané programy spoléhaly na nečekanou vlastnost ext3, která ale nebyla zamýšlena. Ext3 totiž defaultně commituje změny v žurnálu každých 5s. A žurnál má nastavený na ordered. Toto v konečném důsledku způsobí, že se každých 5s zapíší všechna změněná data.


Programy na toto nedokumentované chování ext3 (a pouze ext3 s commit=5,da­ta=ordered) spoléhaly a nezajistily si správné uložení dat (různá volání fsync, případně různé mody otevření souboru pro zápis).


Ext4 a jiné FS se takto nechovají. Data drží v cache co možná nejdéle a zápis odkládají. Tím dosahují vyšších výkonů a nižší externí fragmentace.


Tak a teď, co považuji za průser. Místo, aby si uživatelé uvědomili, že po tvrdém pádu stroje nemusí mít na disku vůbec nic, natož pak změny v souborech provedené několik sekund před pádem a místo toho, aby se opravili blbě napsané programy spoléhající na nikým nezaručenou vlastnost jednoho systému souborů, tak místo toho se udělá patch do jádra (které s tím nemá nic společného), a na základě heuristiky se odhaduje, která data ukládat a která nechat na delay. Větší nesystémovost jsem za posledních 6 let v linuxu nezažil.


K linuxu jsem přešel právě pro jeho systémovost. Věci se dělaly správně. Problém se řešil tam, kde byl. Dovede si někdo vůbec představit, že v roce 2001 někdo přijde za Linusem a řekne: „hele, mám tu program co ukládá data a po resetu ta data na disku nejsou, udělej s tím něco v jádře“ a Linus mu to odkýve?