Tabela alokacji plików — File Allocation Table

GRUBY
Deweloper(zy) Microsoft , NCR , SCP , IBM , Compaq , Digital Research , Novell , Caldera
Pełne imię i nazwisko Tabela alokacji plików
Warianty 8-bitowy FAT, FAT12 , FAT16 , FAT16B , FAT32 , ExFAT , FATX , FAT+
Wprowadzono 1977 z samodzielnym dyskiem BASIC-80 ( 1977 )
Identyfikator partycji MBR / EBR :
FAT12:  EA (atrybutu rozszerzonego) FAT16:  ea FAT32:  ea BDP :0x01
0x040x060x0E
0x0B0x0C

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Struktury
Zawartość katalogu Tabela
Przydział plików Połączona lista
Złe bloki Tagowanie klastra
Limity
Maks. wielkość woluminu FAT12: 32  MB (256 MB dla klastrów 64 KB)
FAT16: 2 GB (4 GB dla klastrów 64 KB)
FAT32: 2  TB (16 TB dla sektorów 4 KB )
Maks. rozmiar pliku 4 294 967 295 bajtów (4  GB – 1) z FAT16B i FAT32
Maks. liczba plików FAT12: 4068 dla klastrów 8  KB
FAT16
: 65 460 dla klastrów 32 KB FAT32: 268 173 300 dla klastrów 32 KB
Maks. długość nazwy pliku 8.3 nazwa pliku lub 255 znaków UCS-2 przy użyciu LFN
Cechy
Daty zarejestrowania Zmodyfikowana data/godzina, data/czas utworzenia (tylko DOS 7.0 i nowsze), data dostępu (dostępne tylko z włączoną funkcją ACCDATE ), data/czas usunięcia (tylko z DELWATCH 2)
Zakres dat 1980-01-01 do 2099-12-31 ( 2107-12-31 )
Rozdzielczość daty 2 sekundy na czas ostatniej modyfikacji,
10 ms na czas utworzenia,
1 dzień na datę dostępu,
2 sekundy na czas usunięcia
Widelce Nie natywnie
Atrybuty Tylko do odczytu , ukryty , systemowy , wolumin , katalog , archiwum
Uprawnienia systemu plików FAT12/FAT16: prawa dostępu do plików, katalogów i woluminów dla odczytu , zapisu , wykonywania , usuwania tylko z DR-DOS , PalmDOS , Novell DOS , OpenDOS , FlexOS , 4680 OS , 4690 OS , Concurrent DOS , Multiuser DOS , System Manager , REAL /32 (Wykonywanie praw tylko z FlexOS, 4680 OS, 4690 OS; indywidualne hasła do plików/katalogów nie z FlexOS, 4680 OS, 4690 OS; klasy uprawnień World / Group / Owner tylko z załadowanymi zabezpieczeniami dla wielu użytkowników)
FAT32: Częściowe, tylko z DR -DOS, REAL/32 i 4690 OS
Przezroczysta kompresja FAT12/FAT16: na objętość, SuperStor , układarka , DoubleSpace , DriveSpace
FAT32: nie
Przejrzyste szyfrowanie FAT12/FAT16: na wolumin tylko z DR-DOS
FAT32: Nie

Tabela alokacji plików ( FAT ) to system plików opracowany dla komputerów osobistych. Pierwotnie opracowany w 1977 roku do użytku na dyskietkach , został przystosowany do użytku na dyskach twardych i innych urządzeniach. Jest często obsługiwany ze względu na kompatybilność przez obecne systemy operacyjne dla komputerów osobistych oraz wielu urządzeń mobilnych i systemów wbudowanych , umożliwiając wymianę danych między różnymi systemami. Zwiększenie pojemności dysków wymagało trzech głównych wariantów: FAT12 , FAT16 i FAT32 . Standard FAT został również rozszerzony na inne sposoby, przy zachowaniu kompatybilności wstecznej z istniejącym oprogramowaniem.

FAT nie jest już domyślnym systemem plików dla komputerów z systemem Microsoft Windows .

Systemy plików FAT są nadal powszechnie spotykane na dyskietkach, kartach pamięci flash oraz innych kartach i modułach pamięci półprzewodnikowych (w tym na dyskach flash USB ), a także na wielu urządzeniach przenośnych i wbudowanych. FAT to standardowy system plików dla aparatów cyfrowych zgodny ze specyfikacją DCF .

Przegląd

Koncepcje

System plików używa tabeli indeksów przechowywanej w urządzeniu do identyfikacji łańcuchów obszarów przechowywania danych powiązanych z plikiem, File Allocation Table ( FAT ). FAT jest alokowany statycznie w momencie formatowania. Tabela jest połączoną listą wpisów dla każdego klastra , ciągłym obszarem pamięci dyskowej. Każdy wpis zawiera albo numer następnego klastra w pliku, albo znacznik wskazujący koniec pliku, niewykorzystane miejsce na dysku lub specjalne zarezerwowane obszary dysku. Katalog główny dysku zawiera numer pierwszego klastra każdego pliku w tym katalogu. System operacyjny może następnie przeglądać FAT, wyszukując numer klastra każdej kolejnej części pliku dyskowego jako łańcuch klastrów aż do osiągnięcia końca pliku. Podkatalogi są zaimplementowane jako specjalne pliki zawierające wpisy katalogów ich odpowiednich plików.

Każdy wpis na liście połączonej z FAT ma stałą liczbę bitów: 12, 16 lub 32. Maksymalny rozmiar pliku lub dysku, do którego można uzyskać dostęp, to iloczyn największej liczby, jaką można zapisać we wpisach (mniej kilka wartości zarezerwowanych do wskazania nieprzydzielonego miejsca lub końca listy) oraz rozmiaru klastra dysków. Nawet jeśli do rozszerzenia pliku potrzebny jest tylko jeden bajt pamięci, należy do niego przydzielić cały klaster, więc duże klastry marnują dużo miejsca na dysku, jeśli istnieje duża liczba małych plików.

Pierwotnie zaprojektowany jako 8-bitowy system plików, maksymalna liczba klastrów musi wzrastać wraz ze wzrostem pojemności dysku, a zatem wzrosła liczba bitów używanych do identyfikacji każdego klastra. Kolejne główne warianty formatu FAT są nazwane według liczby bitów elementu tablicy: 12 ( FAT12 ), 16 ( FAT16 ) i 32 ( FAT32 ).

Zastosowania

System plików FAT jest używany od 1977 roku na komputerach i nadal jest często używany w systemach wbudowanych. Zgodne systemy plików ułatwiają wymianę danych między np. komputerami stacjonarnymi a urządzeniami przenośnymi. Systemy plików FAT są domyślne dla nośników wymiennych, takich jak dyskietki , superdyskietki , karty pamięci i pamięci flash lub dyski flash USB . FAT jest obsługiwany przez urządzenia przenośne, takie jak PDA , aparaty cyfrowe , kamery , odtwarzacze multimedialne i telefony komórkowe. Podczas gdy FAT12 jest używany na dyskietkach, FAT16 i FAT32 są zwykle spotykane na większych nośnikach.

FAT był również używany na dyskach twardych w erze DOS i Windows 9x . Firma Microsoft wprowadziła nowy system plików NTFS („New Technology File System”) z platformą Windows NT w 1993 roku, ale FAT pozostał standardem dla użytkowników domowych do czasu wprowadzenia systemu Windows XP opartego na NT w 2001 roku. używane w dyskach twardych, które mają być używane przez wiele systemów operacyjnych, takich jak współdzielone środowiska Windows, Linux i DOS. Microsoft Windows jest dodatkowo wyposażony w preinstalowane narzędzie do bezpośredniej konwersji systemu plików FAT na NTFS bez konieczności przepisywania wszystkich plików, chociaż nie można tego bezpośrednio cofnąć.

Wiele systemów operacyjnych zapewnia obsługę nośników w formacie FAT za pomocą wbudowanych programów obsługi systemu plików lub innych firm.

