System plików – organizacja danych na dysku twardym

System plików jest sposobem organizowania danych zgromadzonych na nośniku. Określa zasady rozmieszczenia plików i katalogów oraz wolnej przestrzeni nośników – zarządza informacjami o plikach oraz informacjami dotyczących przechowywania tychże plików. Zapewnia bezproblemowy i szybki dostęp do informacji o danych oraz samych danych, odpowiednie sposoby operowania nimi a także metody ich usuwania.

System plików określa również wielkość klastrów, schemat poprawnych nazw plików, ich długość i dopuszczalne znaki jakie mogą być użyte w nazwach oraz możliwe do użycia atrybuty plików (np. nazwa, typ, lokalizacja, rozmiar, ochrona, czas dostępu).

Większość systemów operacyjnych posiada dedykowany system plików rozwijany równolegle (np. FAT dla DOS-a, NTFS dla Windowsa, ext dla Linuxa), ale sam system plików jest niezależny a systemy operacyjne potrafią obsługiwać wiele z nich.

Rodzaje systemów plików

  • Dyskowy system plików - systemy plików zarządzające danymi na nośnikach fizycznych typu dysk twardy.
  • Sieciowy system plików - systemy umożliwiające przesyłanie poleceń do serwera przez sieć oraz zarządzanie na odległość.
  • Specjalny system plików (wirtualny) - systemy plików dostarczające jedynie interfejs (nie zarządza danymi) umożliwiający dostęp do niektórych struktur jądra.
  • System oparty na bazie danych - systemy identyfikujące pliki poprzez ich charakterystyki (podobnie do rozwiązań stosowanych w bazach danych) związane np. z tematem czy autorem.
  • System dziennikujący (journaling) – systemy zwiększający bezpieczeństwo danych, oparte na mechanizmach księgujących, umożliwiające szybsze przywrócenie systemu po awarii.

Podstawowe operacje systemu plików

  • otwieranie i zamykanie pliku
  • tworzenie i usuwanie pliku
  • tworzenie i usuwanie katalogu
  • odczyt i zapis do pliku

Budowa systemu plików na przykładzie FAT

System plików FAT zbudowany jest z czterech podstawowych elementów (regionów): sektora rozruchowego, tablicy alokacji, katalogu głównego oraz plików i folderów.

Sektor rozruchowy zawiera m.in. program ładujący system operacyjny oraz BPB (Bios Parameter Block), tablicę służącą do wyliczenie rozmiarów i położenia pozostałych regionów.

Fizyczny adres zapisu pliku odnajdowany jest przez system plików na podstawie ścieżki (ścieżka odpowiada adresowi, pod którym system operacyjny odnajduje plik) a dane przekazywane do systemu operacyjnego. Aby porządkować informacje o ścieżkach system plików organizuje rodzaj spisu treści, który łączy ścieżki prowadzące do pliku z odpowiednimi miejscami, pod którymi plik został zapisany. Jest to podstawowy element systemu zwany tablicą alokacji (od File Allocation Table – FAT – skrót dał nazwę systemowi) będącą spisem klastrów i informacji dotyczących odpowiadających im plików. W systemie NTFS nosi on nazwę MFT (Master File Table - główna tablica plików). Plik MFT jest bardzo ważny i dlatego NTFS wprowadza specjalne zabezpieczenie aby nie uległ on fragmentacji. Adres do pliku zapisany jest w strukturze sektora rozruchowego – sektor rozruchowy wskazuje numer klastra będącego początkiem tablicy. Jest to najbardziej newralgiczne miejsce systemu – bez znajomości położenia tego pliku system jest niezdolny do jakiejkolwiek operacji na plikach. Zabezpieczeniem jest tzw. lustro tablicy – MFT Mirror. W awaryjnych sytuacjach gdy MFT nie może zostać zlokalizowany odczytany zostaje MFT Mirror zawierający informacje o położeniu czterech pierwszych rekordów tablicy MFT.

Katalog główny (root directory) zawiera nazwę pliku, atrybuty, informacje o czasie utworzenie i modyfikacji, wskaźnik z adresem pierwszego klastra z danymi (w systemie FAT 32 katalog główny wpisany jest w tablice alokacji jako łańcuch klastrów i nie zajmuje na dysku osobnego miejsca o określonym rozmiarze).

Region danych zajmowany jest przez katalogi i podkatalogi zawierające wszystkie pliki. Jest on podzielony na logiczne bloki zwane klastrami.

System plików łączy wiele sektorów w logiczne bloki – klastry. Dzięki temu adresy są krótsze a zarządzanie danymi łatwiejsze i szybsze. Określa on także maksymalną liczbę podstawowych jednostek alokacji (klastrów). Ma to związek z długością pola adresowego danego systemu plików. Można zaadresować tyle klastrów ile wynosi maksymalna liczba, którą można wpisać w polu adresowym. Iloczyn maksymalnej ilości klastrów i wielkości klastra pokazuje rozmiar partycji, którą może obsłużyć dany system plików, zaś iloczyn rozmiaru partycji oraz liczby możliwych do utworzenia partycji pokazuje maksymalną wielkość dysku, którego zasobami może zarządzać dany system plików. Wielkość klastra mieści się w przedziale, którego dolne ograniczenie stanowi rozmiar sektora (512 bajtów) zaś górne określa dany system plików. Podczas formatowania dysku program wykonawczy określa optymalną wielkość klastra stosownie do wielkości partycji (większa partycja – większy klaster), tak aby nie przekroczyć maksymalnej liczby klastrów dostępnych w danym systemie plików.

Pavel Kroupka

Galeria