Cvičení: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14.

Než se pustíme do Linuxu, musíme vysvětlit, jak bude celý předmět probíhat a jak budete hodnoceni.

Čtení před cvičením

Každé cvičení bude mít část nazvanou Čtení před cvičením která bude obsahovat několik stran textu vysvětlující základní koncepty, které budeme pro cvičení potřebovat. Tento text nahrazuje tradiční přednášku (tj. přednášky jako takové nejsou).

Text z části před cvičením byste si měli přečíst, než přijdete na cvičení. Tohle první cvičení je výjimka, protože takový text tu není a také nebude z tohoto cvičení žádný kvíz. Od příštího cvičení bude pro každé čtení před cvičením připraven kvíz, který musíte odevzdat před začátkem vašeho cvičení.

Pokud jste si zatím nepřečetli o organizaci předmětu, učiňte tak, prosím, nyní.

V tomto cvičení projdeme základní koncepty Linuxu, verzování zdrojového kódu a také jak odevzdávat hodnocení úlohy.

Účel předmětu

Cílem předmětu není jen ukázat vám jiný operační systém, ale také jiný styl práce.

Očekáváme, že na konci předmětu bude umět následující:

  • Používat Linux jako uživatel pro vši každodenní práci. To zahrnuje věci jako je čtení e-mailu tak i činnosti pokročilého uživatele, který chce svůj počítač skutečně ovládat.
  • Použití obvyklé Linuxové nástroje. Nebudeme trávit čas na obvyklých programech jako je prohlížeč nebo editor fotografií, které jsou skoro všude stejné. Místo toho se zaměříme na nástroje, které jsou bližší systému jako takovému.
  • Automatizovat si práci (hodně). Uvidíte, že mnoho každodenních činností lze zjednodušit napsáním malých programů, které celou činnost zautomatizují. Linux je pro tohle to optimální prostředí.

Na druhou stranu, předmět nepokrývá pokročilou správu systému (kromě základů nutných pro údržbu všeho notebooku) nebo kompilaci vlastního kernelu.

Mnoho konceptů i nástrojů lze přenést i do jiných systémů a tím si ušetřit práci i v nich. Ale věříme, že právě Linux nabízí unikátní prostředí, které všechny tyto nástroje fungují jako jeden provázaný celek.

Pokusíme se vám to v tomto semestru dokázat.

Co je Linux

Pod pojmem Linux myslíme operační systém a softwarové vybavení, které obvykle na takovém systému najdete. To zahrnuje (nejenom) vývojářské nástroje (překladače apod.), grafické prostředí, textové editory, tabulkové procesory, prohlížeče apod.

Poznámka: pro jednoduchost – v mluveném i psaném projevu – používá Linux jako jméno celého prostředí, kde budeme pracovat. V užším slova smyslu je Linux jen jádro operačního systému – tj. ta nejnižší vrstva programového vybavení (nejvyšší vrstvou jsou uživatelské aplikace). Celé prostředí je často nazýváno GNU/Linux pro zdůraznění, že jde o jádro a další volně dostupný software.

Ačkoliv je mnoho Linuxových konceptů i programového vybavení dostupných i na jiných operačních systémech, Linux je dodává v jednom hezky upraveném balení.

Klíčové vlastnosti Linuxu

Tady je přehled klíčových vlastností Linuxového prostředí. Ve větších podrobnostech o nich budeme mluvit na dalších cvičeních.

Linux využívá open-source software. Takže se můžete klidně podívat, jak jsou věci implementovány. A můžete bez obav i implementaci upravovat.

Linux je nadmíru flexibilní a přizpůsobitelný. Linux může běžet na IoT zařízení stejně jako na velmi vytíženém routeru. Linux běží na mobilech i na superpočítačích. Uživatel si může nastavit v podstatě cokoliv. Tradičně je konfigurace ukládána v souborech prostého textu. Mnoho programů nabízí grafické editory nastavení, ale stejně tak je možné upravit konfiguraci ručně. Zkušenému uživateli tak stačí jen textový editor pro nastavení celého systému.

Linux má i grafické uživatelské rozhraní. Je ale volitelnou součástí systému, protože není vždy potřeba. Serverové stroje nepotřebují klikací okénka na to, aby fungovaly. A pokud GUI potřebujete, můžete si vybrat z mnoha typů podle vašich potřeb. Z pohledu operačního systému je GUI jen další běžící aplikace, nikoliv systémová součást.

