---
# System prepended metadata

title: Mimiker dla dyplomantów
tags: [mimiker]

---

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