System plików DCF przyjęty przez prawie wszystkie aparaty cyfrowe od 1998 r. definiuje logiczny system plików z nazwami plików 8.3 i sprawia, że ​​korzystanie z FAT12, FAT16, FAT32 lub exFAT jest obowiązkowe dla jego warstwy fizycznej w celu zapewnienia zgodności.

FAT jest również używany wewnętrznie dla partycji systemowej EFI na etapie rozruchu komputerów zgodnych z EFI . Ukryte systemy plików FAT są również używane na partycji rozruchowej UEFI na nowoczesnych komputerach.

W przypadku dyskietek FAT został ustandaryzowany jako ECMA -107 i ISO / IEC  9293:1994 (zastępując ISO 9293:1987). Standardy te obejmują FAT12 i FAT16 z obsługą tylko krótkich nazw plików 8.3 ; długie nazwy plików z VFAT zostały częściowo opatentowane .

Nomenklatura

„System plików FAT” odnosi się do FAT12 , FAT16 i FAT32 . Narzędzia systemu operacyjnego mogą nie określić, która wersja zostanie użyta do sformatowania urządzenia.

FAT16 ” odnosi się zarówno do pierwotnej grupy systemów plików FAT z 16-bitowymi wpisami klastra, jak i do późniejszych wariantów („ FAT16B ”) z 32-bitowymi wpisami sektorów. Wartości przechowywane w bloku parametrów dysku mogą służyć do identyfikacji struktury pliku.

VFAT ” to opcjonalne rozszerzenie długich nazw plików, które może działać na dowolnym systemie plików FAT. Woluminy używające długich nazw plików VFAT mogą być odczytywane również przez systemy operacyjne nieobsługujące rozszerzenia VFAT.

Ogólny typ systemu plików (FAT12, FAT16 lub FAT32) zależy od szerokości wpisów klastra w FAT. Określone wartości progowe dla liczby klastrów, przechowywane w bloku parametrów dysku, określają, który typ FAT jest używany. Inne właściwości urządzenia pamięci masowej, takie jak wielkość, format bloku parametrów lub nazwa systemu plików, nie mogą być użyte do określenia typu systemu plików.

Wolumin FAT12 lub FAT16 można zdefiniować za pomocą „ FAT32 EBPB ” zwykle używanego dla woluminów FAT32. Identyfikatory partycji nie są używane do samodzielnego określania typu systemu plików.

Rodzaje

Oryginalny 8-bitowy system plików FAT

8-bitowy FAT
Deweloper(zy) Microsoft , NCR , SCP
Pełne imię i nazwisko 8-bitowa tabela alokacji plików
Wprowadzono 1977/1978: NCR Basic +6 dla NCR
1978: Samodzielny dysk BASIC-80 (16-bajtowe pozycje katalogu)
(1978: Samodzielny dysk BASIC-86 tylko wewnętrznie)
1979-06-04: Samodzielny dysk BASIC-86 dla SCP (16 -bajtowe wpisy katalogu)
1979: MIDAS (32-bajtowe wpisy katalogu)
Limity
Maks. rozmiar pliku 8 MB
Szczegółowość rozmiaru pliku szczegółowość rekordów (128 bajtów)
Maks. długość nazwy pliku 6.3 nazwa pliku (pliki binarne), 9 znaków (pliki ASCII)
Maks. głębokość katalogu brak podkatalogów
Dozwolone znaki w nazwach plików ASCII ( 0x00i 0xFFniedozwolone w pierwszym znaku)
Cechy
Daty zarejestrowania Nie
Atrybuty Chroniony przed zapisem, EBCDIC konwersję, czytać po zapisie, Binary (random zamiast sekwencyjnego pliku)

Oryginalny system plików FAT (lub struktura FAT , jak go początkowo nazywano) został zaprojektowany i zaimplementowany przez Marca McDonalda , w oparciu o serię dyskusji między McDonaldem a Billem Gatesem . Została wprowadzona z 8-bitowych elementów tabeli (i liczby klastrów ważne dane do 0xBF) w prekursora Microsoft jest autonomiczny dysku BASIC 80 AN 8080 opartym następcy modelu NCR 7200 VI terminala wprowadzania danych, wyposażone w 8 -calowe (200 mm) dyskietki, w 1977 lub 1978. W 1978, Standalone Disk BASIC-80 został przeniesiony do 8086 za pomocą emulatora na DEC PDP-10 , ponieważ w tym czasie nie były dostępne żadne prawdziwe systemy 8086. System plików FAT był również używany w Microsoft MDOS/MIDAS , systemie operacyjnym dla platform 8080/Z80 pisanym przez McDonald od 1979 roku. Wersja Standalone Disk BASIC obsługiwała trzy FAT, podczas gdy był to parametr dla MIDAS. Podobno MIDAS został również przygotowany do obsługi 10-bitowych, 12-bitowych i 16-bitowych wariantów FAT. Podczas gdy rozmiar wpisów w katalogu wynosił 16 bajtów w Standalone Disk BASIC , MIDAS zamiast tego zajmował 32 bajty na wpis.

FAT12

FAT12
Deweloper(zy) SCP , Microsoft , IBM , Badania cyfrowe , Novell
Pełne imię i nazwisko 12-bitowa tabela alokacji plików
Wprowadzono 1980-07 ( QDOS 0.10 , wpisy w katalogach 16-bajtowych)
25.02.1981 ( 86-DOS 0.42 , 32-bajtowe wpisy w katalogach , kilka zarezerwowanych sektorów)
c. 1981-08/10 ( PC DOS 1.0 , 32-bajtowe wpisy katalogu, 1 zarezerwowany sektor)
1982-03-03 ( MS-DOS 1.25 , 32-bajtowe wpisy katalogu, 1 zarezerwowany sektor)
Identyfikator partycji MBR / EBR :
FAT12 : każdy BDP :0x01

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Limity
Maks. wielkość woluminu 16 MB (z klastrami 4 KB)
32 MB (z klastrami 8 KB)
Maks. rozmiar pliku ograniczona wielkością woluminu
Szczegółowość rozmiaru pliku 1 bajt
Maks. liczba plików 4068 dla klastrów 8 KB
Maks. długość nazwy pliku Nazwa pliku 8.3 ze znakami OEM ,
255 znaków UCS-2 przy użyciu LFN
Maks. głębokość katalogu 32 poziomy lub 66 znaków (z CDS ),
60 poziomów lub więcej (bez CDS)
Cechy
Daty zarejestrowania Data modyfikacji (nie z 86-DOS przed 0.42), czas modyfikacji (nie z PC DOS 1.0 i 86-DOS), data/czas utworzenia (tylko DOS 7.0 i nowsze), data dostępu (dostępne tylko z włączoną funkcją ACCDATE ), data usunięcia /time (tylko z DELWATCH 2)
Zakres dat 1980-01-01 do 2099-12-31 ( 2107-12-31 )
Rozdzielczość daty 2 sekundy na czas ostatniej modyfikacji,
10 ms na czas utworzenia,
1 dzień na datę dostępu,
2 sekundy na czas usunięcia
Atrybuty Tylko do odczytu (od DOS 2.0), Ukryty , System , Wolumen (od MS-DOS 1.28 i PC DOS 2.0 ), Katalog (od MS-DOS 1.40 i PC DOS 2.0), Archiwum (od DOS 2.0)
Uprawnienia systemu plików Prawa dostępu do plików, katalogów i woluminów dla odczytu , zapisu , wykonywania , usuwania tylko z DR-DOS , PalmDOS , Novell DOS , OpenDOS , FlexOS , 4680 OS , 4690 OS , Concurrent DOS , Multiuser DOS , System Manager , REAL/32 (Execute prawo tylko w przypadku FlexOS, 4680 OS, 4690 OS; indywidualne hasła do plików/katalogów nie w przypadku FlexOS, 4680 OS, 4690 OS; klasy uprawnień World / Group / Owner tylko z załadowanymi zabezpieczeniami dla wielu użytkowników)
Przezroczysta kompresja Na objętość, SuperStor , Stacker , DoubleSpace , DriveSpace
Przejrzyste szyfrowanie Tylko na objętość z DR-DOS

