---
# System prepended metadata

title: 'Mimiker: cele na 2020/21-L'
tags: [mimiker]

---

# 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.