Tradycyjnie podczas zajęć z Systemów operacyjnych omawia się zarówno
ogólne zagadnienia, jak i przykłady rzeczywistych systemów. Niestety niewiele
jest podręczników, które opisywałyby takie systemy wystarczająco szczegółowo.
Ponadto taki przegląd rzeczywistych systemów ma sens wówczas, gdy
są one dostępne do badań i eksperymentów.
Z chwilą powstania Linuksa, którego źródła są ogólnie dostępne, pojawiła się jedyna w swoim rodzaju okazja eksperymentowania z rzeczywistym systemem, niezwykle popularnym na całym świecie (choć głównie w środowiskach akademickich). Można czytać i analizować źródła systemu, a nawet modyfikować je i badać efekty tych modyfikacji. Można nawet zaangażować studentów do prac nad dalszym rozwijaniem systemu.
Projekt LabLinux został zrealizowany w roku akademickim 1997/98 przez studentów trzeciego roku informatyki Uniwersytetu Warszawskiego, w ramach zajęć z Systemów operacyjnych, które miałam przyjemność prowadzić. Głównym celem projektu było wciągnięcie studentów do prac, które pozwoliłyby im poznać dokładnie budowę i działanie Linuksa, głównie poprzez czytanie i analizę kodu źródłowego. Efektem ubocznym ich pracy było przygotowanie materiałów dydaktycznych do zajęć laboratoryjnych z Systemów operacyjnych, które mogłyby być wykorzystywane zarówno samodzielnie przez studentów, jak i w trakcie zajęć.
Studenci biorący udział w projekcie (66 osób) zostali podzieleni na 4 grupy tematyczne: zarządzanie procesami, zarządzanie pamięcią, podsystem wejścia-wyjścia, system plików. W ramach każdej grupy studenci mieli za zadanie wspólnie opracować zagadnienia wchodzące w skład tematu i przygotować zestaw opisujących go stron HTMLowych. Styl i forma opracowania tematu miały umożliwiać wykorzystanie materiałów podczas zajęć laboratoryjnych. Materiały zawierają więc omówienie struktur danych (przeznaczenie, związki logiczne), opis zastosowanych algorytmów, a także skomentowany kod źródłowy Linuksa. Dlatego w ramach każdego rozdziału znajduje się Przewodnik po strukturach danych modułu oraz Przewodnik po plikach modułu. Kilku studentów przygotowało materiał wprowadzający, który miał ułatwić czytelnikowi materiałów samodzielną pracę ze źródłami systemu, w szczególności samodzielne rekompilowanie i rekonfigurowanie jądra. Ponadto każdy student miał zaproponować zadanie laboratoryjne ze swojego tematu (punkt Zadania praktyczne). W materiałach udostępnianych w sieci znajduje się jedynie specyfikacja zadania, nie została natomiast upubliczniona druga część opisu zadania, a mianowicie wskazówki i uwagi nt sposobu jego rozwiązania.
Materiał przygotowany przez studentów był w kolejnym roku akadamickim, 1998/1999, wykorzystywany w ramach zajęć laboratoryjnych z Systemów operacyjnych. Studenci w trakcie zajęć poznawali różne moduły funkcjonalne jądra Linuksa, a jako dwa (spośród czterach realizowanych zadań) mieli:
Praca ze studentami nad projektem LabLinux sprawiła mi dużą satysfakcję. Myślę, że efekty ich pracy, mimo pewnych niedociągnięć, są imponujące. Jestem przekonana, że oni sami dużo się w trakcie realizacji projektu nauczyli, a także, że przygotowane materiały będą również przydatne innym.
Wszystkim studentom serdecznie dziękuję.
Janina Mincer-Daszkiewicz
Instytut Informatyki Uniwersytetu Warszawskiego