FAT12 | FAT16 | FAT32 | |
utvikler | Microsoft | ||
---|---|---|---|
Fullt navn | Filfordelingstabell | ||
(12 bit versjon) | (16 bit versjon) | (32 bit versjon) | |
Innsatt | FAT12: 1980-08 (SCP 86-DOS 0.42) | FAT16: 1984-08 (PC DOS 3.0), FAT16B: 1987-11 (Compaq MS-DOS 3.31) | FAT32: 1996-08 (Windows 95 OSR2) |
partisjonsidentifikator | 0x01 (MBR) | 0x04, 0x06, 0x0E (MBR) | 0x0B, 0x0C (MBR) EBD0A0A2-B9E5-4433 -87C0-68B6B72699C7 (GPT) |
strukturer | FAT12 | FAT16 | FAT32 |
mappeinnhold | Bord | ||
filplassering | koblet liste | ||
dårlige blokker | koblet liste | ||
Grenser | FAT12 | FAT16 | FAT32 |
maksimal filstørrelse | 32 MB _ | 2 GiB (4 GiB - 1) | 4 GiB - 1 |
Maksimalt antall filer | 4 068 for 8 KiB-klynger | 65 460 for 32 KiB-klynger | 268.173.300 for 32 KiB-klynger |
Maksimal filnavnlengde | 8,3 (11) eller 255 tegn ved bruk av LFN-er (lange filnavn) | ||
Maksimal volumstørrelse | 32 MB | 2 GiB (4 GiB på Windows NT) | 10TiB _ |
Karakteristisk | FAT12 | FAT16 | FAT32 |
Lagrede datoer | Oppretting, modifikasjon, tilgang | ||
Støttet datoperiode | 1. januar 1980 – 31. desember 2107 | ||
metadata | ikke innfødt | ||
egenskaper | Skrivebeskyttet, Skjult, System, Fil, Volumnavn | ||
tillatelser | Nei | ||
gjennomsiktig kompresjon | Bulk, Stacker, DoubleSpace, DriveSpace | Nei | |
transparent kryptering | Kun i volum med DR-DOS | Nei |
Filallokeringstabell , vanligvis kjent som FAT , er et filsystem utviklet for MS-DOS , så vel som det primære filsystemet til ikke-bedriftsutgaver av Microsoft Windows opp til Windows Me .
FAT er relativt enkelt. På grunn av dette er det et populært diskettformat som støttes av praktisk talt alle eksisterende PC- operativsystemer . Den brukes som en datautvekslingsmekanisme mellom forskjellige operativsystemer som eksisterer side om side på samme datamaskin , som er kjent som et multi- boot-miljø . Den brukes også i minnekort og lignende enheter.
De mest utbredte implementeringene av FAT har noen ulemper. Når nye filer slettes og skrives, har det en tendens til å etterlate spredte fragmenter av disse over hele media. Over tid gjør dette lese- eller skriveprosessen tregere og langsommere. Såkalt defragmentering er løsningen på dette, men det er en langvarig prosess som må gjentas regelmessig for å holde filsystemet i perfekt stand. FAT var heller ikke designet for å være overflødig ved feil. Opprinnelig støttet den bare korte filnavn: åtte tegn for navnet pluss tre for utvidelsen.
FAT-filsystemet ble laget av Mac basert på en serie samtaler mellom Mac og Bill Gates . Det ble først integrert i QDOS -operativsystemet av Tim Paterson i august 1980, for Intel 8086 - arkitekturen S-100- datamaskiner . Dette filsystemet var hovedforskjellen mellom QDOS og CP/M .
På den tiden besto den vanlige disketten (5,25-tommers enkeltsidig) av 40 spor med 8 sektorer per spor, noe som resulterte i en kapasitet på mindre enn 160 kilobyte . Denne grensen overskred kapasiteten med mer enn en størrelsesorden, og tillot samtidig å passe alle kontrollstrukturene på den første rullebanen. Derfor ble bevegelsen av hodene i lese- og skriveoperasjonene unngått. Disse grensene ble overskredet i de påfølgende årene.
For å støtte den nylige IBM PC -en, som inneholdt en 10 megabyte harddisk, MS-DOS 2.0 og nestede mapper, ble 8 kilobyte harddiskklynger ganske enkelt brukt. Selve FAT -formatet endret seg ikke.
I 1984 ga IBM ut PC-en AT , med en 20-megabyte harddisk. Samtidig ga Microsoft ut MS-DOS 3.0. Klyngeadresser ble utvidet til 16 biter, noe som tillot et større antall klynger (nøyaktig 65 536 filer). Til tross for alt var det ingen forbedringer til maksgrensen på 32 megabyte.
MS-DOS 3.0 la også til støtte for 5,25-tommers disketter med høy tetthet (1,2 megabyte kapasitet), med 15 sektorer per spor, og dermed mer plass til FAT . Dette fremtvang sannsynligvis en tvilsom klyngestørrelsesoptimalisering , som falt fra to sektorer til bare én. Den samlede effekten var en betydelig reduksjon i lese- og skrivetider sammenlignet med disketter med dobbel tetthet.
Struktur av FAT12 på en 1,44M diskett:
512 byte | Første fysiske sektor av disketten (Track Zero)
|
I 1987 dukket det opp som i dag er kjent som "FAT 16-formatet". Fjernet 16-bits sektorteller. Partisjonsstørrelsen var nå begrenset av sektorantallet per klynge , som var 8 biter. Dette tvang bruken av 32 KiB -klynger med de vanlige 512 bytene per sektor. Så den endelige grensen for FAT16 ble satt til 4 (2GiB per klynge) GiB .
Denne forbedringen ble tilgjengelig i 1988. Mye senere økte Windows NT 4.0 (1998) og Windows XP (2001) den maksimale klyngestørrelsen til 64 kilobyte, noe som tillater partisjoner på opptil 4 GB. Imidlertid var det resulterende formatet ikke kompatibelt med andre implementeringer på den tiden, og genererte også mer intern fragmentering (hele klynger ble okkupert selv om bare noen få byte var nødvendig). Windows 98 støttet denne utvidelsen for lesing og skriving. Diskverktøyene dine kunne imidlertid ikke jobbe med det.
Windows 3.11 introduserte et nytt filsystemtilgangsskjema, ved å bruke 32-biters beskyttet modus (tilstede på Intel 386 og nyere) omgå MS-DOS-kjernen. For å gjøre dette brukte den direkte BIOS eller maskinvaren til diskstasjonen. Dette gjorde det også mulig å bruke en cache , noe som gjorde tilgangen raskere. Alt dette ble kalt VFAT eller virtuell FAT.
Windows NT 3.1 ga samme tilnærming, men kalte det FASTFAT . Det var imidlertid naturlig for Windows NT-drivere å bruke 32-bits beskyttet modus. Det forveksles ofte med LFN- støtte (Long File Name) ettersom det ble aktivert som standard i Windows 95.
Et av målene til Windows 95-designerne var bruken av lengre filnavn. Det ble implementert på toppen av FAT ved å bruke et triks i måten å lagre katalogindekser på. Denne implementeringen er også kjent som VFAT på grunn av Windows 95-driveren som først introduserte den. Lange navn ble også støttet på Windows NT fra og med versjon 3.5.
FAT32 var svaret for å overvinne størrelsesgrensen til FAT16 og samtidig opprettholde kompatibilitet med MS-DOS i ekte modus. Microsoft bestemte seg for å implementere en ny generasjon FAT ved å bruke 32-biters klyngeadresser (selv om bare 28 av disse bitene faktisk ble brukt).
I teorien skulle dette tillate omtrent 100.100.538.948.585.453 klynger , noe som gir lagringsstørrelser nær 8 TiB . På grunn av begrensninger i Microsofts ScanDisk -verktøy har imidlertid ikke FAT32 lov til å vokse utover 4 177 920 klynger per partisjon (det vil si omtrent 124 GiB ). Senere satte Windows 2000 og XP FAT32-grensen til 64 GiB. Microsoft hevder dette er en designbeslutning, men den er i stand til å lese større partisjoner opprettet på andre måter.
FAT32 dukket først opp i Windows 95 OSR2. Reformatering var nødvendig for å bruke fordelene med FAT32. Merkelig nok støttet ikke DriveSpace 3 (inkludert med Windows 95 og 98) det. Windows 98 introduserte et verktøy for å konvertere fra FAT16 til FAT32 uten tap av data. Denne støtten var ikke tilgjengelig i forretningsområdet før Windows 2000 .
Maksimal størrelse på en fil i FAT32 er 4 GiB (2 32 −1 byte).
Andre operativsystemer som GNU/Linux , FreeBSD og BeOS støtter FAT, og de fleste støtter også VFAT og FAT32 i mindre grad. De første utgavene av GNU/Linux støttet også et format kjent som UMSDOS . Denne besto av en variant av FAT som støttet de typiske Unix - sikkerhetstillatelsene, i tillegg til de lange navnene. For å gjøre dette ble denne informasjonen lagret i en egen FAT-fil kalt "--linux--.---" (og dermed opprettholde full kompatibilitet). UMSDOS ble avviklet med utseendet til VFAT i nyere versjoner av Linux-kjernen. Mac OS X -operativsystemet støtter også FAT-filsystemer, så lenge det ikke er systemets oppstartsvolumet.
FAT-filsystemet er ikke laget for å holde metadata. Noen operativsystemer som krever dem har innebygde ulike metoder for å simulere dem. For eksempel ved å lagre dem i ekstra filer eller mapper (ligner på UMSDOS) eller også ved å gi spesiell semantikk til strukturer som ikke brukes i det originale formatet. Denne siste metoden er imidlertid ikke kompatibel med verktøy som ikke er forberedt for denne utvidelsen. Et defragmenteringsverktøy kan for eksempel ødelegge metadataene. Mac OS , gjennom PC Exchange -verktøyet , lagrer metadata i en skjult fil kalt "FINDER.DAT" (én per mappe). Mac OS X lagrer metadata i en skjult fil oppkalt etter eieren, men begynner med ".-" . Når det kommer til en mappes metadata, lagrer den dem i en skjult fil kalt ".DS_Store" .
OS/2 er også avhengig av bruk av metadata. Når det refereres til volumer i FAT, lagrer den dem i en skjult fil kalt "EA DATA.SF" i rotmappen til volumet. Den reserverer også to byte i filen (eller mappen) slik at den kan indekseres. Metadataene er tilgjengelige via Workplace Shell -skrivebordet , gjennom REXX - skript eller gjennom verktøy som 4OS2 . Når det gjelder sitt eget HPFS-filsystem, støtter det allerede metadata, kalt utvidede attributter.
Windows NT støtter metadata i filsystemene HPFS , NTFS og FAT (med samme mekanisme som OS/2). Men det er ikke mulig å kopiere metadata mellom ulike filsystemer. Windows 2000 oppfører seg nøyaktig som Windows NT, men ignorerer metadata ved kopiering av filer fra FAT32 til andre filsystemer.
exFAT (Extended File Allocation Table) er et filsystem spesielt tilpasset flash-minne introdusert med Windows Embedded CE 6.0. exFAT brukes når NTFS-filsystemet ikke er mulig på grunn av overbelastede datastrukturer.
Siden Microsoft ikke lenger vil støtte MS-DOS- baserte operativsystemer , er det lite sannsynlig at nye versjoner av FAT vil bli utviklet. NTFS er et filsystem som er overlegent dette i mange aspekter: effektivitet, ytelse og pålitelighet. Den største ulempen er den overdrevne størrelsen den kaster bort på små volumer og dens begrensede støtte i andre operativsystemer. Dens spesifikasjoner er en forretningshemmelighet; Dette er imidlertid i endring, takket være reverse engineering , ettersom det nå er mulig å lese og skrive til NTFS-partisjoner på Linux med verktøy som NTFS-3G .
FAT er i dag det vanlige filsystemet på flyttbare lagringsmedier (med unntak av CDer og DVDer ). FAT12 brukes på disketter, og FAT16 på alle andre medier (for eksempel minnekort og USB-pinner ) opptil 2 GB (for det meste avviklet i dag). Kort og USB-pinner fra 4 GB til 32 GB bruker vanligvis FAT32 for å overvinne begrensningene i den forrige versjonen. Flash-stasjoner på 64 GB og over bruker exFAT-systemet av samme grunn. FAT brukes av kompatibilitetshensyn.
Støtte for formatering av partisjoner med FAT32 i Windows er begrenset til partisjoner på opptil 32 gigabyte, noe som tvinger brukere til å bruke NTFS eller bruke tredjepartsverktøy utenfor Windows. [ 1 ] Denne begrensningen påvirker partisjonering, men ikke bruk: Windows har tilgang til FAT32-disker på opptil 2 terabyte.
Selv om det på installasjonstidspunktet ikke tillater å formatere en partisjon med FAT32 på mer enn 32 GB, og det vil tvinge til å bruke NTFS. [ 2 ] Løsningen er først å formatere stasjonen til FAT32 (for eksempel ved hjelp av en GNU/Linux LiveCd eller tredjepartsverktøy), og deretter installere Windows.
FAT-filsystemet består av fire seksjoner:
En partisjon er delt inn i et sett med klynger av samme størrelse . De er små diskontinuerlige blokker. Størrelsen på klyngen avhenger av FAT-varianten som brukes. Det varierer mellom 2 og 32 kilobyte. Hver fil opptar en eller flere klynger avhengig av størrelsen. Så en fil er representert av en sekvensiell kjede av klynger (en koblet liste ). Hver klynge i kjeden trenger ikke å være ved siden av den forrige. Det er dette som forårsaker fragmentering .
Filallokeringstabellen består av en liste med oppføringer. Hver oppføring inneholder informasjon om en klynge:
Størrelsen på disse oppføringene avhenger også av FAT-varianten som er i bruk: FAT16 bruker 16-bits oppføringer, FAT32 bruker 32-bits oppføringer, og så videre.
Denne indeksen er en spesiell type fil som lagrer undermappene og filene som utgjør hver mappe. Hver katalogoppføring inneholder navnet på filen eller mappen (maksimalt 8 tegn), utvidelsen (maksimalt 3 tegn), dens attributter (fil, mappe, skjult, system eller volum), dato og klokkeslett for opprettelse, adressen til den første klyngen der dataene er, og til slutt størrelsen den opptar.
Rotkatalogen opptar en bestemt posisjon i filsystemet, men indeksene til andre mapper okkuperer dataområdet som alle andre filer.
Lange navn lagres ved å okkupere flere oppføringer i indeksen for samme fil eller mappe.
Microsoft har søkt om en rekke patenter for nøkkelelementer i FAT-filsystemet på 1990-tallet. Dets popularitet og kompatibilitet gjør det til det foretrukne formatet for flashminne i for eksempel digitale kameraer , mobiltelefoner og nettbrett .
I desember 2003 kunngjorde Microsoft at de ville begynne å lisensiere FAT for bruk til en pris av $ 0,25 per solgte enhet. med maksimalt $250 000 per lisensavtale.
Så langt har Microsoft sitert fire patenter på FAT som støtte for sine påstander. Alle fire refererer til implementeringen av lange navn:
Noen eksperter mener at disse patentene egentlig ikke dekker bruken av FAT i flyttbare forbruksmedier.
På den annen side garanterer dokumentet Microsoft Extensible Firmware Initiative FAT 32 File System Specification, FAT: General Overview of On-Disk Format , utgitt av Microsoft, en rekke rettigheter som kan tolkes som en lisens for å implementere FAT i andre operativsystemer .
På grunn av populært krav om å få disse patentene undersøkt på nytt, sendte Public Patent Foundation bevis til Patentkontoret for tidligere arbeid fra Xerox og IBM . Kontoret erkjente at det var "vesentlig tvil om patenterbarhet" og åpnet en undersøkelse for å gjennomgå disse patentene.
Til slutt bekreftet nevnte gjennomgang gyldigheten av patentene i januar 2006. [ 3 ]