Z grubsza wiem o plikach znajdujących się w katalogu / dev.
Wiem, że istnieją dwa typy (znak / blok), dostęp do tych plików komunikuje się ze sterownikiem w jądrze.
Chcę wiedzieć, co się stanie, jeśli usunę jeden - specjalnie dla obu typów plików. Jeśli usunę plik urządzenia blokowego, powiedzmy /dev/sda
, jaki efekt - jeśli w ogóle - ma to? Czy właśnie odmontowałem dysk?
Podobnie, co jeśli usunę /dev/mouse/mouse0
- co się stanie? Czy mysz przestaje działać? Czy sam się zastępuje?
Czy mogę nawet usunąć te pliki? Gdybym miał skonfigurowaną maszynę wirtualną, spróbowałbym tego.
Odpowiedzi:
Są to po prostu (specjalne) pliki. Służą one jedynie jako „wskaźniki” do rzeczywistego urządzenia. (tj. moduł sterownika wewnątrz jądra).
Jeśli jakieś polecenie / usługa już otworzyło ten plik, ma już uchwyt do urządzenia i będzie kontynuowało pracę.
Jeśli jakieś polecenie / usługa spróbuje otworzyć nowe połączenie, spróbuje uzyskać dostęp do tego pliku i zakończy się niepowodzeniem z powodu „nie znaleziono pliku”.
Zazwyczaj te pliki są zapełniane przez
udev
, co automatycznie tworzy je podczas uruchamiania systemu i na specjalnych wydarzeniach, takich jak podłączanie urządzenia USB, ale można również ręcznie utworzyć te przy użyciumknod
.źródło
makedev
polecenie, które zwykle wykonuje tę pracę, i w przeciwieństwie doudev
tego wydaje się być obecne wśród większości uniksopodobnych systemów operacyjnych.linux
iudev
/etc/init.d/makedev
. Podręcznik freebsd wspomina MAKEDEV pojawił się w 4.2BSD (od 1983 r.). Myślę, że w 1983 r. Logiczne byłobyMAKEDEV
zautomatyzowanie za pomocą init, jak w 06Pliki urządzeń są w rzeczywistości aliasami systemu plików dla pozycji w tabeli urządzeń jądra. Jeśli spojrzysz na pliki / dev z „ls -l”, zobaczysz, że mają one główny numer urządzenia i mniejszy numer urządzenia. Jeśli usuniesz pliki z systemu plików, zawsze możesz je ponownie utworzyć za pomocą odpowiednich narzędzi, aby ponownie połączyć specjalny plik z wpisem w tabeli urządzeń jądra - patrz mknod (1).
źródło
Od tego momentu dostęp do nich mają tylko programy, w których te urządzenia były już otwarte. Nie można więc odmontować systemów plików. Dzięki udev ponowne uruchomienie może przywrócić te urządzenia. Dziwny sposób na naukę unixa.
źródło