<div dir="ltr">Zdravím vespolek,<br>byli jsme několikrát vyzýváni k tomu, abychom dali zpětnou vazbu, pokud nás nějaká napadne, píši ji tedy níže. Protože Äekám, Å¾e by k tomu mohli mít ostatní komentáře, posílám ji do konference. Psát budu o zápočtu, protože k přednášce mne už nic nenapadá, o tom jsme se již bavili.<br><br>Moje pocity a návrhy k zápočtu jsou následující:<br><br>1) ZruÅ¡it dokumentaci<br>OSy jsou předmět velmi náročný na Äas a energii, vyžadují množství práce srovnatelné s bakalářkou a přitom jsou to jen průběžný povinný předmět. Studenti na nich stráví už jen psaním samotného programu velké množství Äasu a právě programování je (alespoň podle mého názoru) je to, v Äem se Älověk nejvíce naučí. Vzhledem k tomu, kolik je toho potřeba implementovat a za jak dlouho, si myslím, Å¾e valná větÅ¡ina týmů spoléhá na Å¡těstí a nějaké množství magie, Å¾e to vÅ¡echno dohromady chodí.<br><br>Rád bych slyÅ¡el názory ostatních na toto téma, já mám pocit, Å¾e větÅ¡ina týmů (obzvláště těch, co systém píší poprvé) systém odevzdává se slovy "už to nikdy nechci vidět" a také tak koná. Než systém někde dále rozÅ¡iřovat (proč to dělat, když tu jsou jiné lepší) by se hodilo ho celý přepsat s ohledem na Å¡patná rozhodnutí, která v něm jsou někde hluboko zakonzervovaná. V takovém případě je psaní dokumentace rovno házení perel sviním, protože na poslední chvíli (protože to dřív není potřeba) Älověk píše něco, co si po něm někdo jiný přečte nejvýše jednou a pak to už nikdy nikdo nepoužije. <br><br>Dokumentace patří do jiných předmětů, kde je na ni více Äasu (ročníkáč, softwarový projekt, bakalářka, diplomka, zápočťáky) a dává smysl, protože studenti tyto práce obvykle píší proto, aby byly posléze někde použity a nebo to pomohlo ostatním. Tam si psaní dokumentace vyzkouší dostatečně. Jedny z nejhorších pocitů při psaní byly, když jsem o víkendu před deadline psal dokumentaci právě z toho důvodu, Å¾e jsou za ni body. Během roku na ni není Äas, tam, kde je to potřeba, již komentáře jsou a její učesávání je nudná mechanická práce která jen bere Äas a nic nedává. Obdobně to platí pro debugovací výpisy, nejlepší pomůckou se nám ukázaly prinkt a //, celá skvělá marka na debugování per module jsme psali těsně před odevzdáním, protože Älověk by potřeboval ladící výpisy povolovat do hloubky, což ale nevím, zda jde udělat (=chci sledovat, kudy debugovaná funkce prochází, ale např. nechci sledovat vÅ¡echny mutexy, i když jeden z nich funkce používá). <br><br>2) Průběžné kontroly a konzultace<br>Kromě průchodu testy by mi přiÅ¡lo zajímavé a přínosné (alespoň pro ty, kteří se se systémovým programováním setkávají poprvé), kdyby si opravující po každém deadline vyhradili nějaký Äas na ruční kontrolu. Podívali by se na kód a pak se seÅ¡li s jednotlivými týmy a konzultovali s nimi právě proběhlou ÄÃ¡st, záludnosti, které nebyly pokryty testy (a nebo testy omylem proÅ¡ly) a vhodnosti konkrétních způsobů implementace. Z jedné strany je dobře, Å¾e si větÅ¡inu věcí musíme vymyslet sami, z druhé strany problém někde hluboko vzniklý chybou návrhu a nalezený při dokončování třetí stage Älověka spíš naÅ¡tve než posune dál. <br> <br>3) Upravit deadline<br>Zde bych měl jen malou poznámku a to, Å¾e by se hodilo přidat 4 hodiny za ztrátu 1 bodu (mezistupeň mezi odevzdám včas a odevzdám o týden později). Jsem rád, Å¾e se deadline prodloužují z vážných důvodů.<br><br>4) Upravit bodování<br>Tento bod souvisí s bodem 1). Myslím si, Å¾e kdyby se zruÅ¡il bod kvalita dokumentace a z ní se zachoval jen obecný text (klidně v ÄeÅ¡tině) se zajímavostmi implementace konkrétních ÄÃ¡stí přesunutý do bodu 2), tak se omezí množství opruzu ve prospěch programování a vylepÅ¡ování systému. To, Å¾e jsou funkce Äitelné, krátké a dobře strukturované mi přijde jako dostatečný požadavek na kvalitu kódu a množství komentářů by mělo být bráno jako minoritní kritérium. Alternativně by se mi líbila možnost doplňkové funkcionality za bonusové body. Rád bych napsal funkční filesystém místo kopírování definic debugovacích maker z místa na místo.<br><br>5) Možnost testování na reálném HW<br>Kdyby byla možnost dostat kromě simulátoru i nějaký reálný HW (třeba routerboard), na kterém by Kalisto bylo podporováno, motivovalo by mne to mnohem více k programování. Nevím, jestli je to snadné, ale myslím, Å¾e by snad možnost nahrát image přes U-boot a mít putc a getc ze sériové konzole by bohatě stačilo a motivovalo by mne to k psaní mnohem více než pouhý běh v simulátoru. Podpora reálného HW by měla samozřejmě být volitelná a případně za bonusové body. <br><br>5) Drobnosti pro debugování<br>Velmi by mne potěšilo několik drobností, které by pomohl v debugování a Älověk si je nemusel psát sám (protože neví, kolik by mu to zabralo a jestli by se to vyplatilo):<br>a) trasovací výstup z msimu na stderr - abych to mohl někam přesměrovat a viděl, jak program běží. Místa, kde se zapisuje na konzoli by byla v trace vyznačena obdobně jako přeruÅ¡ení<br>b) funkční diskové zařízení v msimu - když se píše, Å¾e můžu použít load a fmap, tak by měly fungovat obojí, ne Å¾e fmap poběží a load nic neudělá a nestěžuje si.<br>c) více debugovacích výpisů msimu - když se mi zařízení v paměti překrývají, tak chci, aby mne praÅ¡til přes prsty, ne aby to tiÅ¡e ignoroval. Obecně mi chyběla možnost -v, kdy by byl ukecanější a třeba mi Å™ekl, Å¾e soubor neotevře jako disk a proč. Nemyslím si, Å¾e zkoumání zdrojáků msimu a patchování by mělo být součástí OSů.<br>d) lepší dokumentace k msimu - někde u disku mi občas chyběly jednotky (teď to nemohu najít), když se tam píše, Å¾e sector set, Älověk by Äekal, Å¾e třeba set bude mít velikost větší než 1. Taky by se hodilo vědět, které parametry jsou povinné a které ne (když mapuji soubor, musím udávat velikost disku?)<br>ad b,c,d) disk dávám za příklad, protože jsem s ním hodně pracoval, s jinými ÄÃ¡stmi jen okrajově.<br>e) převod trace na Äitelný text - bohatě by stačil jednoduchý skript, kterému předhodím trace a kernel.disasm (či jiný vhodnější) a dostanu u každé instrukce jméno funkce (a případně i souboru), ze které instrukce pochází. <br><br>Tolik to, co mne napadlo v průběhu psaní a doufám, Å¾e to pomůže při budoucích změnách předmětu. Diskusi vítám.<br>S pozdravem<br><br>Tomáš "Jethro" Pokorný<br></div>