Do tematu: Podsystem wejścia-wyjścia

Zadanie 11

Opis: Celem zadania jest stworzenie nowego, prostego urządzenia, które służyłoby do śledzenia zawartości struktur danych w jądrze. Dostęp do tego urządzenia byłby taki sam jak do innych urządzeń, tzn. poprzez plik specjalny (np. /dev/mydev). Napisać driver prostego urządzenia znakowego, na którym można byłoby wykonywać następujące operacje: (file_operations)

    1. nazwy i numery główne zarejestrowanych urządzeń znakowych lub blokowych (których - rozstrzyga np. flaga), na przykład każde wywołanie funkcji read będzie zapisywało do bufora użytkownika jeden numer i jedną nazwę.
    2. informować, czy konkretna operacja jest dostępna na urządzeniu (jaka ma to być operacja, można okreslić np. za pomoca flagi)

    Funkcja kończy się błędem, jeśli jako bufor podamy NULL, lub podamy większą liczbę bajtów do wczytania, niż rozmiar bufora.

  1. Urządzenie powinno być inicjowane i rejestrowane w trakcie startu systemu.
  2. Operacje na urządzeniu nie są blokujące.
  3. Do wpisywania znaków do bufora należy użyć funkcji put_user(), która wpisuje dane do przestrzeni adresowej użytkownika.
  4. Należy w istniejących plikach źródłowych zdefiniować potrzebne struktury danych oraz funkcje, stałe itp. (Nie trzeba dodawać własnych plików).
  5. Skompilować jądro. Należy także utworzyć plik specjalny dla napisanego urządzenia.
  6. Mile widziane programy testowe używające tego urządzenia.


Autorka: Anna Petryk