Linux vyniká pokud ho ovládáte z příkazové řádky (CLI). Zadávání textových příkazů se může zdát zastaralé, ale opak je pravdou. Konec konců, většina programovacích jazyků je stále ještě založena na textovém zdrojáku. A CLI má mnoho výhod nad GUI: je přesné a automatizovatelné. A je také perfektní pro vzdálený přístup, protože má minimální nároky na dostupné zdroje.

Možná nejdůležitější koncept je že vše je soubor. To znamená, že i zařízení – jako třeba pevný disk – jsou dostupná jako obyčejné soubory, které můžete číst i zapisovat. Ve skutečnosti to zjednodušuje psaní nástrojů a umožňuje to lepší kontrolu nad systémem. Ale tím to nekončí: i informace o systému – třeba seznam běžících programů – jsou dostupné jako speciální soubory. Což je úžasná věc pro programátora: stačí mu vlastně jen souborové API (jako je Pythoní with open("soubor", "r") as f) aby si mohl zjistit libovolnou informaci o systému.

Linux je více uživatelský systém. Nejen že dovolí vytvářet uživatelské účty, ale více uživatelů může používat systém naráz. Mohou být připojeni vzdáleně, ale je dokonce možné, aby dva lidé seděli u stejného počítače: stačí dvouhlavá grafická karta a dvě klávesnice.

Linux se také pyšní podporou pro vzdálený přístup. Dokud je váš systém připojen k síti, lze s ním pracovat vzdáleně. To zjednodušuje správu serverů, ale může se to hodit i pro počítač zapomenutý doma. Pro vzdálený přístup je obvykle preferována příkazová řádka, ale je možné se připojit i graficky. Dokonce se můžete připojit graficky několikrát do různých prostředí na tomtéž počítači.

Linux zjednodušuje správa instalovaného software pomocí balíčků. Ty můžeme trochu srovnat s přístupem, který znáte z chytrých telefonů. Zjednodušují instalaci, protože nemusíte klikat skrz žádného průvodce. A správce balíčků pak udržuje celý systém aktualizovaný.

Možná nejdůležitější vlastností je, že uživatel skutečně řídí svůj počítač. Filozofií Linux je, že uživatel je dostatečně zdatný na to, aby mohl svůj počítač ovládat a Linux na oplátku informace neskrývá a nedělá věci bez vašeho vědomí. Můžete ho nastavit, aby prováděl věci automaticky, ale je to vždy další vrstva na základním nastavením. Nepotřebujete speciální nástroje, abyste ho prozkoumali. Na jednu stranu vás to může vystrašit, ale je to vlastně zábava. Pochopíte mnohem lépe jak počítač i software fungují pokud budete používat Linux.

Text výše zhruba odpovídá tomu co bychom pro vás typicky připravili jako _čtení před cvičením. Dozvěděli jste se o nových konceptech, nových pojmech a připravili jsme si tím kontext pro praktickou část cvičení. Prosím, zkuste si tyto texty skutečně číst – nesklouzávejte k tomu, že je jen prolétnete. Některé koncepty budeme potřebovat později a budeme předpokládat, že si je pamatujete.

První kroky v Linuxu

Dále budeme už předpokládat, že máte připravený váš USB disk nebo spuštěný virtuální stroj. Informace ke spuštění počítače z USB jsou na jiné stránce.

Vratťe se na tuto stránku až budete mít nastartováno z USB (nebo alternativy) abyste mohli ve cvičení pokračovat. Klidně si i doneste počítač na cvičení pokud budete potřebovat pomoc s bootováním.

Výběr pracovního prostředí

Jakmile nastartujete z USB disku, můžete si vybrat vaše pracovní prostředí (tzv. desktop environment).

Ve většině operačních systémů není příliš na výběr, jak budete ovládat grafické rozhraní. V Linuxu je větší možnost volby. Škála začíná na komplexních prostředích se spoustu efektů a končí na velmi asketických, které ani nepotřebují k ovládání myš. A samozřejmě jsou spousty někde mezi tím.

Vzpomeňte si, že tohle je poměrně jednoduché, protože GUI je řízeno normální aplikací: není pevnou součástí systému.

Ve vaší instalaci si můžete vybrat z šesti různých prostředí:

