Uwagi  nt projektu LabLinux


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:

Czytając przygotowane strony należy pamiętać o trybie i warunkach ich powstawania. Mają one 66 autorów, stąd niejednorodność stylu, a często i formy graficznej. Powstawały w krótkim czasie, więc są miejscami niedopracowane stylistycznie, gramatycznie, a nawet (niestety) ortograficznie. Studenci pracę wykonali z mniejszym lub większym zaangażowaniem, stąd nierównomierne potraktowanie poszczególnych zagadnień, a także brak niektórych stron (por.  komunikat ). Wiele stron jest wartościowych i dopracowanych, ale zdarzają się i takie z błędami merytorycznymi. Studenci za swoją pracę byli oceniani, lecz otrzymanie gorszej noty nie wiązało się z koniecznością poprawiania stron.

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