VLADYKA, V. Nástroje pro diagnostiku integrity souborového systému v OS Linux [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2017.

Posudky

Posudek vedoucího

Petyovský, Petr

Zadání diplomové práce Bc. Vojtěcha Vladyky patřilo mezi obtížnější a to převážně z důvodů vyšší časové náročnosti nutné ke studiu znalostí nutných k pochopení principů fungování zvoleného souborového systému. Student dle zadání zvolil vhodný systém souborů, kterým se stal souborových systém UDF definovaný otevřenými standardy ECMA a tyto standardy nastudoval. Cílem bylo pro zvolený souborový systém vytvořit validační a reparační nástroje s otevřenými zdrojovými texty, zajišťující kontrolu konzistence tohoto souborového systému. Jak student v rámci literární rešerše zjistil, i komerční operační systémy často obsahují pouze nástroj pro validaci souborového systému a nikoliv už nástroje pro jeho opravu, případně tyto nástroje nefunguji zcela správně. Práci diplomant věnoval velké množství času a úsilí. V průběhu řešení práce byl patrný jeho zájem o řešení daného problému. Pracoval iniciativně, samostatně a své průběžné výsledky prezentoval na pravidelných konzultacích v průběhu celého studia. Veškeré body zadání byly splněny. Student Vladyka kontaktoval správce knihovny zajišťující podporu souborového systému UDF pro OS Linux Pavola Rohára, jež se následně stal externím konzultantem jeho diplomové práce a vypracoval tedy posudek externího konzultanta této práce. Touto spoluprací student splnil nejen požadovaný bod zadáním č. 7, ale také zajistil budoucí využití a rozvoj výsledných nástrojů GNU komunitou. Můžeme tedy předpokládat, že se tyto vytvořené nástroje v budoucnu stanou dostupným balíčkem i v dalších operačních systémech. Díky otevřenému standardu je totiž UDF jediným souborovým systémem, který podporují pro čtení i zápis všechny tři nejrozšířenější operační systémy a jehož využívání v dalších zařízeních není zatíženo licenčními poplatky, jako je tomu u rozšířeného, ale již archaického souborového systému FAT. V textu práce pouze postrádám podrobnější dokumentaci realizovaných kontrolních a opravných algoritmů, na druhou stranu by při množství práce odvedené diplomantem představovala tato dokumentace pouze další netisknutou přílohu uloženou pouze na CD. Student věnoval řešení práce dostatek času. Dosažené výsledky i formální zpracování práce jednoznačně svědčí o inženýrských schopnostech studenta. Předložené práci navrhuji hodnocení: velmi dobře - B. (86)

Navrhovaná známka
B
Body
86

Posudek oponenta

Tišnovský,, Pavel

Student Vojtěch Vladyka měl v rámci svého diplomového projektu navrhnout a vytvořit nástroj určený pro diagnostiku a opravu chyb ve vybraném souborovém systému. Pro tento účel si vybral souborový systém UDF, což je podle mého názoru velmi dobrá volba, protože - jak je v práci podrobně zmíněno a argumentováno - pro tento souborový systém prakticky neexistuje vhodný open source nástroj a existující uzavřená (komerční) řešení jsou v mnoha ohledech problematická. Navíc je UDF používaný napříč většinou operačních systémů, takže vytvořený nástroj bude možné použít i mimo OS Linux (systémy založené na BSD apod.) V teoretické části práce jsou zmíněny základní vlastnosti souborového systému UDF s podrobným popisem těch částí (deskriptorů atd.), u nichž má význam diagnostikovat a popř. i opravovat chyby. Další kapitoly textu diplomové práce jsou věnovány konkrétnímu popisu algoritmů určených pro detekci a opravu chyb. Vzhledem k vlastnostem UDF (chybějící žurnál atd.) není možné provádět sofistikovanější detekce a opravy chyb, což je v práci taktéž korektně zmíněno. Podle mého názoru je navržená koncepce správná a dobře vystihuje vlastnosti UDF. Pouze bych nesouhlasil s tvrzením, že ECC použité na nižší vrstvě zajistí konzistenci a integritu vlastních dat (obsah souborů a adresářů); možná se však pouze jedná o nešťastně formulovanou větu. Praktické řešení, tj. návrh a následná realizace celého projektu, je provedeno velmi kvalitně, o čemž ostatně svědčí i fakt, že zdrojové texty byly zahrnuty do projektu udftools. Tuto skutečnost, stejně jako použití nástrojů git (repositář na GitHubu), Travis CI, Autotools atd., hodnotím velmi kladně. K samotným zdrojovým kódům, které jsou napsány v C99, mám několik menších výhrad, které však nejsou kritické pro celkové hodnocení práce: •celočíselné konstanty s návratovými hodnotami používanými funkcí exit() by mohly být deklarovány v hlavičkovém souboru •ve zdrojových kódech se na několika místech používají „magické konstanty“ (4096, 1024), které by opět mohly být deklarovány (například konstanta 4096 má hned několik významů) •v testu na velikost bloku se sice v poznámce i v chybové zprávě uvádí, že velikost musí být dělitelná 512, ovšem testují se jen vybrané hodnoty 512, 1024, 2048, ..., nikoli například 1536 (v textu práce je správně uvedeno, že se s těmito hodnotami v praxi nesetkáme) •funkce warn() apod. by bylo vhodnější přesunout ze zdrojového souboru utils.c do samostatného modulu pojmenovaného například log.c. •není zapotřebí psát (rest > 0 ? 1 : 0), protože už použitý relační operátor vrací hodnotu 1 nebo 0 •podle logu z GitHubu byly zdrojové kódy relativně nedávno upravovány, ale v hlavičce stále mají (c) 2016 Klasifikace: Posuzovaná diplomová práce podle mého názoru po své teoretické i praktické stránce splnila zadání a student prokázal dobré inženýrské schopnosti a v neposlední řadě i schopnost práce na komunitním projektu. Z tohoto důvodu navrhuji její ohodnocení známkou B (velmi dobře, 85 bodů).

Navrhovaná známka
B
Body
85

Otázky

eVSKP id 102854