Duża różnica między Linuksem a Windowsem, przynajmniej jeśli chodzi o ich systemy plików i drzewa katalogów, polega na tym, że w Linuksie „wszystko jest plikiem” i wszystko pochodzi od jednego katalogu głównego. Dotyczy to również prawie wszystkich systemów operacyjnych pochodzących z Uniksa, takich jak BSD, OS X, Solaris itp., Ale powiem tylko, że „Linux” jest ogólny (jeśli nie do końca dokładny).
Ale co to oznacza w praktyce?
Windows pozwala na wiele nazwanych katalogów głównych dla swoich systemów plików. Rozumiesz je jako litery dysku C: D: E:
i tak dalej. Każdy ma root ( \
) i drzewo, które z niego pochodzi. Najnowsze wersje systemu Windows zezwalają na takie punkty montowania woluminów, w których wolumin (tak zwaną partycję) można zamontować w istniejącym pustym folderze. Więc zamiast D:
\ reprezentującego katalog główny, powiedzmy, napędu optycznego (CD / DVD / BR), możesz go zamontować na C:\Optical
. Jest to bardziej podobne do tego, co robi Linux. Istnieje także podstawowa, jednokrorzennie nazwana, obiektowa przestrzeń nazw dla wszystkiego w systemie Windows, podobna do tego, z czego korzysta Linux i jest zarządzana przez Object Managera , ale większość użytkowników rzadko widzi odniesienie, ponieważ jest to głównie do użytku z jądrem.
Linux ma jeden pierwiastek: /
. Wszystko z tego wynika i niekoniecznie musi reprezentować dysk twardy. Dyski twarde, napędy optyczne, karty pamięci, udziały sieciowe, drukarki, skanery, procesory, pamięć RAM, procesy ... wszystko jest reprezentowane gdzieś w obrębie tej pojedynczej przestrzeni nazw i może być dostępne przez dowolny proces ze standardowymi interfejsami API do zarządzania plikami, zakładając, że masz wystarczająco wysoki poziom dostępu. To, że możesz z niego czytać lub pisać, nie oznacza, że jest to plik na dysku twardym w systemie Linux. Na przykład urządzenia są zwykle montowane /dev
, więc dostęp do tam często oznacza, że rozmawiasz z urządzeniem - może to jest karta dźwiękowa, skaner lub kamera itp. Są to tak zwane pliki urządzeń . Procfsjest specjalnym „systemem plików”, który jest normalnie zamontowany /proc
i ma „katalog” dla każdego uruchomionego procesu, z plikami w każdym katalogu związanymi z takimi rzeczami, jak linia poleceń używana do wywoływania tego procesu, mapy pamięci, otwarte pliki itp. Sysfs to kolejna specjalny system plików (zamontowany na /sys
) używany do ujawnienia bogactwa informacji o działających obiektach jądra, a także może być użyty do dostrojenia działającego jądra, po prostu pisząc do określonego pliku.