# Mimiker: cele na 2020/21-L
###### tags: `mimiker`
* Zamknięcie prac nad kodem: **28 czerwca 2021**
* Deadline na przygotowanie prezentacji: **2 lipca 2021**
## Cel
Interaktywna sesja na RPi3 z podczepionym monitorem, klawiaturą i myszą. Scenariusz prezentacji:
1. Włączamy RPi3.
2. Program `init` startuje emulator terminala `st`.
3. Program `login` prosi nas o nazwę użytkownika i hasło.
4. Prezentacja powłoki systemowej `ksh`:
- job control i lista procesów,
- sprawdzenie wieloużytkownikowości,
- wpisywanie poleceń korzystających z potoków,
- pokazanie pseudoterminali w akcji `script`.
5. Używając `atto` edytujemy plik w `lua` i uruchamiamy przy pomocy interpretera.
6. Włączamy grę `tetris` i prezentujemy możliwości terminala.
7. Pokazujemy dokumentację do projektu.
Opcjonalnie:
1. System plików na urządzeniu pendrive USB lub karta SD.
2. Interaktywna gra `doom` w trybie graficznym.
3. Wysyłanie i odbieranie pakietów sieciowych.
## Czego najbardziej nam brakuje?
1. Urządzenia prezentującego zdarzenia z klawiatury i myszy w stylu `evdev` lub `wscons`.
2. Sterownik kontrolera hosta USB na RPi3.
3. Sterownika myszy i klawiatury USB (WiP).
4. Emulatora terminala `st` (WiP).
5. Sterownika framebuffer'a.
6. Program rozruchowy `init`.
7. Działające i przetestowane potoki.
8. Strona główna dokumentacji z opisem podsystemów.
9. Nieblokujące I/O.
## Czego brakuje nam trochę mniej?
1. Prawdziwe pliki urządzeń.
2. `mmap` dla pamięci urządzeń.
## Co dobrze byłoby mieć?
1. Szybki `fork` i `mmap` działający dla plików.
2. Uproszczony odpowiednik `kqueue`.
3. Warstwy buforującej `bread` i `bwrite` dla systemu plików.