Strony pracowników Wydziału Informatyki Politechniki Białostockiej

Systemy operacyjne 2 – pracownia specjalistyczna

Systemy operacyjne 2 – pracownia specjalistyczna

Plan zajęć

 
1.  Wprowadzenie do narzędzi programisty (głównie make i gcc) oraz narzędzi diff i patch. Zapoznanie się z emulatorem Microsoft Virtual PC 2004.
2.  Konfiguracja i kompilacja jądra systemu, wprowadzanie prostych modyfikacji do jądra.


Jądro konfigurujemy poleceniem:
make menuconfig
Kompilacja jądra przy pomocy poleceń:
make depend
make bzImage
make modules
make modules_installInstalacja jądra: z katalogu ./arch/i386/boot przegrać do katalogu plik bzImage. Uruchomić:
liloPrzy starcie systemu z menu menadżera ładowania lilo należy wybrać opcję New.

Usunięcie plików tymczasowych, w celu wygenerownia patch’a
make distclean

 

Zadanie dla studentów.
Zmodyfikuj jądro tak aby przy starcie wypisywało komunikat to jest moje jądro. Odpowiednie wywołanie funkcji printk możesz umieścić np. w pliku ./drivers/block/ide.c (sterownik kontrolera dysku typu IDE) w funkcji ide_init. Skompiluj i uruchom zmodyfikowane jądro oraz wygeneruj (a następnie zaaplikuj) patch.

Praca domowa.
Umieść kod komunikatu w odzielnej funkcji, np void komunikat(void) znajdującej się w odrębnym pliku, np. komunikat.c. Funkcję tą należy wywołać z ide_init. Wskazówka: musisz zmodyfikować plik Makefile w katalogu ./drivers/block/

 

3.  Zmodyfikuj kod sterownika ring (patch do jądra znajduje się tutaj) przedstawiony na wykładzie, tak aby:

  1. Sterownik obsługiwał nie jeden, ale cztery niezależne bufory pierścieniowe, rozróżniane za pomocą numeru podrzędnego urządzenia.
  2. Sterownik obsługiwał polecenie ioctl, pozwalające zmienić dynamicznie długość bufora. Długość bufora może być dowolną liczbą z przedziału [256B-16KB]. Podanie innej długości jest błędem. Zmiana długości bufora powinna być poprawnie wykonana, nawet gdy znajdują się w nim jakieś znaki (uwaga na synchronizację: kmalloc może spowodować uśpienie procesu i przełączenie kontekstu).
  3. Inna komenda ioctl powinna pozwalać na odczyt długości bufora.
  4. Sterownik mógł zostać skompilowany jako moduł jądra.
4. Ciąg dalszy poprzedniego zadania. Rozdanie (ew. losowanie tematów projektu nr 1). Projekt ten dotyczy implementacji sterownika urządzenia blokowego lub znakowego.

5. Odbiór zadania. Początek realizacji projektu nr 1.
6. Projekt nr 1
.
7. Projekt nr 1.
8. Projekt nr 1. Rozdanie tematów projektu nr 2.
9. Odbiór projektu nr 1. Początek realizacji projektu nr 2.
10. Projekt nr 2.
11. Projekt nr 2.
12. Projekt nr 2.
13. Projekt nr 2.
14. Projekt nr 2.
15. Odbiór projektu nr 2
Uwagi:Obydwa projekty są wykonywane w zespołach maksymalnie dwuosobowych. Po oddaniu projektu przewiduję rozmowę z każdym z zespołów. Wynik tej rozmowy może prowadzić do znacznej modyfikacji (niestety prawie zawsze na niekorzyść) liczby przyznanych punktów.

Ocenianie: Zadanie z zajęć nr 3:  15pkt, projekt 1: 37pkt, projekt 2: 48 punktów (punkty ujemne: nieusprawiedliowiona nieobecność, opóźnione oddanie zadania lub projektu). Łącznie 100 pkt. Przeliczenie na oceny:

 

[90pkt, 100pkt] => bdb
[80pkt, 90pkt) => db+
[70pkt, 80pkt) => db
[60pkt, 70pkt) => dst+
[50pkt, 60pkt) => dst

jednakże gwarantuję dst każdemu studentowi który odda oba projekty zrealizowane na dopuszczalne minimum.

 
Opracował: Wojciech Kwedlo
× W ramach naszego serwisu www stosujemy pliki cookies zapisywane na urządzeniu użytkownika w celu dostosowania zachowania serwisu do indywidualnych preferencji użytkownika oraz w celach statystycznych.
Użytkownik ma możliwość samodzielnej zmiany ustawień dotyczących cookies w swojej przeglądarce internetowej.
Więcej informacji można znaleźć w Polityce Prywatności
Korzystając ze strony wyrażają Państwo zgodę na używanie plików cookies, zgodnie z ustawieniami przeglądarki.
Akceptuję Politykę prywatności i wykorzystania plików cookies w serwisie.