GNOME, Plasma (a.k.a. KDE), Xfce a LXDE jsou zástupci mainstreamu a jejich ovládání vám bude blízké pokud přecházíte z Windows nebo Macu. Výše zmíněné pořadí zhruba odpovídá množství vizuálních vychytávek a efektů (a také hardwarovým nárokům).

Openbox a i3 jsou speciální prostředí protože nemají např. tradiční task bar se seznamem oken a vyžadují trochu více trpělivosti, než se s nimi sžijete. Na druhou stranu, investovaný čas – především u i3, které se ovládá jen klávesnicí – se vrátí mnohem větší efektivitou při práci na počítači.

Zkuste si všechny. Přihlaste se do daného prostředí, zjistěte, jak se spouští aplikace a rozhodněte se, které se vám nejvíce líbí. Pochopitelně jde každé prostředí dále upravit – od barevného schématu až po klávesové zkratky.

Pokud se nemůžete rozhodnout, Plasma je určitě dobrá volba pro ex-uživatele Windows s výkonnějším strojem. Podobně tak LXDE, které poběží i na slabším počítači. A až je budete používat měsíc, přepněte se na i3 a staňte se mistry.

Výběr aplikací

Jakmile si vyberete desktopové prostředí, podívejte jaké další aplikace budete potřebovat.

Především se podívejte po textovém editoru. Několik populárních editorů je už předinstalovaných jak můžete vidět na následujícím screenshotu.

Další editory jsou dostupné v režimu příkazové řádky: o nich budeme mluvit na dalším cvičení.

Základy správy softwarových projektů

Přepneme na vedlejší kolej a chvíli si budeme povídat o softwarových projektech obecně.

Moderní software je málokdy produktem jednoho člověka. Mnohem častěji je vyvíjen v obrovských týmech, které jsou rozprostřeny přes různé časové zóny či dokonce kontinenty.

Vývoj v takovém týmu vyžaduje, aby každý vývojář měl přístup ke zdrojovému kódu (resp. jeho poslední verzi) a také, aby spolu mohli členové týmu efektivně komunikovat.

Je mnoho možností: od e-mailu a sdílených síťových složek až po mnohem sofistikovanější řešení. Abychom vás trochu připravili na reálný svět, budeme tu používat jeden z těch sofistikovanějších nástrojů a to GitLab.

GitLab je místo, kde vývojáři sdílí kód, ale také udržují seznam nahlášených chyb, dokumentaci nebo prostor, kde mohou svůj kód automaticky testovat. A protože může být integrován ještě s řadou dalších nástrojů, pro mnoho firem i open source projektů je GitLab centrálním místem pro vývoj jejich produktu.

Jeho výhody můžete využít i pokud pracujete sami. Třeba tak, že bude fungovat jako chytrá záloha pro vaše zdrojáky.

GitLab bude centrálním prvkem pro mnoho úloh i na tomto předmětu. Budete přes něj odevzdávat úlohy a je tu také Forum kde se můžete ptát.

GitLab není jediný svého druhu. My se zaměříme na GitLab, ale obecné principy jsou využitelné i v dalších nástrojích.

Nástroje pro správu verzí

Těžištěm každého softwarového projektu je jeho zdrojový kód. Bez něj není co spustit. Takže existujíc speciální nástroje zaměřené jen na správu zdrojového kódu jako takového.

GitLab jako takový je postaven okolo Gitu. Git je nástroj pro správu verzí. Polopaticky to znamená, že sleduje změny ve vašich souborech a pamatuje si předchozí stav (verze). To má tu obrovskou výhodu, že můžete bez obav upravovat váš kód a kdykoliv se vrátit k předchozí verzi.

Na Git jako takový se zaměříme v některém z dalších cvičení. Zatím to berte jako úvodní seznámení, abyste mohli začít používat Git pomocí GUI v GitLabu.

Git vždy pracuje nad konkrétním adresářem, který typicky obsahuje jeden projekt. Uživatel pak musí Gitu sdělit, které soubory mají být sledovány a kdy vytvořit novou verzi.

Git nesleduje všechny soubory, protože typicky není potřeba verzovat kompilované soubory (protože ty můžete vždy vytvořit znovu). Na příklad, pro Javovský projekt nebudete verzovat *.class soubory protože ty jdou snadno vytvořit z *.java souborů překladem (totéž platí pro *.pyc soubory Pythonu nebo *.o pro C++). Další příklad může být, že nebudete verzovat PDF export z LibreOfficího dokumentu (dlužno dodat, že zrovna na *.odt souborech nevynikne plný potenciál verzování s Gitem).

