ŠTĚPÁNEK, L. Distribuce a provoz aplikací se stavovým úložištěm v systému Nix [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Aktivitu studenta během řešení považuji za mírně nadstandardní a navrhuji hodnotit práci stupněm velmi dobře (B) .
| Kritérium | Známka | Body | Slovní hodnocení |
|---|---|---|---|
| Informace k zadání | Cílem práce bylo navrhnout a implementovat způsob použití Nix pro automatizaci instalace a distribuce aplikací bez odděleného stavového úložiště a toto demonstrovat na případu Windows aplikací pro NixOS linux. Z pohledu vedoucího považuji zadání za obtížnější vzhledem k nutnosti hlubokého porozumění principům a technologiím Nix derivací, nix-store, NixOS a předem nejasnému způsobu řešení. Zadání považuji za splněné. | ||
| Práce s literaturou | Student samostatně vyhledal a použil relevantní literaturu. Vzhledem k práci s nejnovějšími technologiemi v Nix/NixOS bylo nutno a doporučeno pracovat především s online zdroji. | ||
| Aktivita během řešení, konzultace, komunikace | Během řešení byl student velmi aktivní, svůj postup pravidelně hlásil a na konzultace chodil vždy dobře připraven. Všechny termíny byly splněny. | ||
| Aktivita při dokončování | Práce byla dokončena včas a výsledky byly dostatečně konzultovány. | ||
| Publikační činnost, ocenění | Bez publikací či ocenění. Výsledky byly zveřejněny jako open-source. |
Napriek určitým nedostatkom textovej časti práce navrhujem hodnotiť prácu známkou A, s prihliadnutím na inovatívnosť realizačnej časti a jej potenciál pre praktickú využiteľnosť.
| Kritérium | Známka | Body | Slovní hodnocení |
|---|---|---|---|
| Náročnost zadání | Zadanie považujem za náročnejšie, pretože vyžaduje štúdium a detailne pochopenie Nixu nielen z pozície užívateľa, ale aj jeho nízkoúrovňových operácií a princípov na ktorých je založený. | ||
| Rozsah splnění požadavků zadání | Zadanie splnené bez výhrad. | ||
| Rozsah technické zprávy | Text práce spĺňa minimálne požiadavky, no obsahuje všetky potrebné informácie na pochopenie problematiky a výsledného riešenia. Niektoré časti mohli byť popísané detailnejšie, napríklad motivácia voľby konkrétnej overlay fs implementácie z troch popisovaných možností. | ||
| Prezentační úroveň technické zprávy | 75 | Na úrovni kapitol a sekcií je práca organizovaná a štrukturovaná zrozumiteľne. Nedostatky vidím na nižšej úrovni, kde sa jasný naratív miestami stráca a čitateľ sa v jednom odseku dozvie niekoľko nových informácií s nejasnou nadväznosťou a relatívnou dôležitosťou medzi nimi. Ukážkový je prvý odsek kapitoly 4, ktorý by si zaslúžil preorganizovať na napr. 3 menšie odseky - úvod/obsah kapitoly, popis implementovaných funkcií a provnanie s existujúcim riešením z 3.3. | |
| Formální úprava technické zprávy | 85 | Práca obsahuje malé množstvo drobných gramatických chýb (napr. chýbajúce "s" u množného čísla). Typograficky sa miestami objavujú "lietajúce" citácie, ako napr. [16] pod výčtom typov jazyka Nix na strane 7. | |
| Práce s literaturou | 85 | Práca pracuje s relevantnými zdrojmi. Keďže sa jedná o prácu ktorá sa primárne zaoberá rôznymi vyvíjanými nástrojmi a technológiami (Nix, WINE, overlay filesystémy dostupné na Linuxe), je pochopiteľné že väčšina zdrojov sú online dokumentácie. U vyššie spomenutých "lietajúcich" citácií nie je jasné, či bolo zámerom citovať predchádzajúci obsah alebo je to typografická chyba. | |
| Realizační výstup | 90 | Výsledkom práce je funkcia pre Nix ktorá pomocou overlay filesystému umožní aplikácii zapisovať do svojho inštalačného priečinku. Súčasťou je aj proof-of-concept funkcia na balíčkovanie Windows aplikácií z Winpkgs repozitára. Študent mi demonštroval funkcionalitu oboch funkcií. Riešenie je dostupné na platforme GitHub a obsahuje sadu ukážkových aplikácií zabalíčkovaných pomocou týchto funkcií. Tieto aplikácie sa mi štandardným Nixovým spôsobom podarilo spustiť na svojom stroji. Rovnako sa mi podarilo aj zabalíčkovať ďalšiu aplikáciu z Winpkgs. GitHub repozitár nemá dokumentáciu, no pre ľudí so skúsenosťami s Nixom sú ukážkové aplikácie dostatočné na pochopenie toho, ako sa funkcie používajú (aspoň stručná dokumentácia by však bola vítaná). Za zvlášť inovatívne považujem riešenie problému Windows registrov, ktoré sa vo výslednom riešení skladajú zo serializovaných "diffov" jednotlivých vrstiev. | |
| Využitelnost výsledků | U práce vidím veľkú využiteľnosť jednotlivých výsledkov. Funkcia mkOverlayFsPackage umožňuje jednoduchým a generickým spôsobom riešiť jedno z obmedzení Nix systému. I keď to možno nie je "čisté" a "idiomatické" z pohľadu Nix filozofie, podobné nástroje majú potenciál umožniť graduálnu adopciu Nixu novými užívateľmi, ktorí tak majú možnosť začať používať Nix bez nutnosti kompletnej - často veľmi dizruptívnej - adopcie spomínanej filozofie a všetkých jej dôsledkov a technologických limitácií. V rámci Nix ekosystému mi nie je známy iný projekt ktorý by tento konkrétny problém riešil. Funkcia mkWinpkgsPackage je síce v proof-of-concept stave, ale nápady z nej môžu slúžiť ako inšpirácia pre produkčnejšie riešenie. Dostatočne robustná implementácia by poskytovala relatívne jednoduchý, prívetivý a reprodukovateľný spôsob ako spustiť Windows aplikácie na Linuxe. To by poskytovalo značnú konkurenčnú výhodu pre systémy Nix/NixOS v porovnaní s inými linuxovými distribúciami pre Windows užívateľov, ktorí majú záujem začať používať Linux, no majú Windows aplikácie ktorých sa nechcú vzdať, alebo nenašli vhodnú alternatívu. Študentovi som odporučil výsledky diseminovať komunite skrz NixOS fórum. |
eVSKP id 164565