Laboratorium Systemów Operacyjnych

Laboratorium systemów operacyjnych służy zdobyciu przez studentów praktycznej wiedzy i doświadczeń dotyczących programowania systemowego, w tym programowania jądra systemu operacyjnego. Wiedza przekazywana jest w ramach przedmiotu Systemy operacyjne (SOI). Zadania realizowane są w środowisku systemu Linux, natomiast modyfikacje i rozszerzenia jądra realizowane są w środowisku małego uniksa, czyli w środowisku systemu operacyjnego Minix, charakteryzującego się wydajnym procesem kompilacji jądra. Program laboratorium obejmuje następujące zagadnienia: programowanie w języku interpretera poleceń, oprogramowywanie nowych funkcji systemowych jądra, modyfikację algorytmów szeregowania, komunikację międzyprocesową w środowisku uniksowym, tworzenie własnego systemu plików. Przedmiot Systemy Operacyjne (SOI) ma także wersję anglojęzyczną w postaci przedmiotu English Operating Systems (EOPSY).

Laboratorium systemów operacyjnych wykorzystywane jest również do realizacji rozbudowanych złożonych projektów przedmiotu Rozproszone Systemy Operacyjne (RSO). W ramach działań projektowych tworzone są grupy 7-9 osobowe, które wytwarzają w środowisku systemu Linux bądź z dostępem za pośrednictwem systemu Linux  rozproszone rozwiązania informatyczne charakteryzujące się m.in.: zwiększoną odpornością na uszkodzenia, efektywnym wykorzystaniem rozproszonych zasobów komputerowych, prawidłowym zarządzaniem spójnością zwielokrotnionych danych, projektem i implementacją rozwiązań zapewniających właściwy poziom bezpieczeństwa tworzonych rozwiązań. Tematyka projektów każdej wiosennej edycji przedmiotu RSO jest inna. Dotąd realizowano m.in. projekty dotyczące: implementacji monitorów transakcyjnych, wykorzystania rozwiązania OpenStack, implementacji rozproszonych systemów plików, baz danych typu noSQL, usług bezpiecznej dystrybucji przetworzonej chronionej informacji, rozproszonych aplikacji wykorzystujących przetwarzanie w chmurze w środowiskach komercyjnych, wykorzystania środowiska kontenerów do realizacji aplikacji uruchamianych w chmurze.