Git nevytváří verze automaticky protože každá verze má zachycovat rozumný stav projektu. Na příklad tedy vytvoříte novou verzi (občas též revizi, revision) pokud přidáte novou funkci (česky též fíčuru). Nebo pokud opravíte chybu. Nebo když opravíte překlep v dokumentaci. A nebo pokud potřebujete zazálohovat práci než odejdete na oběd :-).

Umožní vám to vytvářet smysluplnou historii projektu, která je rozumně velká třeba na tzv. code review ale neuchovává každý malý překlep. Verzování nenahrazuje undo/redo vašeho editoru, protože funguje o jednu vrstvu výše.

A pokud je Git nasazen na týmové projekt, umožní snadnou spolupráci protože bez problémů automaticky zkombinuje nekonfliktní změny. Na příklad, pokud Alice provede změnu do souboru alpha.txt a Bob v ten samý okamžik změní soubor bravo.txt, Git umožní Carol abyste si stáhla změny od obou bez obav o to, že některá změna přepíše jinou.

Tohle si sami vyzkoušíte v některém z pozdějších cvičení, zatím budete používat jen webové GUI. A protože budete jediní uživatelé daného projektu, nemusíte se případných konfliktů v obsahu bát.

Používání MFF GitLabu

Na tomhle předmětu budeme používat fakultní instanci GitLabu na adrese https://gitlab.mff.cuni.cz. Prosím, nepleťte si ji z instancí na https://gitlab.com, kterou můžete bez problémů používat, ale není nijak spjatá s tímto kurzem.

Pro přihlášení využijte přihlašovací údaje z CASu, tedy tytéž co fungují do SISu. Váš účet bude aktivován po první přihlášení.

Prosím, aktivujte si váš účet teď, pokud jste tak ještě neučinili. Pokud máte s přihlášením problém, prosím, přečtěte si sekci otázek a odpovědí.

První kroky v GitLabu

Abyste si GitLab rychle vyzkoušeli (ještě s ním budeme více pracovat v dalších cvičeních), vytvořte si nový projekt (vytvořte Blank project). Musíte vyplnit jméno, tzv. slug (krátké jméno, které se objeví v URL) a jeho viditelnost. V ukázkových screenshotech vidíte, že jsme vytvořili projekt pro zdrojáky z úvodního kurzu programování. Nezapomeňte zaškrtnout, že chcete vytvořit projekt s README.

Teď otevřete Web IDE, které obsahuje jednoduchý editor pro on-line úpravu souborů se zdrojáky.

Pomocí ikon a následujících screenshotů vytvořte nový soubor hello.py a vložte do něj nějaký jednoduchý Pythoní program.

Teď vytvoříme tzv. commit. Commit v Gitu zachytí aktuální stav projektu a můžeme na něj nahlížet jako na pojmenovanou verzi. Jakmile vytvoříte v Gitu commit, Git se vás zeptá na tzv. commit zprávu (commit message), kde byste měli popsat, jaké změny jste provedli.

Velmi doporučujeme článek Jak psát commit zprávy v Gitu (anglicky) od Chrise Beamse, které obsahuje zajímavé tipy a doporučení pro napsání dobré commit zprávy. A určitě se k tomuto článku vraťte, až budete mít Git více zažitý, protože bude dávat ještě o něco větší smysl.

Zatím budeme dělat změny přímo v tzv. master větvi. Koncepty větví si vysvětlíme později, zatím je berte jako magii, která prostě funguje :-).

To, co je důležité si zapamatovat je, že commit vlastně přiřadí jméno stavu vašeho projektu (revizi). Takže často uvidíte jména jako Přidány ikony do menu, Opravy překlepu v tlačítku nebo Dokončení slovenského překladu. Jak vidíte, odkazují se na stav projektu.

Teď se z GitLabu odhlašte.

Sami si zkuste se znovu do GitLabu přihlásit, najít váš projekt a vytvořit nový soubor. Vložte do nějak nějaký zdrojový kód. Všimněte si, že když kliknete na název souboru tak se objeví jeho obsah a opět odkaz na úpravy.

Odevzdávání úloh

GitLab budeme používat na odevzdávání a vyhodnocování vašich úloh.

