Zajęcia będą przez Krystiana Bacławskiego z Instytutu Informatyki UWr i Karola Gugałę z firmy [Antmicro](https://antmicro.com/). Krystian będzie odpowiadał za część teoretyczną, a Karol za część praktyczną zajęć. Zajęcia będą prowadzone zgodnie z poniższą tabelką:
| godziny | tydzień nieparzysty | tydzień parzysty |
|:-------:|:-------------------:|:--------------------:|
| xx-yy | pracownia (Karol) | wykład (Karol) |
| yy-zz | wykład (Krystian) | ćwiczenia (Krystian) |
Na ćwiczeniach będziemy omawiać najważniesze zagadnienia wprowadzające w świat jądra Linux. Omówimy tematy, których nie poruszono na przedmiocie ASK, tj. model uprzywilejowany procesora, kontrolery przerwań, MMIO, DMA, modele spójności pamięci, komunikację międzyprocesorową. Wprowadzimy Was w ograniczenia pracy w jądrze. Opowiemy o podziale jądra na dolną i górną połówkę, metodach delegacji zadań, synchronizacji wątków, algorytmach przydziału pamięci i wirtualnym systemie plików.
Na pracowniach będziemy rozwijać sterownik do sensora podłączonego przez magistralę I²C (IMU lub temperatury i wilgotności). Każde spotkanie zaczniemy od wprowadzenia do tematu, a dalej przełączymy się na pisanie kodu. Po każdych zajęciach sterownik będzie implementował coraz więcej funkcjonalności. System Linux będziemy uruchamiać pod kontrolą Renode symulującego płytkę rozwojową na procesorze RISC-V. Studenci w ramach projektu końcowego będą podpinać wybrany sensor do prawdziwego sprzętu, np. Arty-A7 100.