

Użytkownicy komputerów instalujący system Windows XP na swoich
maszynach często nie wiedzą, czy lepiej jest wybrać w czasie instalacji opcję
formatowania partycji dysku twardego w systemie plików FAT32 czy NTFS.
Po latach korzystania wyłącznie z tego pierwszego (obsługiwanego jako jedyny
przez systemy operacyjne z rodziny DOS/Windows 95) nowy system plików,
niewidoczny z poziomu dyskietki startowej systemu DOS, może przerażać.
Warto jednak pokonać ewentualne wątpliwości czy strach — system
plików NTFS niesie ze sobą tak wiele zalet, że o systemie FAT należy
po prostu jak najszybciej zapomnieć.
Podstawową zaletą systemu plików NTFS jest możliwość efektywniejszego wykorzystania pojemności dysku. Choć system FAT32, dzięki zwiększeniu długości logicznych numerów klastrów, umożliwia obsługę całkiem sporych partycji o rozmiarach kilkunastu gigabajtów przy sensownym rozmiarze klastra (czyli między 4 KiB a 16 KiB), nie zdaje egzaminu jeżeli partycja ma mieć rozmiar mierzony w dziesiątkach lub setkach gigabajtów.
W przeciwieństwie do niego, system plików NTFS od początku projektowany był z myślą o olbrzymich macierzach dyskowych i rozwój technologii dysków twardych nie zaskoczył jego autorów. Rozmiar klastra NTFS nie jest tak ściśle związany z pojemnością partycji i może być w sporym zakresie pojemności dobierany dowolnie w zależności od potrzeb w zakresie od 512 bajtów do nawet dziesiątków kilobajtów. Jeżeli potrzebujesz przechowywać na dysku wiele malutkich plików, minimalny rozmiar klastra pozwoli przechowywać każdy plik w osobnym, pojedynczym sektorze dysku; jeśli z kolei potrzebujesz partycji efektywnie obsługującej olbrzymie pliki wideo, możesz ustawić rozmiar klasta rzędu 32 KiB lub 64 KiB i zaoszczędzić narzutu nieodmiennie związanego z obsługą klastrów o niewielkim rozmiarze, spowalniającego działanie systemu plików. W typowych przypadkach nawet wielkie partycje mogą korzystać z zalet klastrów o rozmiarze 4 KiB lub 8 KiB, na tyle dużych, by nie spowalniać znacząco systemu i nie zwiększać stopnia fragmentacji i na tyle małych, by nie traciło się przestrzeni dyskowej na niewykorzystane „resztki” klastrów zawierających małe, kilkusetbajtowe zbiory.
Dodatkową cechą NTFS zwiększającą stopień wykorzystania przestrzeni dyskowej jest możliwość umieszczania zawartości najmniejszych plików bezpośrednio w obszarze głównego indeksu plików (MFT, ang. Master File Table). Indeks ten zawiera wszystkie informacje o każdym pliku i folderze — nazwę, datę utworzenia, atrybuty i wiele innych metadanych. Ponieważ rozmiar każdego wpisu tego indeksu wynosi co najmniej 1024 bajty, niewykorzystana część wpisu może zostać użyta do przechowania zawartości pliku. W skrajnym przypadku kilkunastobajtowy plik może nie zajmować na dysku w ogóle ani kawałka przestrzeni poza samym wpisem w katalogu! Dodatkowo, taka optymalizacja pozwala przyspieszyć odczyt i zapis małych plików, ponieważ zamiast dwóch dostępów do dysku (odczyt/zapis indeksu i treści pliku) wymagana jest tylko jedna taka operacja.
Jeżeli mowa o wydajności, warto jeszcze wspomnieć o indeksowaniu plików zapisanych na partycjach NTFS. Listy plików zapisanych w folderze (jeżeli lista jest krótka, zapisana zostanie w tablicy MFT, tak samo jak małe pliki) nie są prostymi listami kolejnych elementów wymagającymi przeszukiwania za każdym razem całej listy w celu odnalezienia pojedynczego wpisu (jak to jest w przypadku systemu plików FAT), a hierarchiczną, uporządkowaną strukturą drzewiastą (struktura drzewa zrównoważonego B-tree). Choć tworzenie takich drzew wymaga większego nakładu pracy a kod obsługujący je jest bardziej skomplikowany, odszukanie pliku wymaga znacznie mniejszej liczby kroków i zwiększa wydajność systemu plików — szczególnie w przypadku folderów zawierających tysiące plików i w przypadku niesekwencyjnego pobierania informacji o plikach.
NTFS to jednak nie tylko wydajność i obsługa terabajtowych macierzy dyskowych. Ponieważ tak samo jak sam system NT, system plików NTFS był projektowany z myślą o zastosowaniach serwerowych i korporacyjnych, miał być nie tylko wydajny i skalowalny, ale też bezpieczny. Problem bezpieczeństwa NTFS obejmuje cztery zagadnienia: transakcyjność operacji, mechanizm kontroli możliwości dostępu do plików, audyt dostępu do plików i kontrolę zajętości przestrzeni dyskowej.
Transakcyjność systemu plików NTFS (a więc zdolność do atomowego realizowania modyfikacji w systemie plików — operacja albo jest realizowana pomyślnie do końca, albo przerywana awaryjnie bez uszkadzania poprzednio zapisanej informacji) obejmuje co prawda przede wszystkim metadane i w razie nieprzewidzianej awarii (brak zasilania, zawieszenie się programu) zawartość modyfikowanych plików może być uszkodzona, to jednak sam system plików nie powinien ulegać w takich przypadkach uszkodzeniu i po ponownym uruchomieniu systemu powinien być dostępny bez konieczności weryfikowania jego spójności (co jest niezbędne w przypadku niepoprawnego zamknięcia systemu obsługującego partycję FAT). Oczywiście trudno jest zapewnić struprocentowe zabezpieczenie przed awariami — wystarczy przekłamująca pamięć operacyjna, by na dysku twardym zamiast systemu plików pojawiła się „sieczka” niemożliwa do odczytania, jednak zazwyczaj transakcyjność działa całkiem poprawnie i choć nie można zapomnieć o tworzeniu zapasowych kopii danych to czas przestoju systemu spowodowanego banalnymi awariami zasilania czy oprogramowania powinien być znacząco skrócony.
Mechanizm kontroli możliwości dostępu do plików należy do innej grupy mechanizmów zabezpieczających. Jego zadaniem jest pilnowanie, by tylko użytkownicy o określonych uprawnieniach mogli uzyskać dostęp do pliku czy folderu. Firma Microsoft zaimplementowała nie tylko znany z systemów UNIX atrybut właściciela pliku, ale też nowoczesny, funkcjonalny system list kontroli dostępu (ACL, ang. Access Control Lists), dalece przewyższający tradycyjne mechanizmy UNIXowe. Dzięki listom ACL możesz dla każdego katalogu lub folderu określić który z użytkowników lokalnych lub sieciowych może odczytywać czy zapisywać dane (oczywiście dokładność ustalania praw dostępu wychodzi daleko poza prosty schemat odczyt/zapis). System plików FAT jest całkowicie pozbawiony takiej możliwości — każdy może odczytywać i modyfikować dowolny z plików, potencjalnie rozwalając system operacyjny lub kasując dane pozostałych użytkowników.
Audyt dostępu do plików, również niedostępny w systemie plików FAT, pozwala prowadzić monitoring dostępu do najważniejszych zasobów. Pomyśl przez chwilę o folderze zawierającym niezwykle istotne dane firmy, które nigdy bez upoważnienia nie powinny opuścić serwera. W przypadku systemu plików FAT nie tylko nie możesz ograniczyć dostępu do tych plików (poza ewentualnymi uprawnieniami nakładanymi na zasoby sieciowe), lecz również nie dowiesz się, czy pliki nie zostały przez kogoś odczytane lub – co gorsza – zmodyfikowane. Wystarczy jednak umieścić je na partycji NTFS by nie tylko móc ograniczyć dostęp do nich, ale też obłożyć je audytem umożliwiającym natychmiastowe stwierdzenie, czy dany plik nie został na przykład odczytany w środku nocy przez pracownika działającego na szkodę firmy lub sfałszowany przez zapis dokonany bez zezwolenia przełożonych. Kto wie, może gdyby teksty ustaw były przechowywane na serwerze z systemem plików NTFS i skonfigurowanym audytem, rozwiązanie słynnej afery „lub czasopisma” wymagałoby tylko przeglądnięcia logów systemowych...
Ostatnia cecha systemu plików NTFS dotycząca bezpieczeństwa jest istotna głównie w przypadku serwerów sieciowych. Mechanizm kontroli zajętości przestrzeni dyskowej (ang. quota management) umożliwia nałożenie na poszczególne konta użytkowników limitów wykorzystania przestrzeni, przez co nie będą oni w stanie „zapchać” dysku nadmiarem danych (szkodząc systemowi lub innym użytkownikom).
Choć system plików FAT teoretycznie można rozszerzyć o część przedstawionych powyżej mechanizmów zabezpieczających (lub nawet wszystkie z nich), wymagałoby to jego gruntownej modernizacji i obudowania modułami dodatkowymi. Firma Microsoft postanowiła nie grzęznąć w zadaniu reanimowania technologicznego trupa, jakim jest FAT, tylko stworzyć nowy system plików, konkurujący dzisiaj nawet ze względnie nowymi rozwiązaniami, jak na przykład ReiserFS.
Po lekturze tego artykułu mógłbyś stwierdzić, że FAT absolutnie nie ma miejsca w świecie dzisiejszej informatyki. Owszem, nie powinien znaleźć miejsca na dyskach twardych zamontowanych na stałe w komputerach pracujących pod kontrolą systemów Windows z rodziny NT, ma jednak wciąż kilka innych zastosowań. Prostota systemu plików FAT (oraz kodu obsługującego go) spowodowała, że jest on bardzo często wykorzystywany przez producentów urządzeń przenośnych (odtwarzacze MP3, aparaty cyfrowe); nie tylko oszczędza to konieczności wymyślania własnego systemu plików (i często pisania odpowiedniego kodu, jako że kod obsługujący system FAT jest dostępny na licencji BSD), ale też zapewnia wymienność kart pamięci między różnymi urządzeniami bez konieczności formatowania ich przy zmianie urządzenia. System plików FAT został też zaimplementowany w takiej liczbie systemów operacyjnych, że stanowi pewnego rodzaju przemysłowy standard przenośności i jest stosowany do obsługi danych zapisanych w urządzeniach pen-drive czy na przenośnych dyskach twardych. Niezależnie od tego, czy przenośny magazyn danych zapisany zgodnie ze standardem FAT podłączysz do komputera działającego pod kontrolą systemu Windows, MacOS X czy Linux, powinieneś mieć niczym nie ograniczony dostęp do danych. NTFS, skomplikowany i nieudokumentowany, jest znacznie trudniejszy w implementacji i niewiele systemów operacyjnych umożliwia odczytywanie zawartości zapisanych w nim danych (nie mówiąc już o niezawodnym ich modyfikowaniu).
Czas systemu plików NTFS wreszcie nadszedł, po prawie piętnastu latach od momentu jego stworzenia. Dzisiaj praktycznie każdy nowy dysk twardy przeznaczony do pracy z systemem Windows jest formatowany w systemie plików NTFS — bezpieczniejszym, wydajniejszym i bardziej ekonomicznym. I choć na postawione w tytule pytanie odpowiedź brzmi: „tylko NTFS!”, system plików FAT znalazł swoją niszę, w której nadal jest użyteczny i rozsądny pod względem wydajności i możliwości.