Pro každého z vás vytvoříme projekt v tomto podstromu, který bude mít váš CASový login ve jméně.

Z technických důvodů můžeme projekt vytvořit až poté, co se do GitLabu poprvé přihlásíte. Zatím tyto projekty vytváříme semi-automaticky, takže možná budete muset počkat do dalšího dne, aby se váš projekt objevil.

Každá úloha bude mít předepsané jméno souboru, kam se má uložit řešení. Odevzdání pod jiným jménem (nebo do jiné složky) znamená, že vaše řešení neuvidíme (tj. ho neuznáme jako odevzdané). Do předmětu je zapsáno okolo 300 studentů a spousty věcí musíme automatizovat: z tohoto pohledu skutečně nemůžeme prohlížet váš projekt a tipovat, kam jste mohli řešení uložit.

Názvy souborů na Linuxu (a v GitLabu též) rozlišují velikost písmen.

Každé odevzdání – přesněji řečeno, každý commit – spustí automatické testy na vašem repozitáři. Tyto testy zkontrolují, že jste řešení odevzdali a též zkontrolují, že funguje.

Vysvětlení výsledků automatických testů

Až si otevřete váš předmětový projekt tak uvidíte, že vedle poslední commit zprávy je červená nebo zelená ikonka, které reprezentuje stav projektu.

Ve skutečnosti můžete ještě zahlednout ikonu pro testování probíhá, ale ta bude brzy nahrazena skutečným výsledkem.

Klepnutím na ikonu se dostanete ke skutečným výsledkům testů. Jsou tam dvě skupiny – kvízy před cvičením a úlohy po cvičení.

Ať už otevřete kteroukoliv z nich, uvidíte přepis akcí, které pro vás GitLab provedl.

Pro nás důležitá část začíná s bin/test.sh následována textem podobným tomu následujícímu.

1..2
ok 1 01/factor.py - submitted (0)
not ok 2 01/factor.py - number 12 (20)
# -- output differs --
# expected (3 lines):
#   2
#   2
#   3
# actual (1 line):
#   8
# --

Tohle je výstup v tzv. Test Anything Protocol (TAP) který říká, že proběhly dva testy (1..2) a první z nich byl v pořádku (ok 1 ...) zatímco druhý selhal (not ok 2 ...).

Zpráva pro procházející test je poměrně krátká – říká jen jméno testu (01/factor.py - submitted (0)). Budeme používat tento formát jména testu pro určení, že soubor je v projektu vůbec přítomen.

