Tak zas vznik chce asi posuzovat v nějakém kontextu doby vzniku.
NTFS řešilo zgruntu spoustu věcí mnohem líp (a to beru v potaz nejen FAT, ale i tehdejší stav ext2, FFS) a přišlo v r. 93, do pár let potom už to mělo v NT4 kompresi, ACL atp.
Akorát bylo na spousty zařízení a použití v té době příliš heavy-handed, navíc bylo NTFS úplně uzavřené a svázané s jedním OS.
FAT12/16+VFAT, resp. FAT32 byly uvedené jako implementačně jednodušší, kompatibilní přechodové varianty vhodné i pro výměnná zařízení atp. Zpětně se to může zdát jako nešťastný krok, ale u MS byla kompatibilita vždycky prioritou i když si do budoucna přidělali kouli na nohu (třeba v porovnání s relativně mnohem rychlejšími změnami u Apple).
ExFAT přišel až o víc jak dekádu později, byl také patentovaný, a neměl volnou specifikaci až do roku 2019. Což jeho rozšíření upřímně vzato také moc nepomohlo.
Navíc i přestože ExFAT řešil spousty nedostatku návrhu původní FAT, tak jsou tam pak také praktické věci, které nejsou úplně šťastné. U původního systému například spousta zařízení zapisovala FAT část paralelně dvakrát, takže při nějaké závadě povrchu, kdy byla ta první nečitelná na špatném sektoru, dalo se zkusit použít tu druhou a zvýšila se pravděpodobnost obnovy (bez pracné rekonstrukce souborů analýzou datové části). U ExFATu je sice také možnost mít dvě FATky, ale je to víceméně specifikací svázáno se subvariantou TexFAT (transakční), která se, co vím, používala jen na Windows CE. Prakticky jsem se s tím nesetkal a většinou se FAT zapisuje jen jednou.
20. 8. 2024, 00:08 editováno autorem komentáře
Je to hlupost aj v kontexte doby, davno existovalo napr. HPFS (1989). Spatna kompatibilita nebola ziadna pretoze to malo ine Partition ID.
Tu je zoznam toho kde sa dalo inspirovat.
Omlouvám se, ale nejspíš jste špatně pochopil můj předchozí post.
Oni v té době nedělali pokročilou náhradu FAT filesysému, to už bylo a jmenovalo se to NTFS. Btw. to HPFS z IBM OS/2 používali také, měli spolu deal, než se vyvinul Windows NT, které bylo HPFS poměrně dost inspirované. Dokonce NT 3.x mělo driver pro HPFS (a platili z toho licence IBM). NTFS byl pokročilejší filesystém než HPFS, měl žurnálování a byl připravené na postupné přidávání dalších vlastností, které přišly později (ACL, komprese, šifrování). Což byl i důvod, proč samo IBM mnohem později přidalo do OS/2 JFS, který byl původně jen v AIXu.
Ale zpátky k FAT a kompatibilitě. Jak více, tak MS vyvíjel v devadesátých letech dvě větve svých OS. První bylo NT s novým kernelem, filesystémem a spoustou věcí řešených z gruntu jinak. Tam bylo hlavní kritérium udělat věcí líp a s výhledem do budoucna. Mělo to vyšší HW nároky, zpočátku se to primárně používalo na serverech a pracovních stanicích.
Druhá vyvíjená větev systémů (95, 98, ME) byl takový schizofrenní hybrid. Protože tam byl pořád přítomen režim DOSu, v kterém byl dosupný real-mode a přímý přístup na hardware. Důvod byl ten, že za minulých 15 let se nasbíraly desítky tisíc aplikací a her, a dost z nich nechodilo dobře v režimu nových Windows s GUI, virtuální pamětí, schedulerem. Klienti a firmy chtěly tyhle aplikace používat, byla to i pro MS priorita u téhle větve.
Když jste tedy ukončil Windows, nebo přerušil startovací process (klávesou F8, nebo direktivou v msdos.sys), tak jste byl v "normálním" DOSu (7.0 ve Win95 a 7.1 ve Win98).
Logicky tedy i použitý souborový systém musel být schopen schopen fungovat v DOSu. Takže se rozhodli upravit, to co měli - FAT.
Novou fíčuru - dlouhá jména tam přidali přes VFAT, kde má každý soubor pro adresář dva záznamy, přičemž první je s dlouhým názvem a druhý s krátkým názvem 8+3. Když implementace podporuje VFAT, tak se použije první záznam a následující se rovnou přeskočí. Pokud nepodporuje, tak první záznam ignoruje a použije se ten druhý. Díky tomu máte i soubory s dlouhými názvy zapsané třeba na disketu kompatibilní s ostatními počítači, kde není VFAT podporován.
U té změny na 32(28)bit adresování šlo zas o to, že chtěli podporovat větší disky, ale zároveň udělat jen nejmenší změny v existujícím souborovém systému, při zachování jeho relativní jednoduchosti.
Nemohly moc vzrůst paměťové nároky (v real-mode DOSu, kde má běžet i aplikace nemáte moc prostoru pro nějaké pokročilejší věci jako bitmapy, b-tree atp.). Také to samozřejmě bylo implementačně jednodušší, jak pro úpravu samotného DOSu 7.10, tak pro hromadu ostatních výrobců, kteří FAT32 také implementovali (resp. mohli jen s minimálním úsilím modifikovat jejich stávající kód pro FAT16).
Ano s odstupem 30 let to samozřejmě svádí k nějakému absolutnímu srovnávání se všemi existujícími FS té doby, ale ten kontext je opravdu potřeba.