Pomiędzy kwietniem a sierpniem 1980, zapożyczając koncepcję FAT dla własnego systemu operacyjnego SCP 8086 QDOS 0.10 , Tim Paterson rozszerzył elementy tabeli do 12 bitów , zredukował liczbę FAT do dwóch, przedefiniował semantykę niektórych zarezerwowanych wartości klastrów oraz zmodyfikował układ dysku tak, że katalog główny znajdował się teraz między FAT a obszarem danych dla jego implementacji FAT12 . Paterson zwiększył również limit długości nazw plików składających się z dziewięciu znaków (6.3) do jedenastu znaków, aby obsługiwać nazwy plików 8.3 w stylu CP/M i bloki kontroli plików . Format używany w prekursorze 8-bitowego systemu plików Microsoft Standalone Disk BASIC nie był obsługiwany przez QDOS. W sierpniu 1980 roku nazwa QDOS została zmieniona na 86-DOS . Począwszy od 86-DOS 0.42 rozmiar i układ wpisów w katalogu został zmieniony z 16 bajtów na 32 bajty w celu dodania znacznika daty pliku i zwiększenia teoretycznego limitu rozmiaru pliku poza poprzedni limit 16 MB. 86-DOS 1.00 stał się dostępny na początku 1981 roku. Później, w 1981 roku, 86-DOS ewoluował w Microsoft MS-DOS i IBM PC DOS . Możliwość odczytu poprzednio sformatowanych woluminów z 16-bajtowymi wpisami katalogu została porzucona w MS-DOS 1.20 .

FAT12 używa 12-bitowych wpisów dla adresów klastra; niektóre wartości były zarezerwowane do oznaczania końca łańcucha klastrów, oznaczania obszarów dysku nie nadających się do użytku lub do innych celów, więc maksymalna liczba klastrów została ograniczona do 4078. W celu zaoszczędzenia miejsca na dysku użyto dwóch 12-bitowych wpisów FAT trzy kolejne 8-bitowe bajty na dysku, wymagające manipulacji w celu rozpakowania wartości 12-bitowych. To wystarczało na oryginalne dyskietki i mały dysk twardy do 32 megabajtów. Wersja FAT16B dostępna w systemie DOS 3.31 obsługiwała 32-bitowe numery sektorów, przez co zwiększała limit rozmiaru woluminu.

Wszystkie struktury kontrolne mieszczą się w pierwszej ścieżce, aby uniknąć ruchu głowy podczas operacji odczytu i zapisu. Każdy uszkodzony sektor w obszarze struktur kontrolnych spowodowałby, że dysk byłby bezużyteczny. Narzędzie formatujące DOS całkowicie odrzuciło takie dyski. Uszkodzone sektory były dozwolone tylko w obszarze danych pliku. Klastry zawierające uszkodzone sektory zostały oznaczone zastrzeżoną wartością jako niezdatne do użytku 0xFF7.

