Na zajęciach będziemy kontynuować rozwoj prostego jądra systemu operacyjnego
dla architektury MIPS.
Zadania będą dobierane dla każdego studenta indywidualnie - zależnie od
stopnia wdrożenia w kod źrodłowy i umiejętności. Zaangażowanie w projekt jest
dobrym pomysłem, jeśli szukacie tematu pracy dyplomowej lub chcecie pochwalić
się przyszłemu pracodawcy interesującym wpisem w CV.
Celem zajęć jest dodanie do jądra narzędzi, ktore pozwolą na uruchomienie
powłoki a'la [BusyBox](https://www.busybox.net), w tym:
* komunikacji międzyprocesowej (potoki),
* obsługi sygnałow,
* grup procesow i sesji,
* emulatora terminala,
* mechanizmu oczekiwania na zdarzenia (poll),
* mechanizmu klonowania procesow (fork)
* infrastruktury do implementacji sterownikow,
* podstawowego systemu uprawnień.
Oprocz tego będziemy usprawniać i testować już istniejące komponenty, w tym:
* system zarządzania przestrzeniami adresowymi,
* wirtualny system plikow,
* narzędzia synchronizacji,
* zarządzanie pamięcią jądra,
* planistę zadań.
Dodatkowo będziemy rozwijać infrastrukturę budowania i testowania projektu.
Jako zadanie poboczne wchodzi w grę administracja serwerem przydzielonym do
projektu.
#### Materiały
* [Operating Systems Design and Implementation](http://www.pearsonhighered.com/pearsonhigheredus/educator/product/products_detail.page?isbn=0131429388)
* [The Design and Implementation of the FreeBSD Operating System](http://www.amazon.com/Design-Implementation-FreeBSD-Operating-System/dp/0321968972/)
* [FreeBSD Device Drivers: A Guide for the Intrepid](https://www.nostarch.com/bsddrivers.htm "FreeBSD Device Drivers: FreeBSD Device Drivers")
* [NetBSD Kernel Internals](http://netbsd.gw.com/cgi-bin/man-cgi?intro+9 "NetBSD Kernel Internals")