# Mimiker dla dyplomantów
###### tags: `mimiker`
### Jakub Piecuch
> Planowana obrona: 02.2021
* sesje - [notatki](https://hackmd.io/@BHmFzhNvRiO3WlOsMDGsTQ/rJksqfRSI)
* TTY - [notatki](https://hackmd.io/@BHmFzhNvRiO3WlOsMDGsTQ/rkYUb97n8)
* sterownik terminala (serial port)
* sygnały (`SIGTTOU`, `SIGTTIN`, `SIGSTOP`, `SIGCONT`) - [notatki](https://hackmd.io/@BHmFzhNvRiO3WlOsMDGsTQ/S1cOU8wIL)
* używać interruptible sleep
### Jakub Urbańczyk
> Planowana obrona: 06.2021
>
Zrobione:
* przepisanie wywołań systemowych na wersję `*at`: `openat`, `mkdirat`, `faccessat`, `unlinkat`.
* dopisanie brakujących wywołań systemowych: `chmod`, `link`
W trakcie:
* VFS name resolution
* chaos z blokadami
[Link](https://hackmd.io/GoT0M6jrQle6QKPmwrj1uA) do dokumentu z notatkami odnośnie blokad w VFS.
Do zrobienia:
* syscalls VFS
* dopisać brakujące wywołania: `statvfs`
* tmpfs
* brakuje zarządzania pamięcią
* uzupełnić interfejs `vops` i `vfsops` (co z `ucred`?)
* brakuje dokumentacji!
https://github.com/cahirwpz/mimiker/issues/564
### Paweł Jasiak
> Planowana obrona: 06.2021
* całe jądro w przestrzeni wirtualnej (MIPS)
* cała tablica stron zmapowana liniowo
* przepisanie `mips/pmap.c`
* przestrzeń jądra
* przestrzeń użytkownika
* mapowanie pamięci sterowników:
* dodanie interfejsu `bus_space_map`
* implementacja bazowana na `vmem` i `pmap_kenter`
* możliwość ustawiania bitów `NOCACHE`, `WRITETHROUGH`
:::spoiler
* 
* 
:::
* bootowanie na AArch64
* konfiguracja CPU
* pierwsza tablica stron
* pmap
* uzupłenienie `/sys/aarch64`
* zmiana kontekstu
* przerwania
Notatki:
* przygotowanie pierwszej tablicy stron: [boot.c](https://mimiker.ii.uni.wroc.pl/source/xref/mimiker/sys/aarch64/boot.c?r=6405b1ab)
* [pmap i okolice](https://hackmd.io/89tD4A9cSH2ZA1srj-SR9Q?view)
* [fdt](https://hackmd.io/gh9wUcYXT4SOfXW_LLhgJQ)
* proces bootowania na arm: [freebsd](https://hackmd.io/EG2wQn5uSqqMj8Au5l2i-w?view)
* [pmap_growkernel](https://hackmd.io/ocHDT8OXTKm3zXEin0nVpQ)
[PR](https://github.com/cahirwpz/mimiker/pulls?q=is%3Apr+label%3AAArch64+)
### Franciszek Zdobylak
> Planowana obrona: 06.2021
**Syscalls**
- [x] ustawianie i pobieranie kredencjałów
(czy są tu jakieś syscalle jeszcze np na plikach, socketach)
**Priv checks**
- [ ] otwieranie plików
- [ ] montowanie
- [ ] wysyłanie sygnałów do procesów
- [ ] sockety (bind, raw sockets, ...)
**Userspace programs**
- [x] id
- [ ] su
- [ ] login
**Crypto**
- czy to w ogóle jest w moim zasięgu (żeby chociaż hasło mieć zaszyfrowane w /etc/shadow)
##### Tematy na spotkanie
[Notatki](https://hackmd.io/gOXyaBPxR8S2X6bdMTiTlQ?view)
### Wiktor Pilarczyk
> Planowana obrona: 06.2021
notatki - [Time Service](https://hackmd.io/@m8WqvBMLTZCSgWjKDpkggg/SkUFu2e_U)
Brakujące wywołania systemowe: [missing.S](https://mimiker.ii.uni.wroc.pl/source/xref/mimiker/lib/libc/sys/missing.S)
#### Zrobione:
* dodane [gettimeofday(2)](https://netbsd.gw.com/cgi-bin/man-cgi?gettimeofday+2)
#### W trakcie:
* dodanie [settimeofday(2)](https://netbsd.gw.com/cgi-bin/man-cgi?gettimeofday+2)
### TO DO:
* w userspace powinno działać:
* [nanosleep(2)](https://netbsd.gw.com/cgi-bin/man-cgi?nanosleep+2)
* [getitimer(2) i setitimer(2)](https://netbsd.gw.com/cgi-bin/man-cgi?getitimer+2)
* w przyszłości może te wywołania:
* [timer_gettime(2)](https://netbsd.gw.com/cgi-bin/man-cgi?timer_gettime+2) i [timer_create(2)](https://netbsd.gw.com/cgi-bin/man-cgi?timer_create+2)
* [clock_gettime(2)](https://netbsd.gw.com/cgi-bin/man-cgi?clock_gettime+2)
* Pewnie nie działają:
* [sys_clock_nanosleep](https://mimiker.ii.uni.wroc.pl/source/xref/mimiker/sys/kern/syscalls.c?r=a63fdd59#547)
* Infrastruktura w jądrze:
* [kern/timer.c](https://mimiker.ii.uni.wroc.pl/source/xref/mimiker/sys/kern/timer.c)
* [kern/clock.c](https://mimiker.ii.uni.wroc.pl/source/xref/mimiker/sys/kern/clock.c)
### Materiały:
:::spoiler
* [intro(9) SYSTEM TIME CONTROL](https://netbsd.gw.com/cgi-bin/man-cgi?intro+9)
* [hardclock(9)](https://netbsd.gw.com/cgi-bin/man-cgi?hardclock+9)
* [callout(9)](https://netbsd.gw.com/cgi-bin/man-cgi?callout+9)
* [inittodr(9)](https://netbsd.gw.com/cgi-bin/man-cgi?inittodr+9) i [todr(9)](https://netbsd.gw.com/cgi-bin/man-cgi?todr+9)
* [timercounter(9)](https://netbsd.gw.com/cgi-bin/man-cgi?timecounter+9)
https://github.com/cahirwpz/mimiker/issues/363
Poul-Henning Kamp ["Timecounters: Efficient and precise timekeeping in SMP kernels"](http://phk.freebsd.dk/pubs/timecounter.pdf), Proceedings of EuroBSDCon 2002, Amsterdam, 15-17 November, 2002.
:::