Która nazwa jest poprawna, exFAT lub FAT64?

Odpowiedzi:

81

Nie ma czegoś takiego jak FAT64, a przynajmniej nie w tej chwili. Istnieje exFAT, który niektórzy nazywają FAT64.

Dlaczego to robią? Historia tabeli alokacji plików jest dość zaangażowana. Obecnie najczęstszymi implementacjami są FAT32 (choć jest to coraz rzadsze) i ExFAT. FAT32 był znaczącą poprawą w porównaniu ze starszymi systemami plików FAT, umożliwiając wielkości woluminów do 2 TB (przy wielkości sektora 512 bajtów) i do 16 TB (przy wielkości sektora 64 KB). Jest to wciąż wystarczająco duże dla większości instalacji w 2016 roku. Niestety największy rozmiar pliku to (jeden bajt mniej niż) 4 GB, co jest obecnie dość małe.

exFAT eliminuje ten limit 4 GB, pozwalając na przesyłanie plików do regionu PB. Podobnie z wielkością woluminu. Robi to za pomocą pól o długości 64-bit. Ponieważ FAT32 używał 32-bitowych pól, exFAT naturalnie uzyskał pseudonim FAT64.

Więc tak. FAT64 i exFAT to to samo. exFAT to poprawna nazwa.

ChrisInEdmonton
źródło
5
Ale rozmiar nie odnosi się ogólnie do „pól długości”, ale do wielkości wyliczenia klastra. Czy to wciąż 32 bity?
JDługosz
3
@ JDługosz Tak to wygląda. Wikipedia podaje limit jako 2 ^ 32 - 11 klastrów, co dobrze zgadza się z 32-bitowym numerem klastra. W przeciwieństwie do FAT12 (12-bitowe numery klastrów), FAT16 (16-bitowe numery klastrów) i FAT32 (32-bitowe numery klastrów), gdzie liczba w powszechnie używanej nazwie bezpośrednio odwzorowuje długość numeru klastra. Jestem pewien, że miałem wiele, wiele plików większych niż 2 ^ 16 bajtów w ciągu FAT16.
CVn
Zgodził się z odpowiedzią. Celem ExFAT było pozbywanie się ograniczeń FAT32, takich jak rozmiar pliku i rozmiar partycji, co zrobił. Dlatego pola 64-bitowe i dlatego logiczny pseudonim FAT64 (który technicznie jest).
Overmind,
Rozmiar pliku zawsze wynosił 4 bajty od pierwszego użycia FAT na MS-DOS, choć historia Wikipedii pokazuje, że 8-bitowy prekursor miał najwyraźniej 24 bity lub 3 bajty.
JDługosz
1
Wartość minus 11 wynika z faktu, że klaster 0 i 1 nie istnieją, klaster FF7 oznacza złe klastry, a dla wcześniejszych FAT FF8 przez FFF (8 komórek) [2 + 1 + 8 = 11]
Robert Shulkich
26

Rany ma w większości rację. Jednak FAT nie był oparty na polu długości, lecz na podstawie wielkości wartości indeksu. Tak więc z dyskietkami miałeś FAT12, gdzie każda komórka w tabeli FAT miała 12 bitów, następnie FAT16, a następnie FAT32, który miał 32 bity, ALE UŻYWAŁ tylko 28 bitów. exFat wykorzystuje również 32-bitowe wpisy komórek, ale WSZYSTKIE 32-bitowe są używane i pozwala na utworzenie klastrów 2 ^ 32 z maksymalnym rozmiarem klastra 32GiB dla całego systemu plików około 128PiB

System plików nazywał się FAT64, ponieważ nie znając struktury systemu plików, wszyscy zakładali, że podwoił FAT z 32 do 64, i tak nie jest. Stworzenie exFAT miało rozwiązać wiele problemów. Bariera 4 GB do rozmiaru pliku była duża, ponieważ w grę wchodzi wiele filmów o wysokiej jakości HD, w których godziny wideo zajmują dużo miejsca. Szczególnie przy wysokiej rozdzielczości HD (1080P) i bardzo wysokiej rozdzielczości (4K), która może przekroczyć tę barierę w ciągu 10-15 minut. Ale system plików został również zbudowany pod kątem wydajności, zwłaszcza do nagrywania wideo. Wyższe prędkości zapisu, mniejszy narzut. W tym celu wprowadzono mniej aktualizacji FAT, wprowadzono mapę bitową, ciągłe ulepszenia plików, wstępnie przydzielone przestrzenie plików, aby zmniejszyć obciążenie. exFAT to standardowy system plików kart pamięci SDXC, ze względu na ulepszenia w systemie plików exFAT.

Robert Shulkich
źródło
4
„Stolik dzienny”? Czy to literówka czy coś takiego?
JDługosz
4
@ JDługosz Wojownik nocnego stolika.
JFA
1
Dzień jest literówka z powodu autokorekty, czyli FAT - Tabela alokacji plików
Robert Shulkich
2
Chcesz więcej brudu na elementach wewnętrznych exFAT? sans.org/reading-room/whitepapers/forensics/…
Robert Shulkich
13

Podczas gdy exFAT pożycza niektóre koncepcje FAT, istnieją poważne różnice, więc twierdzenie, że exFAT jest (zasadniczo) FAT64, jest po prostu błędne.

Pomiędzy FAT12 a 16 zmieniono tylko rozmiar tabeli alokacji. FAT32 miał jeszcze większą tabelę alokacji (32 bity na wpis), wprowadzono kilka nowych koncepcji (adres zmienny dla katalogu głównego, tabela szybkiego wyszukiwania dla następnego wolnego wpisu, nadmiarowe BPB,…). (pamiętaj, że VFAT, tj. długie nazwy plików itp.) nie mają połączenia z FAT32, ponieważ są po prostu (dość sprytnym) włamaniem do zarządzania katalogami)

Pisząc system plików exFAT, po prostu używając sterownika FAT32 i ponownie rozszerzając tabelę alokacji, nigdzie nie dojdziesz (po prostu dlatego, że tabela alokacji nadal ma 32-bitową szerokość), ale exFAT wprowadza bitmapę woluminu do szybkiego wyszukiwania przydzielonych sektorów, używa tablica alokacji tylko dla plików, które nie są przechowywane w jednym kawałku (w przeciwnym razie po prostu wykorzystuje wpisy datarun) i ma zupełnie inny format przechowywania katalogów.

Ro-ee
źródło
5

Tak, exFAT jest oficjalną nazwą, a FAT64 jest jego synonimem.

Máté Juhász
źródło
13
Czy masz na to powód?
CVn
1
nie, nie powołuję się na to, żaden zasób, który znalazłem, wspomina o obu razem, ale nie zostało to wyraźnie powiedziane.
Máté Juhász
6
Pamiętaj, że ta odpowiedź jest, moim zdaniem, poprawna i została opublikowana przed moją bardziej szczegółową odpowiedzią.
ChrisInEdmonton