Semestrální práce

Týmy

Možná zadání

Upozornění, doporučení a časté chyby při realizaci i odevzdávání

Správce virtuálních strojů

Povinné příkazy shellu

Každý z uvedených příkazů musí obsahovat jednodnotnou možnost získání nápovědy o funkci, možných parametrech atd.

DALŠÍ ROZŠÍŘENÍ (ohodnocené dalšími body)

  1. Napište si terminálové okno.
  2. Navrhněte gramatiku pro shell.
  3. Navrhněte a implementujte syntaktický analyzátor.
  4. Navrhněte strukturu správce virtuálních strojů.
  5. Udělejte propojení na souborový systém, napište váš cat a ukažte jeho funkčnost.
  6. Doplňte model o vykonávání příkazů shellu v hierarchii virtuálních strojů - init, login, shell, program xyz, ...
  7. Přidejte přesměrování a roury.
  8. Napište další programy pro příkazy shellu, logout, shell, date, ...
  9. Model můžete rozšířit o send a receive mezi uživateli, vykonávání v pozadí, příkazy bg a fg.
  10. K historii příkazů uchovávejte i adresáře, ve kterých byly použity
  11. Dokončete detaily.
  12. Testujte.

Ukázka demonstruje jak se v Javě programují některé věci a shell z pohledu UI, NE z pohledu jak má být semestrální práce naprogramována.

Konvence v Javě

Shell pro Unix/Linux

  1. Podle hloubky vašich dosavadních znalostí zkuste malé programy pro základní systémová volání (byla na přednášce).
  2. Navrhněte svou gramatiku pro shell (povinné cvičení).
  3. Navrhněte syntaktický analyzátor.
  4. Implementujte alespoň část syntaktického analyzátoru (minimum rozpoznání příkazu).
  5. Použijte váš syntaktický analyzátor a napište shell, který vykoná příkaz.
  6. Implementujte dokončování klávesou Tab (funkčnost viz bash).
  7. Přidejte přesměrování vstupu a výstupu a kolonu (kostra byla na přednášce).
  8. Napište vlastní verzi programů pro vybrané příkazy shellu.
  9. Přidejte vykonání programu na pozadí.
  10. Přidejte příkazy fg a bg pro přepínání mezi vykonáváním v popředí a na pozadí.
  11. Uchovávejte historii příkazů, případně i s adresáři, ve kterých byly použity
  12. Dokončete detaily.
  13. Testujte.

Podle vlastní iniciativi můžete doplnit více podrobností. Testovacím prostředím pro shell bude stroj eryx.zcu.cz. Všechny jiné, než zdrojové soubory budou před testováním smazány. V rámci odevzdání je TŘEBA vytvořit buď:

  1. dva dávkové soubory: jeden pro kompilaci a druhý pro spuštění.
  2. pokud je výsledkem jeden jediný spustitelný souboru, pak stačí  makefile - kompilace bude provedena spuštěním make

Volné téma

V případě zájmu o vlastní zadání kontaktujte cvičícího. Nutná podmínka vlastního zadání je předvedení funčnosti v prostorách KIVu.

Forma odevzdání

Platí pouze pro první dvě zadání. Ostatní zadání budou řešena individuálně po dohodě s cvičícím.

Skript pro překlad

Vyberte si jednu z následujících možností.

Program javac bude obsažen v systémové proměnné path. O ANT se ví, ale ze specifických důvodů není jednou z možností.

Skript pro spuštění

Vyberte si jednu z následujících možností.

Program java bude obsažen v systémové proměnné path.

Dokumentace

Adresářová struktura

Odevzdání