1. cvičenie – oboznámenie sa s prostredím

Na prvom cvičení je vašou úlohou pripraviť si prostredie pre vývoj xv6 na počítačoch v učebni a svojich vlastných počítačoch. V rámci toho vytvoríte vlastný repozitár na platforme GitLab, v ktorom budete udržiavať zdrojový kód xv6.

Prvé tri týždne semestra musíte pracovať na školských počítačoch. Testy v priebehu semestra budete riešiť na nich a preto si musíte zvyknúť na toto prostredie. Zvyšok semestra (samozrejme okrem testov) už budete môcť pracovať na vlastných počítačoch.

Kontrolný zoznam

Na konci cvičenia by ste mali vedieť:

  1. Pridať svoj vzdialený repozitár na školský počítač a stiahnuť zmeny (pull).
  2. Urobiť zmeny, uložiť ich do lokálneho repozitára (add, commit) a nahrať ich na vzdialený repozitár (push).
  3. Spustiť a ukončiť xv6.
  4. Vedieť, kde sa nachádzajú kódy používateľských programov a kde sa nachádza kód jadra systému xv6.

Príprava prostredia na školských počítačoch

Týchto 13 bodov budete robiť iba raz, resp. v prípade nutnosti opätovného vytvorenia virtuálneho stroja. Nie je potrebné, aby ste si kroky zapamätali.

  1. Skopírujte skomprimovaný obraz disku virtuálky na ceste J:\work\os2024.zip alebo \\home31\apps\os2024.zip do C:\work a rozbaľte ho tiež do C:\work. Je pravdepodobné, že kopírovanie bude trvať dlhší čas. Preto pokračujte prípravou prostredia na vlastných počítačoch. Archív v C:\work môžete po rozbalení zmazať.
  2. Otvorte Oracle VM VirtualBox z odkazu na pracovnej ploche alebo cez Štart.
  3. Vyberte FileToolsVirtual Media Manager alebo stlačte klávesovú skratku Ctrl+D.
  4. Kliknite na Add a vyberte rozbalený disk v priečinku C:\work.
  5. V rozbaľovacom menu dole vyberte Immutable a potvrďte tlačidlom Apply. Zatvorte okno.
  6. Teraz vytvoríme nový virtuálny stroj. V menu kliknite na MachineNew (Ctrl+N).
  7. Ako názov zadajte os2024, typ Linux a verziu Debian (64-bit). Umiestnenie virtuálneho stroja nastavte do C:/work! Pokračujte kliknutím na tlačidlo Next.
  8. Veľkosť pamäte nastavte na 8192 MB. Pokračujte kliknutím na tlačidlo Next
  9. Zvoľte možnosť Use an existing virtual disk drive. V rozbaľovacom políčku by mal byť vybraný disk, ktorý ste predtým pridali. Dokončite vytvorenie kliknutím na Create.
  10. Ešte je potrebné nastaviť určité aspekty virtuálneho stroja. Kliknite na Settings (Ctrl+S, virtuálny stroj musí byť vybraný).
  11. V ľavom stĺpci zvoľte System. Kliknete na kartu Processor a počet jadier nastavte na 10.
  12. V ľavom stĺpci zvoľte Display. Video Memory nastavte na 128 MB (maximálna hodnota). Zmeny potvrďte tlačidlom OK.
  13. Teraz môžete virtuálny stroj spustiť stlačením Start. Na prepnutie do režimu celej obrazovky stlačte pravý Ctrl+F.

Ďalej postupujte podľa návodu na Vytvorenie vzdialeného repozitára a prvé nahratie na stránke synchronizácie repozitára.

Príprava prostredia na vlastných počítačoch

Na domácu úlohu ste si mali nainštalovať nástroje potrebné na vývoj xv6. Ak ste tak ešte neurobili, postupujte podľa príslušných návodov. Pokracujte rozbehanim vzdialeneho repozitara na sluzbe GitLab (Stiahnutie repozitára na vlastný PC).

Ak ho ešte nemáte, naklonujte repozitár xv6 (v prostredí WSL):

Skompilujte a spustite xv6:

Ak do príkazového riadka napíšete ls, mali by ste uvidieť podobný výstup:

Tieto súbory vytvorí program mkfs počas inicializácie súborového systému; väčšina z nich sú programy, ktoré môžete spustiť. Pred chvíľou ste jeden z nich spustili: ls.

Na vypnutie qemu stlačte postupne: spolu Ctrl+A a potom samostatne X.

Skúška vytvorenia commitu na vlastných počítačoch

Teraz si natrénujete úpravu repozitára a jeho synchronizáciu so vzdialeným repozitárom na GitLabe. Začneme úpravou súboru README na vašom počítači.

  1. Otvorte súbor README a urobte v ňom nejakú úpravu (môžete sa napríklad podpísať a pridať krátky popis).

    Svoje aktuálne zmeny môžete zobraziť pomocou príkazu git diff. Týmto príkazom zobrazíte zmeny, ktoré ste urobili od posledného commitu.

  2. Pokračujte návodom Commit a push na stránke Synchronizácia repozitára.

Ak ste postupovali podľa návodu (posledný príkaz bol git push gitlab), teraz by mali byť vaše zmeny uložené vo vzdialenom repozitári. V ďalšej časti cvičenia tieto zmeny prenesiete na školský počítač, odkiaľ urobíte ďalšiu úpravu.

Skúška vytvorenia commitu na školských počítačoch

  1. Otvorte súbor README a urobte v ňom nejakú úpravu (doplňte napríklad vaše predsavzatie na tento semester). Pozrite si zmeny príkazom git diff.
  2. Vytvorte commit a nahrajte zmeny na vzdialený repozitár (Commit a push).
  3. Prejdite do svojho počítača a zmeny stiahnite príkazom git pull gitlab. Skontrolujte, či boli stiahnuté (napr. príkazom git log).

Oboznámenie sa s kódom xv6

Prezrite si súbory v repozitári. Sústreďte sa na priečinky user a kernel. V priečinku user sa nachádzajú používateľské programy, ktoré môžete spúšťať z príkazového riadka systému xv6. Priečinok kernel obsahuje zdrojové kódy jadra. Otvorte si niektoré zdrojové súbory a prezrite si ich obsah. Dobrá orientácia v zdrojových kódoch bude počas celého semestra dôležitá. Zatiaľ si ale môžete vydýchnuť, bližšie sa tomu budeme venovať na druhej prednáške.

Vráťte sa na Kontrolný zoznam a overte, či ovládate potrebné zručnosti.