Podczas gdy 86-DOS obsługiwał trzy formaty dysków (250,25 KB, 616 KB i 1232 KB z identyfikatorami FAT 0xFF i 0xFEna 8-calowych (200 mm) stacjach dyskietek, IBM PC DOS 1.0 , wydany z oryginalnym komputerem osobistym IBM w 1981 roku, obsługiwał tylko 8-sektorowy format dyskietek o sformatowanej pojemności 160 KB (FAT ID 0xFE) dla jednostronnych stacji dyskietek 5,25 cala, a PC DOS 1.1 dodał obsługę formatu dwustronnego o 320 KB (FAT ID 0xFF) Wprowadzono PC DOS 2.0 obsługa 9-sektorowych formatów dyskietek o wielkości 180 KB (FAT ID 0xFC) i 360 KB (FAT ID 0xFD).

86-DOS 1.00 i PC DOS 1.0 wpisy katalogów zawierały tylko jedną datę, datę ostatniej modyfikacji. PC DOS 1.1 dodał czas ostatniej modyfikacji. Atrybuty plików PC DOS 1.x zawierały bit ukryty i bit systemowy, a pozostałe sześć bitów było niezdefiniowanych. W tym czasie DOS nie obsługiwał podkatalogów, ale zazwyczaj na dyskietce było tylko kilkadziesiąt plików.

PC XT był pierwszy komputer z dyskiem twardym z IBM PC DOS 2.0 i wspierany, że dysk z FAT12 ( FAT ID 0xF8 ). Stałe założenie 8 sektorów na klaster na dyskach twardych praktycznie ograniczało maksymalny rozmiar partycji do 16 MB dla sektorów 512 bajtowych i klastrów 4 KB.

BIOS Parameter Block ( BPB ) został wprowadzony z PC DOS 2.0, jak również i ta wersja dodaje również tylko do odczytu, archiwum , etykiety woluminu oraz katalog bitów atrybutów dla hierarchicznych podkatalogów.

MS-DOS 3.0 wprowadził obsługę dyskietek o dużej gęstości 1,2 MB 5,25 cala (deskryptor mediów 0xF9), które miały zwłaszcza 15 sektorów na ścieżkę, stąd więcej miejsca na FAT-y.

FAT12 pozostaje w użyciu na wszystkich popularnych dyskietkach , w tym na dyskach 1,44 MB i późniejszych 2,88 MB (bajt deskryptora nośnika 0xF0).

Początkowy FAT16

FAT16.
Deweloper(zy) Microsoft , IBM , badania cyfrowe , Novell
Pełne imię i nazwisko 16-bitowa tabela alokacji plików
(z 16-bitowymi wpisami sektorów)
Wprowadzono 1984-08-14 (PC DOS 3.0)
1984-08 (MS-DOS 3.0)
Identyfikator partycji MBR / EBR :
FAT16 :  każdy BDP :0x04
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Limity
Maks. rozmiar pliku ograniczona wielkością woluminu
Szczegółowość rozmiaru pliku 1 bajt
Maks. liczba plików 65 536 dla klastrów 32 KB
Maks. długość nazwy pliku Nazwa pliku 8.3 ze znakami OEM ,
255 znaków UCS-2 przy użyciu LFN
Maks. głębokość katalogu 32 poziomy lub 66 znaków (z CDS ),
60 poziomów lub więcej (bez CDS)
Cechy
Daty zarejestrowania Zmodyfikowana data/godzina, data/czas utworzenia (tylko DOS 7.0 i nowsze), data dostępu (dostępne tylko z włączoną funkcją ACCDATE ), data/czas usunięcia (tylko z DELWATCH 2)
Zakres dat 1980-01-01 do 2099-12-31 ( 2107-12-31 )
Rozdzielczość daty 2 sekundy na czas ostatniej modyfikacji,
10 ms na czas utworzenia,
1 dzień na datę dostępu,
2 sekundy na czas usunięcia
Atrybuty Tylko do odczytu , ukryty , systemowy , wolumin , katalog , archiwum
Uprawnienia systemu plików Prawa dostępu do plików, katalogów i woluminów dla odczytu , zapisu , wykonywania , usuwania tylko z DR-DOS , PalmDOS , Novell DOS , OpenDOS , FlexOS , 4680 OS , 4690 OS , Concurrent DOS , Multiuser DOS , System Manager , REAL/32 (Execute prawo tylko w przypadku FlexOS, 4680 OS, 4690 OS; indywidualne hasła do plików/katalogów nie w przypadku FlexOS, 4680 OS, 4690 OS; klasy uprawnień World / Group / Owner tylko z załadowanymi zabezpieczeniami dla wielu użytkowników)
Przezroczysta kompresja Na objętość, SuperStor , Stacker , DoubleSpace , DriveSpace
Przejrzyste szyfrowanie Tylko na objętość z DR-DOS

W 1984 roku IBM wypuścił PC AT , który wymagał PC DOS 3.0, aby uzyskać dostęp do dysku twardego o pojemności 20 MB. Microsoft wprowadził równolegle MS-DOS 3.0. Adresy klastrów zostały zwiększone do 16-bitowych, umożliwiając do 65 526 klastrów na wolumin. Jednak maksymalna możliwa liczba sektorów i maksymalny rozmiar partycji 32 MB nie uległy zmianie. Chociaż adresy klastrów były 16-bitowe, ten format nie był dziś powszechnie rozumiany jako FAT16 . Typ partycji 0x04 wskazuje tę formę FAT16 z mniej niż 65536 sektorów (mniej niż 32 MB dla rozmiaru sektora 512). Zaletą FAT16 było użycie mniejszych klastrów, dzięki czemu wykorzystanie dysku jest bardziej wydajne, szczególnie w przypadku dużej liczby plików o rozmiarze zaledwie kilkuset bajtów.

Ponieważ MS-DOS 3.0 sformatował wszystkie partycje 16 MB-32 MB w formacie FAT16, 20 MB dysk twardy sformatowany w MS-DOS 3.0 nie był dostępny dla MS-DOS 2.0. Od MS-DOS 3.0 do MS-DOS 3.30 nadal można było uzyskać dostęp do partycji FAT12 poniżej 15 MB, ale wymagało, aby wszystkie partycje 16 MB-32 MB były FAT16, a zatem nie mógł uzyskać dostępu do partycji MS-DOS 2.0 w tym zakresie rozmiarów. MS-DOS 3.31 i nowsze mogą ponownie uzyskać dostęp do 16 MB-32 MB partycji FAT12.

Logiczny sektor FAT

Implementacje systemów FAT12 i FAT16 w systemach MS-DOS i PC DOS nie mogły uzyskać dostępu do partycji dyskowych większych niż 32 megabajty. Kilku producentów opracowało własne warianty FAT w swoich wersjach OEM systemu MS-DOS.

Niektórzy dostawcy ( AST i NEC ) obsługiwali osiem , zamiast standardowych czterech , wpisów partycji podstawowej w swoim niestandardowym rozszerzonym głównym rekordzie rozruchowym ( MBR ) i przystosowali system MS-DOS do używania więcej niż jednej partycji podstawowej.

Inni dostawcy obeszli ograniczenia rozmiaru woluminów narzucone przez 16-bitowe wpisy sektorów, zwiększając widoczny rozmiar sektorów, na których działał system plików. Te sektory logiczne były większe (do 8192 bajtów) niż rozmiar sektora fizycznego (nadal 512 bajtów) na dysku. DOS-BIOS lub system BIOS łączyłby wtedy wiele sektorów fizycznych w sektory logiczne, z którymi system plików może pracować.

Zmiany te były niewidoczne dla implementacji systemu plików w jądrze DOS. Bazowy system DOS-BIOS przetłumaczył te sektory logiczne na sektory fizyczne zgodnie z informacjami o partycjonowaniu i fizyczną geometrią dysku.

Wadą tego podejścia była zwiększona pamięć wykorzystywana do buforowania i odblokowywania sektorów. Ponieważ starsze wersje DOS nie mogły używać dużych sektorów logicznych, producenci OEM wprowadzili nowe identyfikatory partycji dla swoich wariantów FAT, aby ukryć je przed standardowymi problemami MS-DOS i PC DOS. Znane identyfikatory partycji dla logicznych sektorów FAT to: 0x08( Commodore MS-DOS 3.x), 0x11( Leading Edge MS-DOS 3.x), 0x14(AST MS-DOS 3.x), 0x24(NEC MS-DOS 3.30), 0x56( AT&T MS-DOS 3.x), 0xE5( Tandy MS-DOS), 0xF2( Sperry IT MS-DOS 3.x, Unisys MS-DOS 3.3 – używany również przez Digital Research DOS Plus 2.1). Wersje OEM, takie jak Toshiba MS-DOS, Wyse MS-DOS 3.2 i 3.3, a także Zenith MS-DOS, również wykorzystują sektory logiczne.

Chociaż niestandardowe i nieoptymalne, te warianty FAT są całkowicie poprawne zgodnie ze specyfikacjami samego systemu plików. Dlatego też, nawet jeśli domyślne problemy MS-DOS i PC DOS nie były w stanie sobie z nimi poradzić, większość tych specyficznych dla producenta wariantów FAT12 i FAT16 można zamontować za pomocą bardziej elastycznych implementacji systemu plików w systemach operacyjnych, takich jak DR-DOS, po prostu zmieniając identyfikator partycji na jeden z rozpoznawanych typów. Ponadto, jeśli nie muszą już być rozpoznawane przez ich oryginalne systemy operacyjne, istniejące partycje można „przekonwertować” na woluminy FAT12 i FAT16 bardziej zgodne z wersjami MS-DOS/PC DOS 4.0–6.3, które nie obsługują różnych rozmiarów sektorów od 512 bajtów, poprzez przełączenie na BPB z 32-bitowym wpisem liczby sektorów, jak wprowadzono od DOS 3.31 (patrz FAT16B poniżej), utrzymując rozmiar klastra i zmniejszając rozmiar sektora logicznego w BPB do 512 bajtów, podczas gdy jednocześnie zwiększając liczbę sektorów logicznych na klaster, zarezerwowanych sektorów logicznych, łącznie sektorów logicznych i sektorów logicznych na FAT o ten sam współczynnik.

Równoległy rozwój w MS-DOS / PC DOS, który pozwolił na zwiększenie maksymalnego możliwego rozmiaru FAT, polegał na wprowadzeniu wielu partycji FAT na dysku twardym. Aby umożliwić korzystanie z większej liczby partycji FAT w sposób zgodny, w PC DOS 3.2 (1986) wprowadzono nowy typ partycji, partycję rozszerzoną (EBR), która jest pojemnikiem na dodatkową partycję o nazwie dysk logiczny . Od PC DOS 3.3 (kwiecień 1987) istnieje inna, opcjonalna rozszerzona partycja zawierająca następny dysk logiczny i tak dalej. W MBR dysku twardego można zdefiniować maksymalnie cztery partycje podstawowe lub partycję rozszerzoną oprócz maksymalnie trzech partycji podstawowych.

Końcowy FAT16

FAT16B
Deweloper(zy) Compaq , badania cyfrowe , IBM , Microsoft , Novell
Pełne imię i nazwisko 16-bitowa tabela alokacji plików
(z 32-bitowymi wpisami sektorów)
Wprowadzono 1987-11 ( Compaq MS-DOS 3.31 )
1988-06-28 ( DR DOS 3.31 )
1988 ( IBM DOS 4.0 )
1988 ( OS/2 1.1 )
1988 ( MS-DOS 4.0 )
Identyfikator partycji MBR / EBR :
FAT16B :  ( LBA ), ea BDP :0x060x0E

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Limity
Min. wielkość woluminu MB (z sektorami 128 bajtów)
32 MB (z  sektorami 512 bajtów)
256 MB (z sektorami 4 KB )
Maks. wielkość woluminu GB (z klastrami 32  KB )
4 GB (z klastrami 64 KB) (NT 4, PTS-DOS, EDR-DOS)
8 GB (z klastrami 128 KB i 1 lub 2 KB sektorami) (tylko NT 4 i EDR-DOS )
8 GB (z klastrami 128 KB i sektorami 512 bajtów) (tylko EDR-DOS)
16 GB (z klastrami 256 KB i sektorami 2 lub 4 KB) (tylko NT 4)
Maks. rozmiar pliku 2 147 483 647 bajtów (2 GB – 1) (bez LFS ) 4
294 967 295 bajtów (4 GB – 1) (z LFS )
ograniczone tylko rozmiarem woluminu (z FAT16+)
Szczegółowość rozmiaru pliku 1 bajt
Maks. liczba plików 65 460 dla klastrów 32 KB
Maks. długość nazwy pliku Nazwa pliku 8.3 ze znakami OEM ,
255 znaków UCS-2 przy użyciu LFN
Maks. głębokość katalogu 32 poziomy lub 66 znaków (z CDS ),
60 poziomów lub więcej (bez CDS)
Cechy
Daty zarejestrowania Zmodyfikowana data/godzina, data/czas utworzenia (tylko DOS 7.0 i nowsze), data dostępu (dostępne tylko z włączoną funkcją ACCDATE ), data/czas usunięcia (tylko z DELWATCH 2)
Zakres dat 1980-01-01 do 2099-12-31 ( 2107-12-31 )
Rozdzielczość daty 2 sekundy na czas ostatniej modyfikacji,
10 ms na czas utworzenia,
1 dzień na datę dostępu,
2 sekundy na czas usunięcia
Atrybuty Tylko do odczytu , ukryty , systemowy , wolumin , katalog , archiwum
Uprawnienia systemu plików Prawa dostępu do plików, katalogów i woluminów dla odczytu , zapisu , wykonywania , usuwania tylko z DR-DOS , PalmDOS , Novell DOS , OpenDOS , FlexOS , 4680 OS , 4690 OS , Concurrent DOS , Multiuser DOS , System Manager , REAL/32 (Execute prawo tylko w przypadku FlexOS, 4680 OS, 4690 OS; indywidualne hasła do plików/katalogów nie w przypadku FlexOS, 4680 OS, 4690 OS; klasy uprawnień World / Group / Owner tylko z załadowanymi zabezpieczeniami dla wielu użytkowników)
Przezroczysta kompresja Na objętość, SuperStor , Stacker , DoubleSpace , DriveSpace
Przejrzyste szyfrowanie Tylko na objętość z DR-DOS

W listopadzie 1987 roku Compaq Personal Computer DOS 3.31 (zmodyfikowana wersja OEM systemu MS-DOS 3.3 wydana przez firmę Compaq wraz z ich maszynami) wprowadził format znany dziś po prostu jako FAT16 , z rozszerzeniem 16-bitowej liczby sektorów dysku do 32 bity w BPB. Chociaż zmiany na dysku były niewielkie, cały sterownik dysku DOS musiał zostać przekonwertowany, aby używał 32-bitowych numerów sektorów, co komplikuje fakt, że został napisany w 16-bitowym języku asemblerowym . Rezultat został początkowo nazwany Dużym Systemem Plików DOS 3.31 . Microsoft „s DSKPROBEnarzędzie odnosi się do wpisania 0x06jako BigFAT , podczas gdy niektórych starszych wersjach FDISKopisał go jako BIGDOS . Technicznie jest znany jako FAT16B .

Ponieważ starsze wersje DOS nie były zaprojektowane do obsługi więcej niż 65535 sektorów, konieczne było wprowadzenie nowego typu partycji dla tego formatu, aby ukryć go przed problemami DOS sprzed 3.31. Oryginalna forma FAT16 (z mniej niż 65536 sektorami) miała typ partycji 0x04 . Aby poradzić sobie z dyskami większymi niż ten, 0x06wprowadzono typ wskazujący 65536 lub więcej sektorów. Oprócz tego rozszerzono sterownik dysku, aby obsłużyć również ponad 65535 sektorów. Jedyną inną różnicą między oryginalnym FAT16 a nowszym formatem FAT16B jest użycie nowszego formatu BPB z 32-bitowym wpisem sektora. Dlatego nowsze systemy operacyjne obsługujące format FAT16B radzą sobie również z oryginalnym formatem FAT16 bez koniecznych zmian.

Jeśli partycje, które mają być używane przez wydania DOS starsze niż DOS 3.31, muszą być tworzone przez nowoczesne narzędzia, jedynymi kryteriami teoretycznie niezbędnymi do spełnienia jest liczba sektorów mniejsza niż 65536 i użycie starego identyfikatora partycji ( 0x04). W praktyce jednak partycje typu 0x01i 0x04partycje podstawowe nie powinny znajdować się fizycznie poza pierwszymi 32 MB dysku, ze względu na inne ograniczenia w systemie MS-DOS 2.x, który w inny sposób nie radził sobie z nimi.

W 1988 roku ulepszenie FAT16B stało się bardziej ogólnie dostępne poprzez DR DOS  3.31, PC DOS 4.0, OS/2  1.1 i MS-DOS 4.0. Limit rozmiaru partycji został podyktowany 8-bitową liczbą podpisanych sektorów na klaster, która pierwotnie miała maksymalną wartość potęgi dwójki wynoszącą 64. Przy standardowym rozmiarze sektora dysku twardego wynoszącym 512 bajtów daje to maksymalnie 32 Rozmiar klastra KB, tym samym ustalając „ostateczny” limit rozmiaru partycji FAT16 na 2 GB dla rozmiaru sektora 512. Na nośnikach magnetooptycznych , które mogą mieć sektory 1 lub 2 KB zamiast 0,5 KB, ten limit rozmiaru jest proporcjonalnie większy.

Znacznie później system Windows NT zwiększył maksymalny rozmiar klastra do 64 KB, uznając liczbę sektorów na klaster za niepodpisaną. Jednak powstały format nie był kompatybilny z żadną inną implementacją FAT w tamtym czasie i generował większą wewnętrzną fragmentację . Windows 98 , SE i ME również obsługiwały odczyt i zapis tego wariantu, ale jego narzędzia dyskowe nie działały z nim, a niektóre usługi FCB nie są dostępne dla takich woluminów. Przyczynia się to do mylącej sytuacji kompatybilności.

Przed 1995 r. wersje systemu DOS uzyskiwały dostęp do dysku tylko przez adresowanie CHS . Kiedy Windows 95 (MS-DOS 7.0) wprowadził dostęp do dysku LBA , partycje mogły zacząć być fizycznie lokalizowane poza pierwszym c. 8 GB tego dysku, a tym samym poza zasięgiem tradycyjnego schematu adresowania CHS. Dlatego partycje częściowo lub całkowicie zlokalizowane poza barierą CHS musiały zostać ukryte przed systemami operacyjnymi bez obsługi LBA, używając 0x0Ezamiast tego nowego typu partycji w tabeli partycji. Partycje FAT16 używające tego typu partycji są również nazywane FAT16X . Jedyną różnicą w porównaniu z poprzednimi partycjami FAT16 jest fakt, że niektóre wpisy geometrii związane z CHS w rekordzie BPB, a mianowicie liczba sektorów na ścieżkę i liczba głów, mogą nie zawierać wartości lub wprowadzać w błąd i nie powinny być używane.

Liczba wpisów katalogu głównego dostępnych dla FAT12 i FAT16 jest określana podczas formatowania woluminu i jest przechowywana w polu 16-bitowym. Dla danej liczby RDEi rozmiaru sektora SSliczba RDSsektorów katalogu głównego wynosi RDS = ceil((RDE × 32) / SS), i RDEjest zwykle wybierana do wypełnienia tych sektorów, tj RDE × 32 = RDS × SS. . Nośniki FAT12 i FAT16 zwykle używają 512 wpisów katalogu głównego na nośnikach innych niż dyskietki. Niektóre narzędzia innych firm, takie jak mkdosfs , pozwalają użytkownikowi ustawić ten parametr.

FAT32

FAT32
Deweloper(zy) Microsoft , Caldera
Wprowadzono Sierpień 1996 ( Windows 95 OSR2 )
Identyfikator partycji MBR / EBR :
FAT32 :  ( LBA ), ea BDP :0x0B0x0C

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Limity
Min. wielkość woluminu 32  MB -4,5  KB (z klastrami 65525 i sektorami 512 bajtów)
256 MB-36 KB (z klastrami 65525 i sektorami 4  KB )
Maks. wielkość woluminu TB (z sektorami 512 bajtów)
8 TB (z sektorami 2 KB i klastrami 32 KB)
16 TB (z sektorami 4 KB i klastrami 64 KB)
Maks. rozmiar pliku 2 147 483 647 bajtów (2 GB – 1) (bez LFS ) 4
294 967 295 bajtów (4 GB – 1) (z LFS )
274 877 906 943 bajtów (256 GB – 1) (tylko z FAT32+)
Szczegółowość rozmiaru pliku 16 bajtów
Maks. liczba plików 268 173 300 dla klastrów 32 KB
Maks. długość nazwy pliku Nazwa pliku 8.3 ze znakami OEM ,
255 znaków UCS-2 przy użyciu LFN
Maks. głębokość katalogu 32 poziomy lub 66 znaków (z CDS ),
60 poziomów lub więcej (bez CDS)
Cechy
Daty zarejestrowania Zmodyfikowana data/godzina, data/czas utworzenia (tylko DOS 7.0 i nowsze), data dostępu (dostępne tylko z włączoną funkcją ACCDATE ), data/czas usunięcia (tylko z DELWATCH 2)
Zakres dat 1980-01-01 do 2099-12-31 ( 2107-12-31 )
Rozdzielczość daty 2 sekundy na czas ostatniej modyfikacji,
10 ms na czas utworzenia,
1 dzień na datę dostępu,
2 sekundy na czas usunięcia
Atrybuty Tylko do odczytu , ukryty , systemowy , wolumin , katalog , archiwum
Uprawnienia systemu plików Częściowo, tylko z DR-DOS , REAL/32 i 4690 OS
Przezroczysta kompresja tak

Aby przezwyciężyć ograniczenie rozmiaru woluminu FAT16, a jednocześnie umożliwić kodowi trybu rzeczywistego DOS obsługę tego formatu, Microsoft zaprojektował nową wersję systemu plików FAT32 , który obsługuje zwiększoną liczbę możliwych klastrów, ale może ponownie wykorzystać większość istniejącego kodu, dzięki czemu zużycie pamięci konwencjonalnej zostało zwiększone o mniej niż 5 KB w systemie DOS. Wartości klastra są reprezentowane przez liczby 32-bitowe , z których 28 bitów służy do przechowywania numeru klastra.

Maksymalne rozmiary

Sektor rozruchowy FAT32 używa 32-bitowego pola do obliczania liczby sektorów, ograniczając maksymalny rozmiar woluminu FAT32 do 2  terabajtów przy rozmiarze sektora 512  bajtów . Maksymalny rozmiar woluminu FAT32 to 16 TB przy rozmiarze sektora 4096 bajtów. Wbudowane narzędzie formatu dysku powłoki systemu Windows w systemie Microsoft Windows obsługuje tylko rozmiary woluminów do 32 GB, ale większe woluminy FAT32 można tworzyć za pomocą wiersza polecenia , programu PowerShell lub narzędzi innych firm i odczytywać przez system Microsoft Windows.

Maksymalny możliwy rozmiar pliku na woluminie FAT32 to 4  GB minus 1 bajt, czyli 4 294 967 295 (2 32  - 1) bajtów. Ograniczenie to jest konsekwencją wpisu o długości 4 bajtów pliku w tabeli katalogów i wpłynęłoby również na stosunkowo duże partycje FAT16 włączone przez wystarczający rozmiar sektora.

Podobnie jak FAT12 i FAT16, FAT32 nie zawiera bezpośredniej wbudowanej obsługi długich nazw plików, ale woluminy FAT32 mogą opcjonalnie przechowywać długie nazwy plików VFAT oprócz krótkich nazw plików w dokładnie taki sam sposób, w jaki długie nazwy plików VFAT zostały opcjonalnie zaimplementowane dla woluminów FAT12 i FAT16 .

Rozwój

FAT32 został wprowadzony w systemie Windows 95 OSR2 (MS-DOS 7.1) w 1996 roku, chociaż do jego użycia potrzebne było przeformatowanie, a DriveSpace 3 (wersja dołączona do systemu Windows 95 OSR2 i Windows 98) nigdy go nie obsługiwała. W systemie Windows 98 wprowadzono narzędzie do konwersji istniejących dysków twardych z FAT16 na FAT32 bez utraty danych.

W linii Windows NT natywna obsługa FAT32 pojawiła się w Windows 2000 . Darmowy sterownik FAT32 dla Windows NT 4.0 był dostępny w Winternals , firmie przejętej później przez Microsoft. Pozyskanie sterownika z oficjalnych źródeł nie jest już możliwe. Od 1998 roku dynamicznie ładowany sterownik DRFAT32 firmy Caldera może być używany do włączania obsługi FAT32 w DR-DOS. Pierwszą wersją DR-DOS, która natywnie wspierała dostęp do FAT32 i LBA, był OEM DR-DOS 7.04 w 1999 roku. W tym samym roku IMS wprowadził natywną obsługę FAT32 w REAL/32 7.90, a IBM 4690 OS dodał obsługę FAT32 w wersji 2. Ahead Software dostarczył kolejny dynamicznie ładowany sterownik FAT32.EXE dla DR-DOS 7.03 z Nero Burning ROM w 2004 roku. IBM wprowadził natywną obsługę FAT32 z OEM PC DOS 7.1 w 1999 roku.

Dla partycji FAT32 zarezerwowano dwa typy partycji 0x0Bi 0x0C. Ten ostatni typ jest również nazywany FAT32X , aby wskazać użycie dostępu do dysku LBA zamiast CHS. Na takich partycjach wpisy geometrii związane z CHS , a mianowicie adresy sektorów CHS w MBR, a także liczba sektorów na ścieżkę i liczba nagłówków w rekordzie EBPB, mogą nie zawierać wartości lub wprowadzać w błąd i nie powinny być używane.

Rozszerzenia

Rozszerzone atrybuty

OS / 2 w dużym stopniu zależy od rozszerzonych atrybutów (EAS) i przechowuje je w ukrytym pliku o nazwie „ EA␠DATA.␠SF” w katalogu głównym na FAT12 lub FAT16 objętości. Ten plik jest indeksowany przez dwa wcześniej zarezerwowane bajty we wpisie katalogu pliku (lub katalogu) pod offset 0x14. W formacie FAT32 te bajty przechowują górne 16 bitów numeru klastra początkowego pliku lub katalogu, co uniemożliwia przechowywanie EA OS/2 w systemie FAT32 przy użyciu tej metody.

Jednak sterownik instalowalnego systemu plików FAT32 (IFS) innej firmy, FAT32.IFS w wersji 0.70 i nowszych, opracowany przez firmę Henk Kelder & Netlabs dla systemów OS/2, eComStation i ArcaOS, przechowuje rozszerzone atrybuty w dodatkowych plikach z nazwami plików z ciągiem „ ␠EA.␠SF” dołączonym do zwykła nazwa pliku, do którego należą. Sterownik wykorzystuje również bajt w przesunięciu 0x0Cwe wpisach katalogu do przechowywania specjalnego bajtu znacznika wskazującego na obecność rozszerzonych atrybutów, aby przyspieszyć działanie. (To rozszerzenie jest krytycznie niezgodne z metodą FAT32+ służącą do przechowywania plików większych niż 4 GB minus 1 na woluminach FAT32).

Rozszerzone atrybuty są dostępne za pośrednictwem pulpitu Workplace Shell , za pośrednictwem skryptów REXX oraz wielu systemowych GUI i narzędzi wiersza poleceń (takich jak 4OS2 ).

Aby dostosować się do swojego podsystemu OS/2 , Windows NT obsługuje obsługę rozszerzonych atrybutów w HPFS , NTFS , FAT12 i FAT16. Przechowuje EA w systemach FAT12, FAT16 i HPFS przy użyciu dokładnie tego samego schematu co OS/2, ale nie obsługuje żadnego innego rodzaju ADS, który jest przechowywany na woluminach NTFS. Próba skopiowania pliku z dowolnym ADS innym niż EA z woluminu NTFS na wolumin FAT lub HPFS powoduje wyświetlenie komunikatu ostrzegawczego z nazwami ADS, które zostaną utracone. Nie obsługuje metody FAT32.IFS do przechowywania EA na woluminach FAT32.

System Windows 2000 i nowszy działa dokładnie tak samo jak Windows NT, z tym wyjątkiem, że ignoruje EA podczas kopiowania do FAT32 bez żadnego ostrzeżenia (ale wyświetla ostrzeżenie dla innych reklam reklamowych, takich jak „Macintosh Finder Info” i „Macintosh Resource Fork”).

Cygwin również używa EA␠DATA.␠SFplików „ ”.

Długie nazwy plików

Jednym z user experience goli dla projektantów Windows 95 była możliwość korzystania z długich nazw plików (LFNs-up do 255 UTF-16 jednostek kodowych długości), oprócz klasycznych 8,3 nazwach (SFNs). W celu zapewnienia zgodności wstecz i do przodu, nazwy LFN zostały zaimplementowane jako opcjonalne rozszerzenie istniejących struktur systemu plików FAT przy użyciu obejścia sposobu rozmieszczenia wpisów katalogów.

Ta przezroczysta metoda przechowywania długich nazw plików w istniejących systemach plików FAT bez zmiany ich struktur danych jest zwykle znana jako VFAT (od „wirtualnego FAT”) po sterowniku urządzenia wirtualnego systemu Windows 95 .

Systemy operacyjne bez VFAT mogą nadal bez ograniczeń uzyskiwać dostęp do plików pod ich skróconymi aliasami; jednak skojarzone długie nazwy plików mogą zostać utracone, gdy pliki o długich nazwach plików są kopiowane w systemach operacyjnych, które nie obsługują funkcji VFAT.

W systemie Windows NT obsługa długich nazw plików VFAT rozpoczęła się od wersji 3.5 .

Linux udostępnia sterownik systemu plików VFAT do pracy z woluminami FAT z długimi nazwami plików VFAT. Przez pewien czas dostępny był sterownik UVFAT , który zapewniał łączną obsługę uprawnień w stylu UMSDOS z długimi nazwami plików VFAT.

OS/2 dodał obsługę długich nazw plików do FAT przy użyciu rozszerzonych atrybutów (EA) przed wprowadzeniem VFAT. Tak więc długie nazwy plików VFAT są niewidoczne dla OS/2, a długie nazwy plików EA są niewidoczne dla Windows; dlatego doświadczeni użytkownicy obu systemów operacyjnych musieliby ręcznie zmienić nazwy plików.

Human68K obsługuje do 18.3 nazw plików i ( Shift JIS ) znaki Kanji w zastrzeżonym wariancie systemu plików FAT.

W celu wsparcia Java zastosowaniach FlexOS -na IBM OS 4690 Wersja 2 wprowadzono własny wirtualny system plików (VFS) Architektura przechowywania długich nazw plików w systemie plików FAT w kompatybilny wstecz mody. Jeśli ta opcja jest włączona, wirtualne nazwy plików (VFN) są dostępne pod oddzielnymi literami dysków logicznych, podczas gdy rzeczywiste nazwy plików (RFN) pozostają dostępne pod oryginalnymi literami dysków.

Rozwidlenia i alternatywne strumienie danych

Sam system plików FAT nie jest przeznaczony do obsługi alternatywnych strumieni danych (ADS), ale niektóre systemy operacyjne, które w dużym stopniu od nich zależą, opracowały różne metody obsługi ich na woluminach FAT. Takie metody albo przechowują dodatkowe informacje w dodatkowych plikach i katalogach ( klasyczny Mac OS i macOS ), albo nadają nową semantykę wcześniej nieużywanym polom struktur danych FAT na dysku ( OS/2 i Windows NT ).

System Mac OS korzystający z programu PC Exchange przechowuje różne daty, atrybuty plików i długie nazwy plików w ukrytym pliku o nazwie „ FINDER.DAT”, a rozwidlenia zasobów (powszechny ADS w systemie Mac OS) w podkatalogu o nazwie „ RESOURCE.FRK”, w każdym katalogu, w którym są używane. Począwszy od PC Exchange 2.1, przechowują one długie nazwy plików Mac OS jako standardowe długie nazwy plików FAT i konwertują nazwy plików FAT dłuższe niż 31 znaków na unikatowe 31-znakowe nazwy plików, które mogą być następnie widoczne dla aplikacji Macintosh.

macOS przechowuje rozwidlenie zasobów i metadane (atrybuty plików, inne usługi ADS) przy użyciu formatu AppleDouble w ukrytym pliku o nazwie utworzonej z nazwy pliku właściciela poprzedzonej przedrostkiem „ ._”, a Finder przechowuje niektóre metadane folderów i plików w ukrytym pliku o nazwie „ .DS_Store” (ale zauważ, że Finder używa .DS_Storenawet na natywnym systemie plików macOS, HFS+ ).

Uprawnienia i nazwy plików UMSDOS

Wczesne dystrybucje Linuksa obsługiwały również format znany jako UMSDOS , wariant FAT z atrybutami plików Unix (takimi jak długa nazwa pliku i uprawnienia dostępu) przechowywanymi w oddzielnym pliku o nazwie „ --linux-.---”. UMSDOS wyszedł z użycia po wydaniu VFAT i nie jest domyślnie włączony w Linuksie od wersji 2.5.7 i nowszych. Przez pewien czas Linux zapewniał także łączną obsługę uprawnień w stylu UMSDOS i długich nazw plików VFAT poprzez UVFAT .

TŁUSZCZ+

W 2007 roku otwarty projekt FAT+ zaproponował sposób przechowywania większych plików do 256 GB minus 1 bajt lub 274 877 906 943 (2 38  - 1) bajtów, na nieznacznie zmodyfikowanych i w inny sposób zgodnych z poprzednimi wersjami woluminach FAT32, ale stwarza ryzyko, że narzędzia dyskowe lub FAT32 implementacje, które nie są świadome tego rozszerzenia, mogą obcinać lub usuwać pliki przekraczające normalny limit rozmiaru pliku FAT32. Obsługa FAT32+ i FAT16+ jest ograniczona do niektórych wersji DR-DOS i niedostępna w popularnych systemach operacyjnych. (To rozszerzenie jest krytycznie niezgodne z /EASopcją metody FAT32.IFS do przechowywania rozszerzonych atrybutów OS/2 na woluminach FAT32).

Pochodne

Turbo TŁUSZCZ

W swoim systemie plików NetWare ( NWFS ) firma Novell zaimplementowała mocno zmodyfikowaną odmianę systemu plików FAT dla systemu operacyjnego NetWare . W przypadku większych plików wykorzystywał funkcję wydajności o nazwie Turbo FAT .

FATX

FATX to rodzina systemów plików przeznaczonych dla Microsoft „s Xbox konsola gier wideo twardych dysków i kart pamięci , wprowadzony w 2001 roku.

Przypominając te same podstawowe koncepcje projektowe co FAT16 i FAT32 , struktury na dysku FATX16 i FATX32 są uproszczone, ale zasadniczo niekompatybilne z normalnymi systemami plików FAT16 i FAT32, co uniemożliwia montowanie takich woluminów przez normalne sterowniki systemu plików FAT.

Non dyskietka superblock sektor 4 kb i posiada 18 bajtów dużą BPB podobną strukturę całkowicie różnym od normalnego BPBs . Klastry mają zwykle rozmiar 16 KB, a na konsoli Xbox jest tylko jedna kopia FAT. Wpisy katalogu mają rozmiar 64 bajtów zamiast normalnych 32 bajtów . Pliki mogą mieć nazwy plików o długości do 42 znaków przy użyciu zestawu znaków OEM i mieć rozmiar do 4 GB minus 1 bajt. Znaczniki czasowe na dysku zawierają daty i godziny utworzenia, modyfikacji i dostępu, ale różnią się od FAT: w FAT epoką jest rok 1980 ; w FATX epoka to 2000 . Na Xbox 360 epoka to 1980 rok.

exFAT

exFAT to system plików wprowadzony wraz z Windows Embedded CE 6.0 w listopadzie 2006 i wprowadzony do rodziny Windows NT z Vista Service Pack 1 i Windows XP Service Pack 3 (i/lub oddzielną instalacją Windows XP Update KB955704). Jest luźno oparty na architekturze tabeli alokacji plików, ale niekompatybilny, zastrzeżony i chroniony patentami.

exFAT jest przeznaczony do użytku na dyskach flash i kartach pamięci, takich jak SDXC i Memory Stick XC , gdzie FAT32 jest używany w inny sposób. Sprzedawcy zwykle wstępnie formatują z nim karty SDXC. Jego główną zaletą jest przekroczenie limitu rozmiaru pliku 4 GB, ponieważ odniesienia do rozmiaru pliku są przechowywane z ośmioma zamiast czterech bajtów, zwiększając limit do 2 64-1  bajtów.

GUI Microsoftu i narzędzia formatu wiersza poleceń oferują go jako alternatywę dla NTFS (a dla mniejszych partycji dla FAT16B i FAT32 ). MBR typu partycji jest 0x07(podobnie jak stosowane do IFS , HPFS i NTFS). Informacje o geometrii logicznej znajdujące się w VBR są przechowywane w formacie nie przypominającym żadnego typu BPB.

Na początku 2010 roku system plików został poddany inżynierii wstecznej przez Instytut SANS . 28 sierpnia 2019 r. Microsoft ogłosił, że udostępni publicznie specyfikację techniczną exFAT, aby mogła być używana w jądrze Linux i innych systemach operacyjnych.

Patenty

W połowie lat dziewięćdziesiątych Microsoft wystąpił o szereg patentów na kluczowe elementy systemu plików FAT i otrzymał je. Wszystkie cztery dotyczą rozszerzeń długich nazw plików do FAT, które po raz pierwszy pojawiły się w systemie Windows 95 : patent USA 5 579 517, patent USA 5 745 902, patent USA 5 758 352, patent USA 6 286 013 (wszystkie wygasły od 2013 r.).

3 grudnia 2003 r. firma Microsoft ogłosiła, że ​​będzie oferować licencje na korzystanie ze swojej specyfikacji FAT i „powiązanej własności intelektualnej” za cenę 0,25 USD tantiem za sprzedaną jednostkę, z maksymalną licencją 250 000 USD za umowę licencyjną. W tym celu Microsoft przytoczył cztery patenty dotyczące systemu plików FAT jako podstawę swoich roszczeń dotyczących własności intelektualnej.

W specyfikacji EFI FAT32 Microsoft wyraźnie przyznaje szereg praw, które wielu czytelników zinterpretowało jako zezwalające producentom systemów operacyjnych na implementację FAT.

Patenty firm innych niż Microsoft dotyczące FAT obejmują: Patent USA 5 367 671, specyficzny dla rozszerzonych atrybutów obiektów OS/2 (wygasł w 2011 r.).

Wyzwania i procesy sądowe

Fundacja Public Patent (PUBPAT) przedstawił dowody na Patentów i Znaków Towarowych (USPTO) w 2004 kwestionując ważność patentu US 5579517, w tym znanych opisów z Xerox i IBM. USPTO wszczęło dochodzenie i zakończyło odrzucenie wszystkich roszczeń patentowych. W następnym roku USPTO ogłosiło dalej, że po ponownym rozpatrzeniu sprawy potwierdziło odrzucenie '517 i dodatkowo uznało patent US 5,758.352 za ​​nieważny na tej podstawie, że patent miał niewłaściwych cesjonariuszy.

Jednak w 2006 roku USPTO orzekło, że cechy implementacji systemu FAT przez Microsoft są „nowe i nieoczywiste”, cofając zarówno wcześniejsze decyzje, jak i pozostawiając ważne patenty.

W lutym 2009 r. firma Microsoft złożyła przeciwko firmie TomTom pozew o naruszenie patentów, twierdząc, że produkty producenta urządzenia naruszają patenty związane z długimi nazwami plików VFAT . Ponieważ niektóre produkty TomTom są oparte na Linuksie , był to pierwszy raz, kiedy Microsoft próbował wyegzekwować swoje patenty na platformie Linux. Pozew został rozstrzygnięty poza sądem w następnym miesiącu z porozumieniem, że Microsoft uzyska dostęp do czterech patentów TomTom, że TomTom zrezygnuje ze wsparcia dla długich nazw plików VFAT ze swoich produktów, a w zamian Microsoft nie będzie występował przeciwko TomTom w sprawie pięcioletni okres obowiązywania ugody.

W październiku 2010 r. Microsoft wniósł przeciwko Motoroli pozew o naruszenie patentu, twierdząc, że kilka patentów (w tym dwa z patentów VFAT) nie uzyskało licencji na użytkowanie w systemie operacyjnym Android . Złożyli również skargę do ITC . Twórcy oprogramowania open source opracowali metody mające na celu obejście patentów Microsoftu.

W 2013 r. patent EP0618540 „wspólna przestrzeń nazw dla długich i krótkich nazw plików” (wygasł od 2014 r.) został unieważniony w Niemczech. Po wycofaniu apelacji wyrok ten uprawomocnił się w dniu 28 października 2015 r.

Zobacz też

Uwagi

  1. ^ B c d e f od Windows 2000 , Microsoft Windows używa UTF-16 zamiast UCS-2 na wewnętrznej "Unicode" . W UTF-16 „znak” (punkt kodu) może zajmować dwie jednostki kodu.
  2. ^ Zaobserwowano, że Windows XP tworzy podobne dyski hybrydowe podczas formatowania dysków ZIP-100 sformatowanych w systemie FAT16B do formatu FAT32. Wynikowe woluminy były w formacie FAT32, ale nadal używały FAT16B EBPB. (Nie jest jasne, w jaki sposób system Windows określa lokalizację katalogu głównego na woluminach FAT32, jeśli użyto tylko EBPB FAT16).
  3. ^ a b Źródła różnią się w odniesieniu do pierwszego terminala wprowadzania danych NCR integrującego obsługę systemu plików FAT. Według Stephena Manesa i Paula Andrewsa, „Gates” został opracowany dla NCR 8200 pod koniec 1977 roku, błędnie sklasyfikowany jako aktualizacja na dyskietce do NCR 7200 , który został wydany w latach 1975-11 ( model I i IV ) oraz został zbudowany na 8-bitowym procesorze Intel 8080 , ale był oparty tylko na kasecie. Jednak NCR Century 8200 był 16-bitowym minikomputerem, do którego można było podłączyć kilka terminali wprowadzania danych. Marc McDonald przypomniał sobie nawet NCR 8500 , mainframe z serii Criterion, co również można wykluczyć. Zapowiedziany 1977-10 do wysyłki w 1978-02, NCR wprowadził również serię NCR I-8100, w tym oparte na 8080 modele NCR I-8130 i NCR I-8150 dla małych firm wyposażonych w dwie dyskietki. Inne źródła wskazują, że faktyczną platformą docelową była albo sama seria NCR 7200, albo następna seria. NCR Basic Plus 6 (oparty na Microsoft Extended BASIC-80 ) stał się dostępny dla opartego na kasecie modelu VI NCR 7200 w I kwartale 1977 roku. Seria NCR 7500 została wydana w 1978 roku, oparta na podobnym sprzęcie 8080, ale teraz obejmuje modele NCR 7520 i 7530 z 8-calowymi dyskietkami. NCR Basic +6 , prekursor lub adaptacja Standalone Disk BASIC-80 była dla nich dostępna co najmniej od 1979 roku. Jedno ze źródeł twierdzi, że specjalny wariant modelu NCR 7200 z dwiema 8-calowymi dyskietkami i Microsoft BASIC istniał i został zaimportowany przez NCR Sydney najmniej do Australii.
  4. ^ DR-DOS jest w stanie wystartować nośniki z sektorami logicznymi FAT12/FAT16 z rozmiarami sektorów logicznych do 1024 bajtów.
  5. ^ Sterownik o nazwie VFAT pojawił się przed Windows 95 , w Windows for Workgroups 3.11, ale ta starsza wersja była używana tylko do implementacji 32-bitowego dostępu do plików i nie obsługiwała długich nazw plików .

Bibliografia

Zewnętrzne linki