Plik urządzenia
Z Wikipedii
Ten artykuł wymaga dopracowania zgodnie z zaleceniami edycyjnymi. Należy w nim poprawić: encyklopedyzacja. Po naprawieniu wszystkich błędów można usunąć tę wiadomość. |
Plik urządzenia – specjalny plik, który jest interfejsem dla sterownika urządzenia. Dzięki takiemu zabiegowi wiele rzeczy jest uproszczonych, np. chcąc wykonać kopię partycji, wystarczy skopiować plik, który ją przedstawia.
W systemach operacyjnych Unix pliki urządzeń najczęściej znajdują się w katalogu /dev. Taki plik to i-węzeł w strukturze plików z dwoma wartościami. Pierwsza wartość jest to numerem głównym urządzenia (ang. major device number) i służy do identyfikacji przez jądro systemu operacyjnego, programu, który zajmuje się obsługą urządzenia (sterownik). Druga wartość to numer podrzędny urządzenia (ang. minor device number) i jest ona wysyłana sterownikowi, aby mógł zidentyfikować z jakiego urządzenia fizycznego dane mają zostać pobrane/wysłane (np. w sytuacji gdy jeden sterownik zajmuje się wieloma urządzeniami). Oba te numery są jedno-bajtowe, razem tworzą dwu-bajtowy numer urządzenia.
Pliki urządzeń mają dwa typy:
Spis treści |
[edytuj] Tworzenie plików urządzeń
Do towrzenia urządzeń znakowych służy program mknod:
mknod mojeurzadzenie c 100 102
to polecenie stworzy plik specjalny urządzenia znakowego (mówi o tym literka c) mojeurzadzenia o numerze głównym 100 i numerze podrzędnym 102. Tworzyć plik urządzeń może jedynie root, ze względów bezpieczeństwa.
Takim poleceniem możemy odczytać informacje o pliku urządzenia:
ls -l /dev/hda
Dostaniemy np. taki rezultat:
b1rw-rw---- 1 root disk 32, 03 2007-07-03 21:43 /dev/hda4
1 litera "b" mówi o tym że jest to urządzenie blokowe
2 numer główny urządzenia
3 numer podrzędny urządzenia
4 ścieżka pliku urządzenia
[edytuj] Jak to się wszystko działa
Gdy użytkownik użyje na przykład takiego polecenia:
echo "tekst" > /dev/tty1
którego efektem ma być wysłanie tekstu na ekran konsoli pierwszej, wykonywane są następujące operacje:
1. Sprawdzane są możliwości działania użytkownika na pliku (istnienie pliku, prawa dostępu itp.)
2. Jest odczytywany numer główny z i-węzła i w tak zwanych tablicach rozdzielczych w jądrze systemu jest sprawdzany numer i odczytywany, dzięki numerowi, program (czyli sterownik) który zajmuje się fizyczną obsługą urządzenia.
3. Do programu jest przekazywany numer podrzędny odczytany z i-węzła, rodzaj operacji (w tym przykładzie - zapis) oraz dane.
4. Program analizuje otrzymane informacje, co w tym przykładzie sprowadza się do wypisania ciągu znaków na ekran konsoli.
Proces czytania odbywa się podobnie, jednak w tym przypadku gdy od programu-sterownika danego urządzenia przestaną napływać dane zatrzymuje się czytanie i jądro zawiesza program który czyta dane na czas otrzymania następnych danych od sterownika.