Systemy operacyjne

Wszystko jest plikiem

opublikowano przez marcinw w dniu 2010-06-07

Jak poruszać się w tych systemach? Co jest gdzie?

Paradoksalnie najpierw napomknę trochę o Windows. Obecne wersje (takie jak XP, Vista czy 7) wywodzą się z Windows NT oraz linii Windows 9x opartej na MS-DOS. Przez wiele lat użytkownicy zostali przyzwyczajeni do tego, że:

  • wielkość liter nie ma znaczenia w nazwach plików i katalogów
  • kolejne partycje i urządzenia (dyski twarde, napędy optyczne, itp.) są oznaczane literami alfabetu i dwukropkiem. I  tak stacja dyskietek to zazwyczaj "A:" lub "B:", pierwsza partycja dysku twardego to "C:", itd.
  • pełna ścieżka do katalogu czy pliku zazwyczaj składa się z nazwy urządzenia i kolejnych katalogów oddzielonych wyłącznie "\"
  • uprawnienia do katalogów i plików są teraz (na partycjach NTFS) określane z użyciem tzw. list dostępu (ACL)
  • w nazwie pliku może być tylko jedna kropka, a  fragment nazwy po niej jednoznacznie określa format

Nie jest to obecnie częściowo prawda - wielkość liter może mieć znaczenie, urządzenia mogą być udostępniane również jako kolejny "katalog", ścieżki mogą zawierać także "/", kropek może być już wiele. Dzieje się tak częściowo właśnie ze względu na zgodność z POSIX.

W systemach uniksopodobnych wygląda to następująco:

  • wielkość liter ma znaczenie
  • pełna ścieżka składa się z kolejnych katalogów  oddzielonych wyłącznie "/"
  • w klasycznych rozwiązaniach dany plik czy katalog ma swojego właściciela (najczęściej użytkownika, który go stworzył) oraz jest przypisany do tzw. grupy, w której mogą się znaleźć dowolni użytkownicy systemu. Uprawnienia określa się dla właściciela, grupy i pozostałych
  • kropek może być wiele

Nie ma dowolności w umieszczaniu plików gdziekolwiek (do tego dąży także obecnie Windows). Podam kilka przykładów:

  • "/boot" - skompilowane jądro
  • "/dev" - pliki, które plikami nie są :-). Wszystkie widoczne tam "zbiory" są bowiem tworzone dynamicznie przez jądro i zawierają dane związane z kolejnymi fizycznymi urządzeniami, takie jak np. zawartość ich pamięci (Unix próbuje wprowadzić ideę, aby dosłownie wszystko móc obsługiwać podobnie jak plik)
  • "/etc" - pliki konfiguracyjne
  • "/home" - katalogi kolejnych użytkowników  systemu, w których mogą oni składować swoje dokumenty (jego odpowiednikiem jest windowsowy "Documents and Settings", w Viście i  Windows 7 zaś "Users")
  • "/mnt" lub "/media" - najczęściej w nich możemy znaleźć zawartość dyskietki czy CD-ROM
  • "/proc" - zawiera tworzone dynamicznie przez jądro "pliki" z informacjami o wszystkich uruchomionych w systemie programach
  • "/root" - pliki administratora
  • "/tmp" - pliki tymczasowe

Pełna ścieżka do katalogu z plikami użytkownika zwanych ich katalogiem domowym (w  "/home" albo "/root") bywa skrótowo oznaczana przez "~/", pliki o  nazwach rozpoczynających się od kropki są traktowane przez wiele programów jako ukryte. Prawda, że jest to proste?