# 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 * ![](https://i.imgur.com/kIoqHni.png) * ![](https://i.imgur.com/LYFWJUP.png) ::: * 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. :::