Pro selhaný test zpráva obsahuje opět jméno testu (01/factor.py - number 12 (20)) po kterém následuje popis chyby. TAP používá syntaxi Pythoních komentářů pro řádky s detaily o chybě (#).

Tam si můžete všimnout, že test očekával, že program vypíše 3 řádky obsahující 2, 2 a 3. Místo toho ale program vytiskl jediný řádek s hodnotou 8.

To by vám mělo poskytnout dostatek informací k nápravě. V tomto případě byl program napsán v Pythonu, takže ho můžete pochopitelně odladit na svém počítači.

Prosím, nepoužívejte GitLab jako vaši vývojovou platformu. Vždy vyzkoušejte a odlaďte vaše řešení lokálně – GitLab nemůže sloužit jako náhrada chybějící instalace Pythonu na vašem počítači. Úlohy na GitLabu jsou spouštěny na sdíleném stroji – nechte jej k dispozici i ostatním uživatelům.

Každý test také obsahuje číslo v závorkách za názvem testu (tady je to 0 a 20). Toto číslo zhruba odpovídá počtu bodů za tento test. Při vyhodnocování vašich řešení jej můžeme lehce upravit, pokud to uznáme za vhodné. Rozhodně neplánujte vaše řešení tak, abyste s těmito body těsně prošli. Jejich účel je zobrazit relativní důležitost testu, nikoliv přesný počet bodů.

Pokud je číslo v závorkách záporné, odpovídá počtu bodů, které odečteme, pokud test selže. To budeme používat pro testy kontrolující dávno známé věci (např. že váš kód nepoužívá v Pythonu import *).

GitLab vám také pošle e-mail vždy, když některá z těchto automatických akcí selže (v terminologii GitLabu jde o pipeline a job). Notifikace lze vypnout, ale nezapomeňte si pak výsledky zkontrolovat ručně.

Hodnocené úlohy pro toto cvičení (deadline: 27. únor)

První úloha je automaticky testovaná GitLabem, druhá nikoliv.

01/factor.py (50 bodů)

Napište program v Pythonu, která faktorizuje číslo na součin prvočísel. Číslo bude načteno ze souboru input.txt, který bude obsahovat jen jedno číslo. Pro neplatný vstup (záporné číslo apod.) musí program vypsat pomlčku -.

Každé prvočíslo bude na samostatné řádce.

Můžete se také podívat na výstup z testů, pokud chování v některých situacích není zřejmé z popisu výše.

Důležité: nenahrávejte soubor input.txt do vašeho projektu. Tento soubor je automaticky vytvořen při testování (ale, pochopitelně si jej vytvořte lokálně, když budete vaše řešení testovat).

Důležité: první řádka s #! má svůj důvod a musíte ji tam nechat (vysvětlíme později). Stejně tak ponechejte použití main() a podmínku s __name__, protože jde o správnou přípravu na modulární kód.

Poznámka: uznáváme, že návrh programu je chybný, protože vstup by měl přijít jinou cestou. Později se k němu vrátíme, až budeme vědět více o standardních vstupech a výstupech a o argumentech programu.

Tajná issue na Foru (50 bodů)

Issue na GitLabu je hlášení, které obvykle popisuje existující chybu v projektu. My budeme issue používat i pro off-line komunikaci v tomto předmětu.

Když je issue označena jako Confidential (řekněme, tajná), tak ji uvidí jen uživatelé s určitým oprávněním. V případě našeho Fora ji uvidí jen cvičící.

Tato úloha po vás chce vytvořit Confidential Issue na Foru s následujícími vlastnostmi.

  • Název issue musí být 01/issue (prosím, žádné další písmenka či znaky).
  • Issue přiřaďte uživateli horkv6am (Vojtěch Horký).
  • Připojte k issue soubor /etc/os-release z vašeho Linuxu (použití počítače z laboratoře v IMPAKTu je též v pořádku). Odkaz na přílohu v popisu issue musí být /etc/os-release.
  • Pod odkaz na přílohu /etc/os-release vložte obsah souboru /proc/loadavg jako zdrojový kód (najděte si Code block formatting v nápovědě). Budete muset tento soubor otevřít v textovém editoru, abyste mohli zkopírovat jeho obsah. Nebuďte překvapeni tím, že jeho velikost je 0 a přesná obsahuje zajímavý obsah. Opět, prosím, použijte hodnotu z vašeho počítače nebo z počítače v učebně.
  • Pod obsah souboru /proc/loadavg napište jeden odstavec, ve kterém popíšete, jaké (Linuxové) prostředí jste si vybrali a proč. Odstavec napište v celých větách.
  • Nechte issue otevřenou (zavřeme ji po deadline).

Issue bude tedy před odesláním vypadat na Preview záložce nějak takto.

Důležité: ujistěte se, že jde o confidential issue. Veřejné issue odesílají notifikace všem členům projektu. V tomto případě tedy všem vašim spolužákům, kteří by tak dostali e-mail, o který určitě neměli zájem.

Učební výstupy

Znalosti konceptů

Znalost konceptů znamená, že rozumíte významu a kontextu daného tématu a jste schopni témata zasadit do většího rámce. Takže, jste schopni …

  • vysvětlit, proč není grafické uživatelské rozhraní pevnou součástí Linuxu

  • vyjmenovat několik druhů objektů které jsou obvykle potřebné pro softwarové projekty (kromě zdrojového kódu)

  • vysvětlit základní (vysokoúrovňové) operace verzovacích nástrojů

  • vysvětlit, jaké jsou možnosti, pokud má více lidí spolupracovat na zdrojovém kódu

Praktické dovednosti

Praktické dovednosti se obvykle týkají použití daných programů pro vyřešení různých úloh. Takže, dokážete …

  • nastartovat vlastní počítač do Linuxu (buď použitím USB disku nebo přes virtuální stroj)

  • přihlásit se do grafického linuxového prostředí

  • přihlásit se do fakultní instance GitLabu

  • vytvořit nový projekt na GitLabu

  • vytvořit nový soubor v GitLabovém projektu a uložit změny (vytvořit commit) (ve webovém rozhraní GitLabu)

  • upravit existující soubory v GitLabovém projektu (ve webovém rozhraní GitLabu)

  • upravit nastavení upřednostňovaného (Linuxového) prostředí