FAT , akronym for filallokeringstabell , er et filsystem som har blitt en industristandard. Den er enkel og robust, fungerer bra i enkle miljøer, men faller ikke under påliteligheten og skalerbarheten til noen moderne filsystemer. Imidlertid støttes den av de fleste nåværende operativsystemer og i et stort antall mobile enheter eller innebygde systemer. Av denne grunn er det godt egnet til filutveksling mellom enheter av alle typer siden 1980-tallet.
Designet i 1977 for disketter av Bill Gates og Marc McDonald (en) for Microsoft Disk BASIC og deretter gjenbrukt i QDOS (som det er det eneste elementet som ikke er inspirert av CP / M , QDOS er forfedre til MS-DOS, skrevet av Tim Paterson ), ble den raskt tilpasset harddisker og brukt fra MS-DOS til 9x gren av Windows , og utviklet seg med den økende kapasiteten til media i tre varianter FAT12 , FAT16 og deretter FAT32 . Følgende Windows-systemer, avledet fra NT- grenen , bruker fortrinnsvis NTFS , men støtter fremdeles FAT.
FAT ble brukt på disketter og brukes fortsatt på USB-nøkler , SD-kort så vel som i de mange mobile enhetene som bruker disse mediene. DCF- spesifikasjonen krever FAT-støtte fra digitale kameraer . Til slutt brukes FAT i oppstartsfasen av UEFI- kompatible datasystemer .
FAT ble opprinnelig designet for disker 160 kb , men en av de største feilene var det begrensede antall tegn i filnavn (den berømte 8.3 ): 1 til 8 tegn, et punkt og 0 til 3 tegn uansett sak .
Denne feilen ble løst i Windows 95 med et kompatibilitetsbevarende triks: VFAT- systemet , som utvider filnavn til maksimalt 255 Unicode- tegn . Lange filnavn kan nås via Windows 95 Win32 API , men også fra versjonene av MS-DOS som følger med Windows og dens etterfølgere (gjennom flere systemanrop).
FAT har utviklet seg til forskjellige versjoner, alle støttet av de nyeste versjonene av MS-DOS og nåværende versjoner av Windows, som ble gjort nødvendig av utviklingen av disklagringskapasitet:
Den exFAT , som dukket opp med Windows CE 6.0, er et filsystem forskjellig fra FAT familien.
Til tross for mangelen på motstand mot svikt sammenlignet med konkurrentene, ble FAT fortsatt i 2010 mye brukt, spesielt på minnekort for digitale kameraer og mobiltelefoner samt på USB-nøkler på grunn av enkelheten i implementeringen, slik at det også kan brukes i innebygde systemer som garantert kompatibilitet med Windows og mange andre operativsystemer (nåværende store systemer støtter FAT-filsystemet).
Microsoft prøvde seg inndesember 2003å inngi patent på FAT, for å kunne samle rettigheter på lisensene som ville blitt gitt til produsentene av elektroniske enheter. Men forespørselen ble avvist iSeptember 2004. Det er imidlertid validert ijanuar 2006, etter at Microsoft hadde fullført argumentet.
FAT-filsystemet sikrer interoperabilitet mellom forskjellige plattformer og forskjellige regioner ved å håndtere kodingen av filnavn riktig.
FAT-filsystemet består av tre hoveddeler:
Står for Bios Parameter Block. Den er lokalisert i oppstartssektoren , det vil si den første sektoren av partisjonen (eller av disken i tilfelle et ikke-partisjonert medium, for eksempel en diskett). Den inneholder viktig informasjon.
StrukturThe boot sektor har følgende format:
Posisjon (byte) |
Størrelse (byte) |
Beskrivelse |
---|---|---|
0 | 3 | Gå til et program som vil laste operativsystemet |
3 | 8 | Navnet på programmet som formaterte disken (for eksempel "MSWIN4.1"). |
11 | 2 | Antall byte per sektor (512, 1024, 2048 eller 4096). |
1. 3 | 1 | Antall sektorer per klynge (1, 2, 4, 8, 16, 32, 64 eller 128). |
14 | 2 | Antall reserverte sektorer inkludert oppstartssektoren (32 som standard for FAT32, 1 som standard for FAT12 / 16). |
16 | 1 | Antall FAT på disken (2 som standard) |
17 | 2 | Størrelsen på rotkatalogen i antall oppføringer (0 som standard for FAT32). |
19 | 2 | Totalt antall 16-bits sektorer (0 som standard for FAT32). |
21 | 1 | Disk type ( 0xF8for harddisker, 0xF0for disketter). |
22 | 2 | Størrelse på en FAT i sektorer (0 som standard for FAT32). |
24 | 2 | Antall sektorer per spor. |
26 | 2 | Antall hoder. |
28 | 4 | Skjulte sektorer (0 som standard hvis disken ikke er partisjonert). |
32 | 4 | Totalt antall 32-bits sektorer (inneholder en verdi hvis totalt antall 16-bit sektorer er 0) |
Følgende tabell forklarer resten av BPB for FAT12 / 16-disker (for FAT32 se nedenfor):
Posisjon (byte) |
Størrelse (byte) |
Beskrivelse |
---|---|---|
36 | 1 | Disk-ID (fra 0x00for flyttbare disker og fra 0x80for faste disker). |
37 | 1 | Reservert for fremtidig bruk. |
38 | 1 | Signatur ( 0x29standard). |
39 | 4 | Serienummer på platen. |
43 | 11 | Navnet på platen med 11 tegn ( 'INGEN NAVN' hvis ikke noe navn). |
54 | 8 | Filsystemtype (FAT, FAT12, FAT16). |
Følgende tabell forklarer resten av BPB for FAT32-disker (for FAT12 / 16 se ovenfor):
Posisjon (byte) |
Størrelse (byte) |
Beskrivelse |
---|---|---|
36 | 4 | Størrelse på FAT i sektorer (erstatter ekvivalent sitert ovenfor) |
40 | 2 | Diskattributter. |
42 | 1 | Hovedversjon av filsystemet (0 som standard). |
43 | 1 | Mindre versjon av filsystemet (0 som standard). |
44 | 4 | Nummeret på den første klyngen i rotkatalogen. |
48 | 2 | Ytterligere filsysteminformasjon (1 som standard). |
50 | 2 | Sektornummer for kopisektorens kopi . |
52 | 12 | Reservert for senere tillegg (0 som standard). |
64 | 1 | Disk-ID (fra 0x00for flyttbare disker og fra 0x80for faste disker). |
65 | 1 | Reservert for fremtidig bruk. |
66 | 1 | Signatur ( 0x29standard). |
67 | 4 | Serienummer på platen. |
71 | 11 | Navnet på platen med 11 tegn ( 'INGEN NAVN' hvis ikke noe navn). |
82 | 8 | Filsystemtype (FAT32). |
En klynge er en gruppe sektorer . Den fungerer som filallokeringsenhet. Hver klynge lagrer derfor dataene til en fil. For en 9 000 byte-fil, for eksempel, på en disk som bruker 8192 byte- klynger (dvs. 16 sektorer på 512 byte), brukes 2 klynger , hvorav den siste bare bruker 808 byte (9000 - 8192).
StrukturEn tildelingstabell er et kart der hvert tall representerer en klynge . Denne tabellen er en rekke tall, indeksert av et klyngenummer . Følgende tabell gir mulige verdier for disse tallene:
FAT12 | FAT16 | FAT32 | Beskrivelse |
---|---|---|---|
0x000 | 0x0000 | 0x?0000000 | Tom klynge |
0x001 | 0x0001 | 0x?0000001 | Reservert klynge |
0x002 - 0xFEF | 0x0002 - 0xFFEF | 0x?0000002 - 0x?FFFFFEF | Klynge i bruk, pek påneste klynge i filen |
0xFF0 - 0xFF6 | 0xFFF0 - 0xFFF6 | 0x?FFFFFF0 - 0x?FFFFFF6 | Reserverte verdier |
0xFF7 | 0xFFF7 | 0x?FFFFFF7 | "Dårlig klynge " |
0xFF8 - 0xFFF | 0xFFF8 - 0xFFFF | 0x?FFFFFF8 - 0x?FFFFFFF | Klynge brukt, siste klynge av en fil |
Nummer | Klynge 2 | Klynge 3 | Klynge 4 | Klynge 5 | Klynge 6 | Klynge 7 | Klynge 8 | Klynge X |
---|---|---|---|---|---|---|---|---|
Verdien… | 0000 | 0004 | 0005 | 0007 | 0001 | 0008 | FFFF | .... |
… tilsvare | Tømme | Brukt | Brukt | Brukt | reservere | Brukt | Brukt |
Merk: I dette eksemplet bruker en fil, i rekkefølge, klyngene 3, 4, 5, 7 og 8.
Rotkatalogen er en liste over oppføringer. Oppføringer i rotkatalogen har følgende format:
Offset | Kutte opp | Beskrivelse | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | 8 | Filnavn (fullført til 8 tegn med mellomrom)
Den første byten kan ha en av følgende spesielle verdier:
|
|||||||||||||||||||||||||||
0x08 | 3 | Utvidelse (fullført til 3 tegn med mellomrom) | |||||||||||||||||||||||||||
0x0B | 1 | Filattributter:
Attributtverdien 0x0Fbrukes til å betegne et langt filnavn. |
|||||||||||||||||||||||||||
0x0C | 1 | Reservert, brukt av NT | |||||||||||||||||||||||||||
0x0D | 1 | Opprettingstid: i enheter på 10 ms (0 til 199). | |||||||||||||||||||||||||||
0x0E | 2 | Opprettelsestid:
|
|||||||||||||||||||||||||||
0x10 | 2 | Opprettelsesdato :
|
|||||||||||||||||||||||||||
0x12 | 2 | Dato for siste tilgang; se forskyvning 0x10 for beskrivelse. | |||||||||||||||||||||||||||
0x14 | 2 | Indeks EA (brukt av OS / 2 og NT) for FAT12 og FAT16; To mest betydningsfulle byte av nummeret til den første klyngen for FAT32 | |||||||||||||||||||||||||||
0x16 | 2 | Siste modifikasjonstid; se forskyvning 0x0E for beskrivelse. | |||||||||||||||||||||||||||
0x18 | 2 | Dato for siste endring; se forskyvning 0x10 for beskrivelse. | |||||||||||||||||||||||||||
0x1A | 2 | Nummeret på den første klyngen i filen (FAT12 og FAT16); 2 minst betydelige byte av dette tallet (FAT32). | |||||||||||||||||||||||||||
0x1C | 4 | Filstørrelse |
For en katalog (angitt med riktig bit i attributtfeltet), er innholdet en struktur som er identisk med det forrige formatet, og begynner med de to oppføringene '.' (beskriver selve katalogen) og '..' (som beskriver katalogen den ble opprettet i).