Ogólnie

 

System plików – metoda przechowywania plików, zarządzania plikami, informacjami o tych plikach, tak by dostęp do plików i danych w nich zgromadzonych był łatwy dla użytkownika systemu.

Systemy plików stosuje się dla różnych nośników danych, takich jak dyski, dyskietki, a także w strumieniach danych, sieciach komputerowych, pamięciach. We współczesnych systemach operacyjnych bezpośrednie operowanie na danych w plikach zarezerwowane jest tylko dla systemu operacyjnego, aplikacje mają dostęp tylko do operacji na plikach i mają zabroniony bezpośredni dostęp do nośnika danych.

Z formalnego punktu widzenia system plików to reguły umieszczania na nośniku abstrakcyjnych danych oraz informacji umożliwiających przechowywanie tych danych, łatwy i szybki dostęp do informacji o danych oraz do tych danych, manipulowania nimi a także sposobach usuwania ich.

Większość systemów operacyjnych posiada własny (macierzysty) system plików, rozwijany równolegle z nim (np. FAT w DOS-ie, NTFS w Microsoft Windows NT lub ext/ext2/ext3/ext4 i ReiserFS/Reiser4 w Linuksie), ze względu na pewne specyficzne właściwości nadawane plikom (np. atrybut wykonywalności pliku), podobnie jak niektóre nośniki danych (np. ISO 9660 i UDF na CD-ROM/DVD), jednak sam system plików jest niezależny od nich. Same systemy operacyjne (w szczególności Unix i jego pochodne) potrafią obsługiwać wiele systemów plików.

Rodzaje systemów plików

 

  • Dyskowy system plików – "normalny" system plików pozwalający na zarządzanie danymi na stacjonarnych nośnikach danych, takich jak twarde dyski. Każdy system posiada swój własny system plików (np. Linux – ext2; Windows NT,XP,Vista,Seven – NTFS; Windows 95,98,ME – FAT,FAT32 itd.).
  • Systemy dziennikujące (lub księgujące, ang. journaling) – systemy z mechanizmem księgującym, zwiększającym bezpieczeństwo danych i umożliwiającym szybkie przywrócenie sprawności systemu po awarii. Mechanizm taki posiadają nowsze systemy plików (np. NTFS, HFS+ lub ext3).
  • Sieciowy system plików – w zasadzie jest to protokół umożliwiający przesyłanie poleceń do serwera przez sieć oraz wykonywanie operacji na odległość. Informacje są z powrotem przekazywane z serwera do klienta. Dzięki takiemu rozwiązaniu użytkownik nie widzi żadnej różnicy między pracą na sieciowym systemie plików a pracą na lokalnym systemie plików. Najbardziej znane to NFS, Coda, AFS (System plików Andrew'sa), SMB oraz NCP (Novella).
  • Specjalne systemy plików (Wirtualne systemy plików) – nie umożliwiają zarządzania danymi, np. system /proc (w Linuksie) dostarcza interfejsu, który umożliwia dostęp do niektórych struktur jądra.
  • Systemy oparte na bazie danych – systemy plików, w których pliki są identyfikowane na podstawie swojej charakterystyki (np. autora, typu czy tematu, którego dotyczą) – jak w bazach danych.

Popularne systemy plików

 

Linux:

  • minix – jest to najstarszy i uważany za najbardziej niezawodny system plików, jednak posiada spore ograniczenia takie jak np. nazwy plików mogą posiadać maksymalnie 30 znaków, system plików może mieć co najwyżej 64 Mb i inne.
  • ext (Extended File System) – pochodna minixa. Zmieniono w nim tylko to, że dopuszczał on pliki i partycje o rozmiarze do 2 GB. Poważną wadą było to, że po dłuższym działaniu prowadził do dużej fragmentacji. Został szybko zastąpiony przez ext2, a później ext3. Aktualnie nieużywany a jego wersja nie jest kompatybilna wzwyż.
  • ext2 (Second EFS) - zrezygnowano tutaj ze struktury danych B-drzew w celu poprawienia szybkości. Rozmiar maksymalny partycji wynosi 4 TB, natomiast pojedynczego pliku jest równy 2 GB. Plik może mieć nazwę o długości 255 znaków. Został dobrze zdefiniowany sposób na dodawanie rozszerzeń. Jest niezależny od systemu operacyjnego, który jest na nim zainstalowany. Był pozbawiony księgowania. Mało efektywny w obsłudze katalogów i słabo wydajny przy dużej ilości małych plików. Został wyparty przez ext3.
  • ext3 (Third EFS) - dodano tu mechanizm księgowania zwiększający bezpieczeństwo całego systemu, indeksowanie katalogów i synchroniczny zapis działający 10 razy szybciej niż w ext2. System ten jest stabilny, przewidywalny i unika wielu błędów, jest także odporny na zaniki napięcia.
  • xfs - również bardzo szybki system plików; głównie za sprawą tego, iż wiele informacji przechowuje w pamięci RAM dlatego podatny jest na zanik napięcia. Posiada on wiele cech zaawansowanego systemu plików do zastosowań serwerowi oraz dla wydajnych stacji roboczych. Obsługuje dyski do 16 milionów TB, a rozmiar pojedynczego pliku może wynieść ponad 8 milionów TB.
DOS:
  • FAT (File Allocation Table) system plików oparty na tablicy, która opisuje w którym klastrze dysku twardego lub magnetycznej dyskietki system operacyjny powinien szukać zapisanego na nim pliku. Tablica ta tworzona w czasie formatowania danego nośnika danych. Występują w tym systemie straty pojemności np. przy zapisie pliku o pojemności 6 kB na dysku o klastrze 32 kB – strata wynosi 26 kB. Poprawiono to w późniejszych systemach.
  • FAT16 odmiana systemu plików FAT. Stosowany w systemach od MS DOS do Windows 95. Inną cechą Systemu FAT 16 jest nierozróżnialnie wielkości liter w nazwach plików, oraz ograniczenie długości nazw plików do 12 znaków. Obecnie stosowany w kartach pamięci flash.
Windows:
  • FAT32 odmiana systemu plików FAT z której korzystały systemy operacyjne Windows 95, 98, a nawet XP. System ten umożliwia obsługę dysków FAT pojemności nawet 2 TB. Występują tu małe straty pojemności. W przypadku dysków o większych pojemnościach nie potrzeba dzielić dysków na mniejsze partycje jak w przypadku FAT.
  • NTFS (New Technology File System) standardowy system plików systemu Microsoft Windows NT i jego następców Windowsa 2000, XP, Serwer 2003, Vista. System ten posiadał wersje o następującej numeracji wewnętrznej:
    • 1.0
    • 1.1
    • 1.2 – wersja używana przez Windows NT 3.51 oraz NT4
    • 3.0 – wersja używana przez Windows 2000
    • 3.1 – wersja używana przez Windows XP, Serwer 2003, Vista,
    System NTFS pochodzi od HPFS stworzonego przez Microsoft i IBM na miejsce starego FAT-u. NTFS zawiera wszystkie ulepszenia HPFS i dodatkowo ACL (listy kontroli dostępu) oraz journal (dziennik operacji dyskowych). NTFS nie posiada także ograniczenia systemu plików FAT, które dotyczyło rozmiaru pojedynczego pliku (FAT 16 – 1Gb, FAT 32 – 4Gb).