Vilket fs fettformat anses. Vad ska man göra om data försvinner. Organisation av fettfilsystemet

Introduktion

2.1 FAT16-system

2.2 FAT32-system

2.3 Jämförelse av FAT16 och FAT32

3.1 NTFS-system

3.2 Jämförelse av NTFS och FAT32

Slutsats

Bibliografi

Introduktion

För närvarande finns i genomsnitt flera tiotusentals filer inspelade på en disk. Hur sorterar man igenom all denna mångfald för att korrekt adressera filen? Syftet med filsystemet är en effektiv lösning på detta problem.

Filsystemet, ur användarens synvinkel, är "utrymmet" där filerna finns. Och som en vetenskaplig term är det ett sätt att lagra och organisera åtkomst till data om informationsmedium eller dess sektion. Närvaron av ett filsystem låter dig bestämma vad filen heter och var den finns. Eftersom information på IBM PC-kompatibla datorer huvudsakligen lagras på diskar, bestämmer filsystemen som används på dem organisationen av data på diskar (mer exakt, på logiska diskar). Vi kommer att titta på FAT-filsystemet.

fett ntfs filsystem

1. skapelsehistoria och generella egenskaper FAT filsystem

Filsystemet FAT (File Allocation Table) utvecklades av Bill Gates och Mark McDonald 1977 och användes ursprungligen i 86-DOS-operativsystemet. För att uppnå portabilitet av program från CP/M-operativsystemet till 86-DOS behölls de tidigare accepterade begränsningarna för filnamn. 86-DOS förvärvades senare av Microsoft och blev grunden för MS-DOS 1.0, som släpptes i augusti 1981. FAT designades för att fungera med disketter mindre än 1 MB och gav från början inget stöd hårddiskar. FAT stöder för närvarande filer och partitioner upp till 2 GB i storlek.

FAT använder följande filnamnkonventioner:

namnet måste börja med en bokstav eller siffra och kan innehålla alla ASCII-tecken utom mellanslag och tecknen "/\ :; |=,^*?

Namnet är högst 8 tecken långt, följt av en punkt och en valfri förlängning på upp till 3 tecken.

Kassetten för tecken i filnamn särskiljs inte och bevaras inte.

Strukturen för FAT-partitionen visas i Tabell 1.1 BIOS-parametrarnas block innehåller nödvändig BIOS-information om fysiska egenskaper hårddisk. FAT-filsystemet kan inte kontrollera varje sektor separat, så det grupperar intilliggande sektorer i kluster. Detta minskar det totala antalet lagringsenheter som filsystemet måste hålla reda på. Klusterstorleken i FAT är en potens av två och bestäms av storleken på volymen vid formatering av disken (tabell 1.2). Ett kluster representerar den minsta mängd utrymme som en fil kan uppta. Detta resulterar i att en del av diskutrymmet slösas bort. Operativsystemet innehåller olika verktyg (DoubleSpace, DriveSpace) utformade för att komprimera data på disken.

Tabell 1.1 - FAT-partitionsstruktur

Bootsektor BIOS-parameterblock (BPB) FATFAT (kopia) Rotkatalog Filområde

FAT fick sitt namn från filallokeringstabellen med samma namn. Filallokeringstabellen lagrar information om klustren på en logisk disk. Varje kluster i FAT har en separat post som anger om den är ledig, upptagen av fildata eller markerad som misslyckad (skadad). Om klustret är upptaget av en fil, så anges adressen till klustret som innehåller nästa del av filen i motsvarande post i filallokeringstabellen. På grund av detta kallas FAT för ett länkat listfilsystem. Den ursprungliga versionen av FAT, utvecklad för DOS 1.00, använde en 12-bitars filallokeringstabell och stödde partitioner upp till 16 MB (DOS låter dig skapa maximalt två FAT-partitioner). För att stödja hårddiskar större än 32 MB ökades FAT-bitbredden till 16 bitar och klusterstorleken ökades till 64 sektorer (32 KB). Eftersom varje kluster kan tilldelas ett unikt 16-bitars nummer, stöder FAT maximalt 216, eller 65 536, kluster på en enda volym.

Tabell 1.2 - Klusterstorlekar

PartitionsstorlekKlusterstorlekFAT-typ< 16 Мб4 КбFAT1216 Мб - 127 Мб2 КбFAT16128 Мб - 255 Мб4 КбFAT16256 Мб - 511 Мб8 КбFAT16512 Мб - 1023 Мб16 КбFAT161 Гб - 2 Гб32 КбFAT16

Eftersom startposten är för liten för att lagra systemfilsökningsalgoritmen på disken, måste systemfilerna finnas på en specifik plats för att startposten ska hitta dem. Den fasta positionen för systemfiler i början av dataområdet sätter en strikt gräns för storleken på rotkatalogen och filallokeringstabellen. Som ett resultat är det totala antalet filer och underkataloger i rotkatalogen på en FAT-enhet begränsat till 512.

Varje fil och underkatalog i FAT är associerad med ett 32-byte katalogelement som innehåller filnamnet, dess attribut (arkiv, dold, system och skrivskyddad ), datum och tid för skapandet (eller inträde i det senaste ändringarna), samt annan information (tabell 1.3).

Tabell 1.3 - Katalogelement

FAT-filsystemet fylls alltid friplats på disken sekventiellt från början till slut. När du skapar en ny fil eller utökar en befintlig, letar den efter det allra första lediga klustret i filallokeringstabellen. Om vissa filer raderades under drift och andra ändrades i storlek, kommer de resulterande tomma klustren att spridas över disken. Om klustren som innehåller fildata inte finns i en rad, blir filen fragmenterad. Kraftigt fragmenterade filer minskar effektiviteten avsevärt, eftersom läs-/skrivhuvudena måste flytta från ett område på disken till ett annat när de söker efter nästa filpost. Operativsystem som stöder FAT inkluderar vanligtvis särskilda verktyg Diskdefragmentering, designad för att förbättra prestanda för filoperationer.

En annan nackdel med FAT är att dess prestanda är starkt beroende av antalet filer som lagras i en katalog. Om det finns ett stort antal filer (cirka tusen) kan det ta flera minuter att läsa listan med filer i en katalog. Detta beror på att i FAT har katalogen en linjär, oordnad struktur, och namnen på filerna i katalogerna är i den ordning som de skapades. Som ett resultat, ju fler poster i katalogen, desto långsammare fungerar programmen, eftersom när man söker efter en fil är det nödvändigt att titta igenom alla poster i katalogen sekventiellt. Eftersom FAT ursprungligen designades för DOS-operativsystemet för en användare, ger det inte lagring av information som ägarinformation eller fil-/katalogåtkomstbehörigheter. Det är det vanligaste filsystemet och stöds i en eller annan grad av de flesta moderna operativsystem. På grund av dess mångsidighet kan FAT användas på volymer som fungerar med olika OS.

Även om det inte finns något hinder för att använda något annat filsystem vid formatering av disketter, använder de flesta operativsystem FAT för kompatibilitet. Detta kan delvis förklaras av att den enkla FAT-strukturen kräver mindre utrymme för lagring av overheaddata än andra system. Fördelarna med andra filsystem blir märkbara endast när de används på media som är större än 100 MB.

Det bör noteras att FAT är ett enkelt filsystem som inte förhindrar filkorruption på grund av onormal datoravstängning. Operativsystem som stöder FAT inkluderar speciella verktyg som kontrollerar strukturen och korrigerar inkonsekvenser i filsystemet.

2. Karakteristika för filsystemen FAT16 och FAT32 och deras jämförelse

.1 FAT16-system

Filsystemet FAT 16 är det huvudsakliga för operativsystemen DOS, Windows 95⁄98⁄Me, Windows NT⁄2000⁄XP, och stöds även av de flesta andra system. FAT 16 är ett enkelt filsystem designat för små enheter och enkla strukturer kataloger. Namnet kommer från namnet på filorganisationsmetoden - Filallokeringstabell. Denna tabell finns i början av skivan. Siffran 16 betyder att filsystemet är 16-bitars - 16 bitar används för att adressera kluster. Operativsystemet använder filallokeringstabellen för att hitta en fil och bestämma vilka kluster som filen upptar på hårddisken. Dessutom registrerar tabellen information om fria och defekta kluster. För att göra det enklare att förstå filsystemet FAT16, föreställ dig innehållsförteckningen i en bok och hur du arbetar med denna innehållsförteckning; det är precis så operativsystemet fungerar med FAT 16.

För att läsa en fil måste operativsystemet leta upp filnamnet för en post i mappen och läsa filens första klusternummer. Det första klustret representerar början av filen. Sedan måste du läsa FAT-elementet som motsvarar det första klustret i filen. Om elementet innehåller en etikett - den sista i kedjan, behöver du inte leta efter något mer: hela filen passar i ett kluster. Om klustret inte är det sista, innehåller tabellelementet numret på nästa kluster. Innehållet i nästa kluster måste läsas efter det första. När det sista klustret i kedjan hittas, om filen inte upptar hela klustret, är det nödvändigt att skära av de extra byten i klustret. Extra byte trimmas enligt fillängden som lagras i mappposten.

För att skriva en fil måste operativsystemet utföra följande sekvens av åtgärder. En filbeskrivning skapas i en gratis mapppost, sedan letas en ledig FAT-post och en länk till den placeras i mappposten. Det första klustret som beskrivs av det hittade FAT-elementet är upptaget. Detta FAT-element innehåller numret på nästa kluster eller tecknet på det sista klustret i kedjan.

Operativsystemet agerar på ett sådant sätt att det samlar in kedjor från angränsande kluster i ökande antal. Det är tydligt att åtkomst till sekventiellt placerade kluster kommer att vara mycket snabbare än åtkomst till kluster som är slumpmässigt utspridda över skivan. I det här fallet ignoreras kluster som redan är upptagna och markerade i FAT som defekta.

I FAT16-filsystemet tilldelas 16 bitar för klusternumret. Därför är det maximala antalet kluster 65525, och den maximala klusterstorleken är 128 sektorer. I det här fallet är den maximala storleken på partitioner eller diskar i FAT16 4,2 gigabyte. När du logiskt formaterar en disk eller partition försöker operativsystemet använda den minsta klusterstorleken så att det resulterande antalet kluster inte överstiger 65525. Det är klart att ju större partitionsstorleken är, desto större bör klusterstorleken vara. Många operativsystem fungerar inte korrekt med en klusterstorlek på 128 sektorer. Som ett resultat reduceras den maximala storleken på en FAT16-partition till 2 gigabyte. Vanligtvis gäller att ju större klusterstorleken är, desto större slöseri med diskutrymme. Detta beror på det faktum att det sista klustret som ockuperas av filen endast är delvis fyllt. Till exempel, om en 17 KB-fil skrivs till en partition med en 16 KB-klusterstorlek, kommer den här filen att uppta två kluster, där det första klustret är helt fullt och endast 1 KB data skrivs i det andra klustret, vilket lämnar de återstående 15 kB utrymmet i det andra klustret är tomt och kommer inte att vara tillgängliga för skrivning till andra filer. Om ett stort antal små filer skrivs till stora diskar, kommer förlusten av diskutrymme att bli betydande. Följande tabell 2.1 ger information om eventuell förlust av diskutrymme när olika storlekar sektion.

Tabell 2.1.1 - Slöseri med diskutrymme

PartitionsstorlekKlusterstorlek Förlust av diskutrymme127 MB2 KB2%128-255 MB4 KB4%256-511 MB8 KB10%512-1023 MB16 KB25%1024-2047 MB32 KB40%2048-4096 MB64 KB50%

Det finns två möjliga sätt att minska slöseri med diskutrymme. Den första är att dela upp diskutrymmet i små partitioner med en liten klusterstorlek. Det andra är att använda filsystemet FAT32<#"center">2.2 FAT32-system

Filsystemet FAT32 är ett nyare filsystem baserat på FAT-formatet och stöds av Windows 95 OSR2, Windows 98 och Windows Millennium Edition. FAT32 använder 32-bitars kluster-ID:n men reserverar de viktigaste 4 bitarna, så den effektiva kluster-ID-storleken är 28 bitar. Eftersom den maximala storleken på FAT32-kluster är 32 KB kan FAT32 teoretiskt hantera 8 terabyte volymer. Windows 2000 begränsar storleken på nya FAT32-volymer till 32 GB, även om det stöder befintliga större FAT32-volymer (skapade på andra operativsystem). Det större antalet kluster som stöds av FAT32 gör att den kan hantera diskar mer effektivt än FAT 16. FAT32 kan använda 512-byte-kluster för volymer upp till 128 MB stora.

FAT 32-filsystemet används som standardfilsystem i Windows 98. Detta operativsystem medföljer specialprogram konvertera en disk från FAT 16 till FAT 32. Windows NT och Windows 2000 kan också använda filsystemet FAT, och därför kan du starta din dator från en DOS-disk och har full tillgång till alla filer. Men några av de mest avancerade funktionerna i Windows NT och Windows 2000 tillhandahålls av dess eget NTFS-filsystem (NT File System). NTFS låter dig skapa diskpartitioner upp till 2 TB (som FAT 32), men dessutom har den inbyggd filkomprimering, säkerhets- och revisionsfunktioner som är nödvändiga när du arbetar i en nätverksmiljö. Och i Windows 2000 implementeras stöd för filsystemet FAT 32. Installation av operativsystemet Windows-system NT startar på en FAT-disk, men om användaren önskar kan data på disken konverteras till NTFS-format i slutet av installationen.

Du kan göra detta senare genom att använda verktyget Konvertera. exe som medföljer operativsystemet. En diskpartition som konverterats till NTFS blir oåtkomlig för andra operativsystem. För att återgå till DOS, Windows 3.1 eller Windows 9x måste du ta bort NTFS-partitionen och skapa en FAT-partition istället. Windows 2000 kan installeras på en disk med filsystemen FAT 32 och NTFS.

Möjligheterna hos FAT32-filsystem är mycket bredare än för FAT16. Den viktigaste funktionen är att den stöder diskar upp till 2047 GB och fungerar med mindre kluster, vilket avsevärt minskar mängden oanvänt diskutrymme. Till exempel, HDD 2 GB i FAT16 använder kluster på 32 KB i storlek, och i FAT32 - kluster på 4 KB i storlek. För att bibehålla kompatibilitet med befintliga program, nätverk och enhetsdrivrutiner när det är möjligt, implementeras FAT32 med minimala ändringar av arkitekturen, API:er, interna datastrukturer och diskformat. Men eftersom FAT32-tabellelementen nu är fyra byte stora, har många interna och diskdatastrukturer och API:er behövt revideras eller utökas. Vissa API:er på FAT32-enheter är blockerade för att förhindra att äldre diskverktyg skadar innehållet på FAT32-enheter. De flesta program kommer inte att påverkas av dessa ändringar. Befintliga verktyg och drivrutiner kommer att fungera på FAT32-enheter. MS-DOS-blockeringsdrivrutiner (som Aspidisk.sys) och diskverktyg måste dock modifieras för att stödja FAT32. Alla diskverktyg som tillhandahålls av Microsoft (Format, Fdisk, Defrag och ScanDisk för verkligt och skyddat läge) har designats om för att fullt ut stödja FAT32. Dessutom hjälper Microsoft ledande leverantörer av diskverktyg och drivrutiner med att modifiera sina produkter för att stödja FAT32. FAT32 är effektivare än FAT16 när man arbetar med större diskar och kräver inte att de partitioneras i 2 GB partitioner. Windows 98 stöder nödvändigtvis FAT16, eftersom det är detta filsystem som är kompatibelt med andra operativsystem, inklusive tredjepartssystem. I MS-DOS real-läge och i säkert läge Windows 98 är FAT32-filsystemet betydligt långsammare än FAT16. Därför, när du kör program i MS DOS-läge, är det lämpligt att inkludera Autoexec. bat- eller PIF-filkommando för att ladda ner Smartdrv. exe, vilket kommer att påskynda diskoperationer. Vissa äldre program utformade för FAT16-specifikationen kan rapportera felaktig information om mängden ledigt eller totalt diskutrymme om det är mer än 2 GB. Windows 98 tillhandahåller nya API:er för MS-DOS och Win32 som låter dig bestämma dessa mätvärden korrekt.

.3 Jämförelse av FAT16 och FAT32

Tabell 2.3.1 - Jämförelse av filsystem FAT16 och FAT32

FAT16FAT32Implementerat och används av de flesta operativsystem (MS-DOS, Windows 98, Windows NT, OS/2, UNIX). På det här ögonblicket Stöds endast på Windows 95 OSR2 och Windows 98. Mycket effektivt för logiska enheter mindre än 256 MB. Fungerar inte med diskar som är mindre än 512 MB. Stöder diskkomprimering, till exempel med DriveSpace-algoritmen. Stöder inte diskkomprimering. Bearbetar maximalt 65 525 kluster, vars storlek beror på storleken på den logiska disken. Eftersom den maximala klusterstorleken är 32 KB kan FAT16 fungera med logiska enheter som inte är större än 2 GB. Kan arbeta med logiska diskar upp till 2 047 GB med en maximal klusterstorlek på 32 KB.

Den maximala möjliga fillängden i FAT32 är 4 GB minus 2 byte. Win32-program kan öppna filer av denna längd utan speciell bearbetning. Andra applikationer bör använda Int 21h interrupt, funktion 716C (FAT32) med öppen flagga inställd på EXTEND-SIZE (1000h).

I FAT32-filsystemet tilldelas 4 byte för varje kluster i filallokeringstabellen, medan det är i FAT16 - 2 och i FAT12 - 1.5.

De mest signifikanta 4 bitarna i ett 32-bitars FAT32-tabellelement är reserverade och deltar inte i bildandet av klusternumret. Program som direkt läser FAT32-tabellen måste maskera dessa bitar och skydda dem från att ändras när nya värden skrivs.

Så FAT32 har följande fördelar jämfört med tidigare implementeringar av FAT-filsystemet:

stöder diskar upp till 2 TB;

organiserar diskutrymme mer effektivt. FAT32 använder mindre kluster (4 KB för diskar upp till 8 GB), vilket sparar upp till 10-15 % utrymme på stora diskar jämfört med FAT;

FAT 32-rotkatalogen, liksom alla andra kataloger, är nu obegränsad, den består av en kedja av kluster och kan placeras var som helst på disken;

har högre tillförlitlighet: FAT32 kan flytta rotkatalogen och arbeta med en FAT-backup, dessutom har startposten på FAT32-enheter utökats till att omfatta en säkerhetskopia av kritiska datastrukturer, vilket gör att FAT32-enheter är mindre känsliga för förekomsten av enskilda dåliga områden än befintliga FAT-volymer;

program laddas 50 % snabbare.

Tabell 2.3.2 - Jämförelse av klusterstorlekar

Diskstorlek Klusterstorlek i FAT16, KB Klusterstorlek i FAT32, KB256 MB-511 MB8 Stöds inte 512 MB - 1023 MB1641024 MB - 2 GB3242 GB - 8 GB Stöds inte 48 GB-16 GB Stöds inte 816 GB-32 GB Stöds ej 1

3. Alternativ fil NTFS-system och dess jämförelse med FAT32

3.1 NTFS-system

(New Technology File System) är det mest föredragna filsystemet när man arbetar med Windows NT, eftersom det var speciellt utformat för detta system. Windows NT innehåller ett konverteringsverktyg som konverterar FAT- och HPFS-volymer till NTFS-volymer. NTFS har avsevärt utökat funktionerna för att kontrollera åtkomst till enskilda filer och kataloger, introducerat ett stort antal attribut, implementerat feltolerans, dynamisk filkomprimering och stöd för POSIX-standardkrav. NTFS tillåter filnamn upp till 255 tecken långa, och den använder samma algoritm för att generera ett kort namn som VFAT. NTFS har förmågan att återställa sig själv i händelse av ett OS- eller maskinvarufel, så att diskvolymen förblir tillgänglig och katalogstrukturen inte störs.

Varje fil på en NTFS-volym representeras av en post i en speciell fil - MFT (Master File Table). NTFS reserverar de första 16 tabellposterna, cirka 1 MB stora, för speciell information. Den första tabellposten beskriver själva huvudfiltabellen. Detta följs av MFT-spegelposten. Om den första MFT-posten är skadad läser NTFS den andra posten för att hitta en spegel MFT-fil vars första post är identisk med den första MFT-posten. Platsen för MFT-datasegmenten och spegel-MFT-filen lagras i bootstrapsektorn. En kopia av startsektorn finns i det logiska mitten av disken. Den tredje MFT-posten innehåller en loggfil som används för filåterställning. De sjuttonde och efterföljande posterna i huvudfiltabellen används av de faktiska filerna och katalogerna på volymen.

Transaktionsloggen (loggfilen) registrerar alla operationer som påverkar volymstrukturen, inklusive filskapande och eventuella kommandon som ändrar katalogstrukturen. Transaktionsloggen används för att återställa en NTFS-volym efter ett systemfel. Posten för rotkatalogen innehåller en lista över filer och kataloger lagrade i rotkatalogen.

Volymallokeringsschemat lagras i en bitmappsfil. Dataattributet för den här filen innehåller en bitmapp, som varje bit representerar ett kluster av volymen och indikerar om klustret är ledigt eller upptaget av någon fil. Stöder även en dålig klusterfil för att registrera dåliga områden på volymen och en volymfil , som innehåller volymnamnet, NTFS-versionen och en bit som ställs in när volymen blir skadad. Slutligen finns det en fil som innehåller en attributdefinitionstabell, som anger vilka typer av attribut som stöds på volymen och om de kan indexeras, återställas genom en systemåterställning, etc. allokerar utrymme i kluster och använder 64-bitars numrering för dem , vilket gör det möjligt att ha 264 kluster, var och en upp till 64 KB i storlek. Precis som med FAT kan klusterstorleken variera, men den ökar inte nödvändigtvis i proportion till diskstorleken. Standardstorlekarna för kluster vid formatering av en partition visas i Tabell 3.1.

PartitionsstorlekKlusterstorlek< 512 Мб512 байт513 Мб - 1024 Мб (1 Гб) 1 Кб1 Гб - 2 Гб2 Кб2 Гб - 4 Гб4 Кб4 Гб - 8 Гб8 Кб8 Гб - 16 Гб16 Кб16 Гб - 32 Гб32 Кб>32 GB64 KB låter dig lagra filer upp till 16 exabyte (264 byte) i storlek och har inbyggd filkomprimering i realtid. Komprimering är ett av attributen för en fil eller katalog och kan, precis som alla attribut, tas bort eller installeras när som helst (komprimering är möjlig på partitioner med en klusterstorlek på högst 4 KB). Vid komprimering av en fil, till skillnad från de komprimeringsscheman som används i FAT, används fil-för-fil-komprimering, så att skada på en liten del av disken inte leder till förlust av information i andra filer.

För att minska fragmenteringen försöker NTFS alltid att lagra filer i angränsande block. Detta system använder en B-tree katalogstruktur som liknar det högpresterande HPFS-filsystemet, snarare än länkad lista används i FAT. Detta gör det snabbare att söka efter filer i en katalog eftersom filnamnen lagras sorterade i lexikografisk ordning. designades som ett återställningsbart filsystem med hjälp av en transaktionsbearbetningsmodell. Varje I/O-operation som modifierar en fil på en NTFS-volym anses vara en transaktion av systemet och kan utföras som ett odelbart block. När en fil modifieras av en användare, registrerar loggfilstjänsten all information som behövs för att upprepa eller återställa transaktionen. Om transaktionen slutförs framgångsrikt, ändras filen. Om inte, återställer NTFS transaktionen.

Trots förekomsten av skydd mot obehörig åtkomst till data, ger NTFS inte den nödvändiga konfidentialitet för lagrad information. För att få tillgång till filer, starta bara upp datorn till DOS från en diskett och använd någon NTFS-drivrutin från tredje part för detta system.

Börjar med Windows-versioner NT 5.0 (nytt namn för Windows 2000) Microsoft stöder det nya filsystemet NTFS 5.0. Den nya versionen av NTFS introducerade ytterligare filattribut; Tillsammans med åtkomsträtten har begreppet åtkomstvägran införts, vilket gör att till exempel, när en användare ärver grupprättigheter till en fil, förbjuda denne att ändra dess innehåll. Nytt system tillåter även:

införa begränsningar (kvoter) på mängden diskutrymme som tillhandahålls användare;

mappa vilken katalog som helst (både på den lokala och fjärrdatorn) till en underkatalog på den lokala disken.

En intressant egenskap hos den nya versionen av Windows NT är dynamisk kryptering av filer och kataloger, vilket ökar tillförlitligheten för informationslagring. Windows NT 5.0 inkluderar ett krypteringsfilsystem (EFS), som använder krypteringsalgoritmer för delad nyckel. Om krypteringsattributet är inställt för en fil, när ett användarprogram kommer åt filen för att skriva eller läsa, kodas filen och avkodas transparent för programmet.

.2 Jämförelse av NTFS och FAT32

Fördelar:

Snabb åtkomsthastighet till små filer;

Storleken på diskutrymme idag är praktiskt taget obegränsad;

Filfragmentering påverkar inte själva filsystemet;

Hög tillförlitlighet för datalagring och filstruktur;

Hög prestanda när du arbetar med stora filer;

Brister:

Högre volymkrav random access minne jämfört med FAT 32;

Att arbeta med medelstora kataloger är svårt på grund av deras fragmentering;

Mer låg hastighet arbete jämfört med FAT 3232

Fördelar:

Hög hastighet;

Lågt RAM-krav;

Effektivt arbete med medelstora och små filer;

Lägre skivslitage på grund av färre läs-/skrivhuvudrörelser.

Brister:

Lågt skydd mot systemfel;

Inte effektivt arbete med stora filer;

Begränsning av den maximala volymen för en partition och fil;

Minskad prestanda på grund av fragmentering;

Minskad prestanda vid arbete med kataloger som innehåller ett stort antal filer;

Så båda filsystemen lagrar data i kluster vars minsta storlek är 512 b. Som regel är den vanliga klusterstorleken 4 Kb. Det är där likheterna förmodligen slutar. Något om fragmentering: hastighet NTFS fungerar minskar kraftigt när skivan är fylld till 80 - 90%. Detta beror på fragmenteringen av tjänste- och arbetsfiler. Ju mer du arbetar med en så upptagen disk, desto starkare blir fragmenteringen och desto lägre prestanda. I FAT 32 sker fragmentering av skivans arbetsområde i tidigare skeden. Poängen här beror på hur ofta du skriver/raderar data. Precis som med NTFS minskar fragmentering avsevärt prestandan. Nu om RAM. Volymen på själva FAT 32-kalkylarket kan uppta ungefär flera megabyte i RAM. Men cachning kommer till undsättning. Vad skrivs till cachen:

Mest använda kataloger;

Data om alla filer som för närvarande används;

Data om ledigt diskutrymme;

Hur är det med NTFS? Stora kataloger är svåra att cache, och de kan nå flera tiotals megabyte i storlek. Plus MFT, plus information om ledigt diskutrymme. Även om det bör noteras att NTFS fortfarande använder RAM-resurser ganska ekonomiskt. Vi har ett framgångsrikt datalagringssystem, i MFT är varje post cirka 1 Kb. Men ändå är kraven på mängden RAM-minne högre än för FAT 32. Kort sagt, om ditt minne är mindre än eller lika med 64 Mb, så kommer FAT 32 att vara effektivare när det gäller hastighet. Om det är mer, Skillnaden i hastighet kommer att vara liten, och ofta ingen alls. Nu om själva hårddisken. För att använda NTFS krävs Bus Mastering. Vad är detta? Detta är ett speciellt driftsätt för föraren och styrenheten. Vid användning av BM sker utbytet utan medverkan av processorn. Frånvaron av en virtuell dator kommer att påverka systemets prestanda. Dessutom, på grund av användningen av ett mer komplext filsystem, ökar antalet rörelser av läs/skrivhuvudena, vilket också påverkar hastigheten. Närvaron av en diskcache har en lika positiv effekt på både NTFS och FAT 32.

Slutsats

Fördelarna med FAT är låga datalagringskostnader och total kompatibilitet med ett stort antal operativsystem och hårdvaruplattformar. Detta filsystem används fortfarande för att formatera disketter, där den stora volymen på partitionen som stöds av andra filsystem inte spelar någon roll, och låg overhead tillåter ekonomisk användning av en liten diskettvolym (NTFS kräver mer utrymme för att lagra data, vilket är helt oacceptabelt för disketter ).

Omfattningen av FAT32 är faktiskt mycket snävare - detta filsystem bör användas om du ska komma åt partitioner med använder Windows 9x och använder Windows 2000/XP. Men eftersom relevansen av Windows 9x idag praktiskt taget har försvunnit, är användningen av detta filsystem inte av särskilt intresse.

Bibliografi

1. http://yura. Puslapiai. lt/archiv/per/fat.html

FAT filsystem

FAT16

FAT16-filsystemet går tillbaka till tiden före MS-DOS och stöds av alla operativsystem. Microsoft system för att säkerställa kompatibilitet. Dess namn File Allocation Table återspeglar perfekt den fysiska organisationen av filsystemet, vars huvudegenskaper inkluderar det faktum att den maximala storleken på en stödd volym (hårddisk eller partition på en hårddisk) inte överstiger 4095 MB. I MS-DOS dagar 4 GB hårddiskar verkade som en dröm (20-40 MB diskar var en lyx), så en sådan reserv var ganska berättigad.

En volym som är formaterad för att använda FAT16 är uppdelad i kluster. Standardstorleken för kluster beror på volymstorleken och kan variera från 512 byte till 64 KB. I tabell Figur 2 visar hur klusterstorleken varierar med volymstorleken. Observera att klusterstorleken kan skilja sig från standardvärdet, men måste ha ett av värdena som anges i tabellen. 2.

Det rekommenderas inte att använda FAT16-filsystemet på volymer större än 511 MB, eftersom för relativt små filer kommer diskutrymme att användas extremt ineffektivt (en 1-byte-fil kommer att uppta 64 KB). Oavsett klusterstorlek stöds inte FAT16-filsystemet för volymer större än 4 GB.

FAT32

Börjar med Microsoft Windows 95 OEM Service Release 2 (OSR2) introducerade stöd för 32-bitars FAT i Windows. För Windows NT-baserade system stöddes detta filsystem först i Microsoft Windows 2000. Medan FAT16 kan stödja volymer upp till 4 GB, kan FAT32 stödja volymer upp till 2 TB. Klusterstorleken i FAT32 kan variera från 1 (512 byte) till 64 sektorer (32 KB). FAT32-klustervärden kräver 4 byte (32 bitar, inte 16 bitar som i FAT16) för att lagra klustervärden. Detta betyder i synnerhet att vissa filverktyg utformade för FAT16 inte kan fungera med FAT32.

Den största skillnaden mellan FAT32 och FAT16 är att storleken på den logiska partitionen på disken har ändrats. FAT32 stöder volymer upp till 127 GB. Dessutom, om vid användning av FAT16 med 2 GB-diskar krävdes ett kluster på 32 KB i storlek, då i FAT32 är ett kluster på 4 KB i storlek lämpligt för diskar med en kapacitet på 512 MB till 8 GB (tabell 4).

Detta innebär följaktligen mer effektiv användning av diskutrymme - ju mindre klustret är, desto mindre utrymme krävs för att lagra filen och som ett resultat är det mindre sannolikt att disken blir fragmenterad.

När du använder FAT32 kan den maximala filstorleken nå 4 GB minus 2 byte. Om du använder FAT16 var det maximala antalet poster i rotkatalogen begränsat till 512, så låter FAT32 dig öka detta antal till 65 535.

FAT32 inför begränsningar för den minsta volymstorleken - den måste vara minst 65 527 kluster. I det här fallet kan klusterstorleken inte vara sådan att FAT upptar mer än 16 MB–64 KB / 4 eller 4 miljoner kluster.

Genom att använda långa filnamn överlappar inte de data som krävs för åtkomst från FAT16 och FAT32. När du skapar en fil med ett långt namn skapar Windows ett motsvarande namn i 8.3-format och en eller flera poster i katalogen för att lagra det långa namnet (13 tecken av det långa filnamnet per post). Varje efterföljande förekomst lagrar motsvarande del av filnamnet i Unicode-format. Sådana händelser har attributen "volymidentifierare", "skrivskyddad", "system" och "dold" - en uppsättning som ignoreras av MS-DOS; i det här operativsystemet nås en fil med dess "alias" i 8.3-format.

Filsystem NTFS

I Microsofts sammansättning Windows 2000 innehåller stöd för en ny version av filsystemet NTFS, som i synnerhet ger arbete med katalogtjänster Active Directory, reparationspunkter, informationssäkerhetsverktyg, åtkomstkontroll och ett antal andra funktioner.

Som med FAT, den viktigaste informationsenhet i NTFS är det ett kluster. I tabell Figur 5 visar standardstorlekarna för kluster för volymer med olika kapacitet.

När du skapar ett NTFS-filsystem skapar formateraren en MTF-fil (Master File Table) och andra områden för att lagra metadata. Metadata används av NTFS för att implementera filstrukturen. De första 16 posterna i MFT är reserverade av NTFS själv. Platsen för metadatafilerna $Mft och $MftMirr registreras i startsektorn på disken. Om den första posten i MFT är skadad läser NTFS den andra posten för att hitta en kopia av den första. En fullständig kopia av startsektorn finns i slutet av volymen. I tabell Figur 6 listar de huvudsakliga metadata som lagras i MFT.

De återstående MFT-posterna innehåller poster för varje fil och katalog som finns på volymen.

Vanligtvis använder en fil en MFT-post, men om en fil har en stor uppsättning attribut eller blir för fragmenterad, kan ytterligare poster krävas för att lagra information om den. I det här fallet lagrar den första posten i en fil, kallad basposten, platsen för de andra posterna. Data om små filer och kataloger (upp till 1500 byte) finns helt och hållet i den första posten.

Filattribut i NTFS

Varje ockuperad sektor på en NTFS-volym tillhör en eller annan fil. Även filsystemmetadata är en del av filen. NTFS behandlar varje fil (eller katalog) som en uppsättning filattribut. Element som filnamnet, dess säkerhetsinformation och även data i den är filattribut. Varje attribut identifieras med en specifik typkod och, valfritt, ett attributnamn.

Om filattribut ryms i en filpost kallas de för residentattribut. Dessa attribut är alltid filnamnet och datumet då det skapades. I de fall filinformationen är för stor för att passa in i en enda MFT-post, blir vissa filattribut icke-resident. Residentattribut lagras i ett eller flera kluster och representerar en ström av alternativa data för den aktuella volymen (mer om detta nedan). NTFS skapar ett Attribut List-attribut för att beskriva platsen för inhemska och icke-resident-attribut.

I tabell Figur 7 visar huvudfilattributen definierade i NTFS. Denna lista kan komma att utökas i framtiden.

CDFS filsystem

Windows 2000 ger stöd för CDFS-filsystemet, som överensstämmer med ISO'9660-standarden som beskriver layouten av information på en CD-ROM. Stöds långa namn filer i enlighet med ISO’9660 nivå 2.

När du skapar en CD-ROM för användning med Windows kontroll 2000 bör följande komma ihåg:

  • alla katalog- och filnamn måste innehålla mindre än 32 tecken;
  • alla katalog- och filnamn får endast bestå av versaler;
  • katalogdjupet bör inte överstiga 8 nivåer från roten;
  • Användning av filnamnstillägg är valfritt.

Jämförelse av filsystem

Under Microsoft Windows 2000 är det möjligt att använda filsystemen FAT16, FAT32, NTFS eller kombinationer av dessa. Valet av operativsystem beror på följande kriterier:

  • hur datorn används;
  • hårdvaruplattform;
  • storlek och antal hårddiskar;
  • informationssäkerhet

FAT filsystem

Som du kanske redan har märkt indikerar siffrorna i filsystemens namn - FAT16 och FAT32 - antalet bitar som krävs för att lagra information om klusternumren som används av filen. Således använder FAT16 16-bitars adressering och följaktligen är det möjligt att använda upp till 2 16 adresser. I Windows 2000 används de första fyra bitarna i FAT32-filplatstabellen för sina egna syften, så i FAT32 når antalet adresser 2 28 .

I tabell Figur 8 visar klusterstorlekarna för filsystemen FAT16 och FAT32.

Förutom betydande skillnader i klusterstorlek tillåter FAT32 också att rotkatalogen expanderar (i FAT16 är antalet poster begränsat till 512 och kan vara ännu lägre om långa filnamn används).

Fördelar med FAT16

Bland fördelarna med FAT16 är följande:

  • filsystem som stöds av operativsystem MS-DOS-system, Windows 95, Windows 98, Windows NT, Windows 2000, såväl som vissa UNIX-operativsystem;
  • det finns ett stort antal program som låter dig korrigera fel i detta filsystem och återställa data;
  • om problem uppstår med uppstart från hårddisken kan systemet startas från en diskett;
  • Detta filsystem är ganska effektivt för volymer mindre än 256 MB.
Nackdelar med FAT16

De största nackdelarna med FAT16 inkluderar:

  • rotkatalogen kan inte innehålla mer än 512 element. Att använda långa filnamn minskar antalet av dessa element avsevärt;
  • FAT16 stöder maximalt 65 536 kluster, och eftersom vissa kluster är reserverade av operativsystemet är antalet tillgängliga kluster 65 524. Varje kluster har en fast storlek för en given logisk enhet. När det maximala antalet kluster uppnås vid den maximala klusterstorleken (32 KB), är den maximala volymstorleken som stöds begränsad till 4 GB (under Windows 2000). För att bibehålla kompatibiliteten med MS-DOS, Windows 95 och Windows 98 bör volymstorleken under FAT16 inte överstiga 2 GB;
  • FAT16 stöder inte inbyggt filskydd och komprimering;
  • På stora diskar går mycket utrymme förlorat på grund av att den maximala klusterstorleken används. Utrymme för en fil tilldelas inte baserat på storleken på filen, utan på storleken på klustret.
Fördelar med FAT32

Bland fördelarna med FAT32 är följande:

  • diskutrymmesallokering är effektivare, särskilt för stora diskar;
  • Rotkatalogen i FAT32 är en vanlig kedja av kluster och kan placeras var som helst på disken. Tack vare detta lägger FAT32 inga begränsningar på antalet element i rotkatalogen;
  • på grund av användningen av mindre kluster (4 KB på diskar upp till 8 GB), är det upptagna diskutrymmet vanligtvis 10-15 % mindre än under FAT16;
  • FAT32 är ett mer tillförlitligt filsystem. I synnerhet stöder den möjligheten att flytta rotkatalogen och använda säkerhetskopia FETT. Dessutom innehåller startposten ett antal data som är kritiska för filsystemet.
Nackdelar med FAT32

De största nackdelarna med FAT32:

  • Volymstorlek vid användning av FAT32 under Windows 2000 är begränsad till 32 GB;
  • FAT32-volymer är inte tillgängliga från andra operativsystem - endast från Windows 95 OSR2 och Windows 98;
  • Säkerhetskopiering av startsektorn stöds inte;
  • FAT32 stöder inte inbyggt filskydd och komprimering.

Filsystem NTFS

När du kör Windows 2000 rekommenderar Microsoft att du formaterar alla hårddiskpartitioner till NTFS, förutom de konfigurationer där flera operativsystem används (förutom Windows 2000 och Windows NT). Genom att använda NTFS istället för FAT kan du använda funktionerna som finns i NTFS. Dessa inkluderar särskilt:

  • möjlighet till återhämtning. Denna funktion är inbyggd i filsystemet. NTFS garanterar datasäkerhet på grund av att det använder ett protokoll och vissa informationsåterställningsalgoritmer. I händelse av ett systemfel använder NTFS protokollet och Ytterligare information För automatisk återställning filsystemets integritet;
  • informationskomprimering. För NTFS-volymer stöder Windows 2000 individuell filkomprimering. Sådana komprimerade filer kan användas av Windows-program utan föregående dekomprimering, vilket sker automatiskt vid läsning från filen. När filen stängs och sparas packas den igen;
  • Dessutom kan följande fördelar med NTFS lyftas fram:

Vissa funktioner i operativsystemet kräver NTFS;

Åtkomsthastigheten är mycket högre - NTFS minimerar antalet diskåtkomster som krävs för att hitta en fil;

Skydda filer och kataloger. Endast på NTFS-volymer är det möjligt att ställa in åtkomstattribut för filer och mappar;

När du använder NTFS stöder Windows 2000 volymer upp till 2 TB;

Filsystemet har en säkerhetskopia av startsektorn - den finns i slutet av volymen;

NTFS stöder det krypterade filsystemet (EFS), som ger skydd mot obehörig åtkomst till filinnehåll;

När du använder kvoter kan du begränsa mängden diskutrymme som förbrukas av användare.

Nackdelar med NTFS

På tal om nackdelarna med NTFS-filsystemet bör det noteras att:

  • NTFS-volymer är inte tillgängliga i MS-DOS, Windows 95 och Windows 98. Dessutom är ett antal funktioner implementerade i NTFS under Windows 2000 inte tillgängliga i Windows 4.0 och tidigare versioner;
  • För små volymer som innehåller många små filer kan prestandan minska jämfört med FAT.

Filsystem och hastighet

Som vi redan har tagit reda på, för små volymer ger FAT16 eller FAT32 mer snabb åtkomst till filer jämfört med NTFS, eftersom:

  • FAT har en enklare struktur;
  • katalogstorleken är mindre;
  • FAT stöder inte filskydd mot obehörig åtkomst - systemet behöver inte kontrollera filbehörigheter.

NTFS minimerar antalet diskåtkomster och den tid som krävs för att hitta en fil. Dessutom, om katalogstorleken är tillräckligt liten för att passa i en enda MFT-post, läses hela posten på en gång.

En post i FAT innehåller klusternumret för det första klustret i katalogen. Att visa en FAT-fil kräver att du söker igenom hela filstrukturen.

När du jämför hastigheten för operationer som utförs på kataloger som innehåller korta och långa filnamn, tänk på att operationshastigheten för FAT beror på själva operationen och storleken på katalogen. Om FAT söker efter en icke-existerande fil söker den igenom hela katalogen - en operation som tar längre tid än att söka i den B-trädbaserade strukturen som används av NTFS. Den genomsnittliga tiden som krävs för att hitta en fil uttrycks som en funktion av N/2 i FAT, och som log N i NTFS, där N är antalet filer.

Följande faktorer påverkar den hastighet med vilken Windows 2000 kan läsa och skriva filer:

  • filfragmentering. Om filen är mycket fragmenterad kräver NTFS vanligtvis färre diskåtkomster än FAT för att hitta alla fragment;
  • klusterstorlek. För båda filsystemen beror standardklusterstorleken på volymstorleken och uttrycks alltid som en potens av 2. Adresser i FAT16 är 16-bitar, i FAT32 - 32-bitar, i NTFS - 64-bitar;
  • Standardklusterstorleken i FAT är baserad på det faktum att filplatstabellen kan ha maximalt 65 535 poster - klusterstorleken är en funktion av volymstorleken dividerat med 65 535. Således är standardklusterstorleken för en FAT-volym alltid större än klusterstorleken för en NTFS-volym av samma storlek. Observera att den större klusterstorleken för FAT-volymer innebär att FAT-volymer kan vara mindre fragmenterade;
  • placering av små filer. Använder sig av NTFS-filer liten storlek finns i MFT-posten. Storleken på filen som passar in i en enskild MFT-post beror på antalet attribut i den filen.

Maximal storlek på NTFS-volymer

I teorin stöder NTFS volymer med upp till 2 32 kluster. Men inte desto mindre, förutom bristen på hårddiskar av denna storlek, finns det andra begränsningar för den maximala volymstorleken.

En sådan begränsning är partitionstabellen. Branschstandarder begränsar storleken på en partitionstabell 2 till 32 sektorer. En annan begränsning är sektorstorleken, som vanligtvis är 512 byte. Eftersom sektorstorleken kan ändras i framtiden, begränsar den nuvarande storleken storleken på en enstaka volym till 2 TB (2 32 x 512 byte = 2 41). Således är 2 TB den praktiska gränsen för fysiska och logiska NTFS-volymer.

I tabell Figur 11 visar de huvudsakliga begränsningarna för NTFS.

Styr åtkomst till filer och kataloger

När du använder NTFS-volymer kan du ställa in åtkomsträttigheter till filer och kataloger. Dessa behörigheter anger vilka användare och grupper som har åtkomst till dem och vilken åtkomstnivå som är tillåten. Sådana åtkomsträttigheter gäller både för användare som arbetar på den dator där filerna finns, och för användare som kommer åt filerna över nätverket när filen finns i en katalog som är öppen för fjärråtkomst.

Under NTFS kan du också ställa in fjärråtkomstbehörigheter, kombinerat med fil- och katalogbehörigheter. Dessutom begränsar filattribut (skrivskyddad, dold, system) åtkomsten till filen.

Under FAT16 och FAT32 är det också möjligt att ställa in filattribut, men de ger inte filåtkomsträttigheter.

Den version av NTFS som används i Windows 2000 introducerade en ny typ av åtkomstbehörighet - ärvda behörigheter. Fliken Säkerhet innehåller alternativet Tillåt ärvbara behörigheter från föräldern att spridas till detta filobjekt, som är aktiv som standard. Det här alternativet minskar avsevärt tiden som krävs för att ändra åtkomsträttigheter till filer och underkataloger. Till exempel, för att ändra åtkomsträttigheter till ett träd som innehåller hundratals underkataloger och filer, aktivera bara det här alternativet - i Windows NT 4 måste du ändra attributen för varje enskild fil och underkatalog.

I fig. Figur 5 visar dialogrutan Egenskaper och fliken Säkerhet (avancerat avsnitt) - utökade åtkomsträttigheter till filen listas.

Låt oss påminna dig om att för FAT-volymer kan du endast styra åtkomst på volymnivån och sådan kontroll är endast möjlig med fjärråtkomst.

Komprimera filer och kataloger

Windows 2000 stöder komprimering av filer och kataloger som finns på NTFS-volymer. Komprimerade filer tillgänglig för läsning och skrivning av alla Windows-program. Det finns ingen anledning att förpacka dem för detta. Kompressionsalgoritmen som används liknar den som används i DoubleSpace (MS-DOS 6.0) och DriveSpace (MS-DOS 6.22), men har en betydande skillnad - under MS-DOS komprimeras hela den primära partitionen eller den logiska enheten, medan du under NTFS kan paketera enskilda filer och kataloger.

NTFS-komprimeringsalgoritmen är utformad för att stödja kluster upp till 4 KB i storlek. Om klusterstorleken är större än 4 KB blir NTFS-komprimeringsfunktioner otillgängliga.

Självläkande NTFS

NTFS-filsystemet har förmågan att självläka och kan behålla sin integritet genom att använda en logg över utförda åtgärder och ett antal andra mekanismer.

NTFS betraktar varje operation som modifierar systemfiler på NTFS-volymer som en transaktion och lagrar information om en sådan transaktion i en logg. En påbörjad transaktion kan antingen slutföras helt (commit) eller återställas (rollback). I det senare fallet återgår NTFS-volymen till tillståndet före transaktionens början. För att hantera transaktioner skriver NTFS alla operationer som ingår i en transaktion till en loggfil innan den skrivs till disk. När transaktionen är klar är alla operationer slutförda. Det kan alltså inte finnas några väntande operationer under NTFS-kontroll. I händelse av diskfel avbryts pågående operationer helt enkelt.

NTFS utför också operationer som gör det möjligt att identifiera defekta kluster i farten och allokera nya kluster för filoperationer. Denna mekanism kallas klusterommappning.

I den här recensionen tittade vi på de olika filsystemen som stöds i Microsoft Windows 2000, diskuterade designen för var och en av dem och noterade deras fördelar och nackdelar. Det mest lovande är NTFS-filsystemet, som har stort set funktioner som inte är tillgängliga i andra filsystem. Den nya versionen av NTFS, som stöds av Microsoft Windows 2000, har ännu större funktionalitet och rekommenderas därför för användning vid installation av operativsystemet Win 2000.

ComputerPress 7"2000

Varje gång jag använder FatFs tror jag att det skulle vara trevligt att förstå hur allt fungerar inuti. Jag ställde upp den här frågan länge, och äntligen har isen brutit. Så det globala målet är att röka minneskort, om det fungerar i detalj är det nuvarande målet att hantera filsystemet.

Jag ska genast säga att jag inte hade något mål att skriva min egen förare eller förstå krångligheterna i detalj, jag var bara intresserad. Uppgiften är ganska enkel att förstå, så det kommer inte att finnas några "koder" här.

Så det första vi måste förstå är att när vi kommunicerar med ett minneskort direkt kan vi antingen läsa eller skriva 512 byte, inga andra åtgärder ges. Eftersom vi ständigt kopierar och raderar filer, och filstorlekarna alltid är olika, kommer tomma områden att dyka upp på kortet blandat med de inspelade. För att användaren inte ska behöva oroa sig för att placera data finns det ett lager som tar hand om dessa problem; det här är filsystemet.

Som nämnts ovan kan du bara skriva och läsa i multipler av 512 byte, d.v.s. 1 sektor. Det finns också ett koncept - ett kluster är helt enkelt flera sektorer, till exempel om klusterstorleken är 16 kB betyder det att den har 16000/512 = 31,25, eller snarare 32 sektorer, och den verkliga klusterstorleken är 16384 byte. Alla filer upptar en storlek som är en multipel av klusterstorleken. Även om filen är 1 kB stor och klustret är 16 kB, kommer filen att uppta hela 16 kB.

Det vore logiskt att göra små kluster, men då kommer begränsningen på det maximala antalet filer och deras storlek in i bilden. FAT16 arbetar på 16-bitars data, så du kan inte fylla på mer än 2^16 kluster. Därför, ju mindre de är, desto mer effektivt används utrymmet för små filer, men desto mindre information kan stoppas på disken. Och vice versa, ju större storlek, desto mer information kan du stoppa in, men desto mindre effektivt används utrymmet för små filer. Maximal storlek klustret är 64kB, så maxvärdet för FAT16 är 64kb*2^16 = 4Gb.

Inledande data: det finns ett 1 GB micro SD-minneskort. Märkt MYDISK, fullt formaterad, klusterstorlek 16kB.

Du behöver en Hex-redigerare, men vilken redigerare som helst kommer inte att fungera, du behöver en som kan se hela disken, och inte bara filerna på disken. Från vad jag kunde hitta: WinHex är det mest lämpliga, men betalda; HxD är enkelt, gratis, men jag kunde inte få det att spara ändringar på disken; DMDE är lite icke-användarvänligt, gratis och låter dig spara ändringar. I allmänhet bestämde jag mig för HxD.

Först är det värt att överväga strukturen för FAT16, bilden visar i vilken ordning de olika delarna av filsystemet är placerade.

All serviceinformation lagras i startsektorn. FAT-området lagrar information om hur fildata finns på disken. Rotkatalogen innehåller information om vilka filer som finns i roten på disken. Dataområdet innehåller informationen som finns i filerna. Alla områden följer strikt varandra i rad, d.v.s. Efter startsektorn börjar FAT-området omedelbart. Låt oss titta på detaljerna nedan.

Uppgift: att förstå principen för vilken filnamn och deras innehåll är ordnade. Så låt oss börja med att söka i rotkatalogen för att förstå vilka filer vi har tillgängliga. Data från startområdet hjälper oss med detta.

De mest intressanta uppgifterna visas i tabellen

Det första vi behöver är att veta storleken på bagageutrymmet. Vi tittar på adressen 0x0E och ser att 4 sektorer är allokerade för startområdet, d.v.s. FAT-området börjar på adress 4*512 = 0x800.

Antalet FAT-tabeller kan bestämmas av adress 0x10 för startområdet. I vårt exempel finns det två av dem, varför två, eftersom varje tabell dupliceras som en backuptabell, så att data kan återställas i händelse av ett fel. Tabellstorleken anges på adressen 0x16. Filens storlek är alltså 512*2*0xEE = 0x3B800, och rotkatalogen börjar på adressen: 0x800 + 0x3B800 = 0x3C000

Inuti rotkatalogen är alla element uppdelade i 32 byte. Det första elementet är volymetiketten, men de efterföljande elementen är filer och mappar. Om filnamnet börjar med 0xE5 betyder det att filen har raderats. Om namnet börjar med 0x00 betyder det att den föregående filen var den sista.

Jag kom på en ganska intressant rotkatalogstruktur. Kortet formaterades helt, sedan skapades 2 textfiler som döptes om till MyFile.txt och BigFile.txt.

Som ni ser har det, förutom mina två filer, skapats ett gäng vänsterorienterade, vars ursprung bara går att gissa sig till.

Det viktigaste som kan betonas här är adressen till det första klustret från vilket data i vår fil börjar. Adressen är alltid placerad vid offset 0x1A. Till exempel, namnet på vår fil MyFile.txt finns på adressen 0x3C100, vi lägger till 0x1A till den, där ser vi numret på det första klustret. = 0x0002, dvs. andra klustret. För filen BigFile.txt börjar data från det tredje klustret.

Även i rotkatalogen kan du också ta reda på datum och tid för den senaste redigeringen av filen; denna fråga var inte särskilt intressant för mig, så jag kommer att kringgå den. Det sista användbara rotkatalogen kan berätta är dess storlek så att vi kan hitta var data börjar.

Storleken anges i startsektorn på adressen 0x11(2byte) = 0x0200*32 = 0x4000 eller 16384 byte.

Låt oss lägga till dess storlek till rotadressen: 3C000 + 4000 = 40000 är adressen till det första dataklustret, men vi behöver det andra för att hitta MyFile.txt. Antalet sektorer i klustret är 32, klusterstorlek = 32*512 = 16384 eller 0x4000, så låt oss lägga till adressen till det första klustret dess storlek, dvs. I teorin bör det andra klustret börja på 0x44000.

Vi går till adressen 0x44000 och ser att data tillhör BigFile.txt (det är bara skräp)

Det visar sig att det finns en liten subtilitet, numreringen av kluster börjar från den andra, det är inte klart varför detta gjordes, men det är ett faktum, d.v.s. i själva verket har vi flyttat till det tredje klustret. Låt oss gå tillbaka ett kluster för att adressera 0x40000 och se förväntade data.

Nu uppstår frågan. Varför behöver vi ett FAT-bord? Poängen är att uppgifterna kan fragmenteras, d.v.s. Början av filen kan vara i ett kluster och slutet i ett helt annat. Dessutom kan dessa vara helt olika kluster. Det kan finnas flera av dem, utspridda i olika dataområden. FAT-tabellen är en sorts karta som talar om för oss hur vi ska flytta mellan kluster.

Låt oss ge ett exempel: ett gäng slumpmässigt skräp stoppas in i filen BigFile.txt så att den inte upptar ett kluster utan flera. Vi går till där FAT-tabellen börjar och tittar på dess innehåll.

De första åtta byten 0xF8FFFFFF är identifieraren för början av fetttabellen. Nästa är 2 byte som refererar till MyFile.txt, det faktum att 0xFFFF är skrivet i dem betyder att filen endast upptar ett kluster. Men nästa fil BigFile.txt börjar i det tredje klustret, vi kommer ihåg detta från rotkatalogen, fortsätter i den fjärde, går sedan till 5,6,7... och slutar vid 12, d.v.s. upptar 10 kluster.

Låt oss kolla om detta verkligen är fallet. Filen väger 163kB, d.v.s. upptar 163000/(32*512) = 9,9 kluster, vilket är ganska likt vad som förväntas. Låt oss upprepa ännu en gång att ett element i FAT-tabellen tar 2 byte, dvs. 16 bitar, därav namnet FAT16. Följaktligen är den maximala adressen 0xFFFF, dvs. maximal volym för FAT16 0xFFFF*klusterstorlek.

Låt oss gå vidare till FAT32. Lastdelen har ändrats något.

Det finns några grundläggande förändringar. Filsystemets namn har flyttats till adressen 0x52, rotstorleken ignoreras nu. Dataområdet ligger precis bakom FAT-tabellerna, rotkatalogen finns i dataområdet. Dessutom har inte rotkatalogen en fast storlek.

Dataområdets adress beräknas:
bootsektorstorlek + FAT-tabell, i mitt fall visade det sig:
746496 + (3821056 * 2) = 0x800000

Rotkatalogadressen beräknas:
(numret på det första klustret i rotkatalogen - 2) * klusterstorlek + adress till början av dataområdet,
de där. i detta exempel kommer det att sammanfalla med början av dataområdet.

Som tidigare tar data i roten upp 32 byte, som tidigare, de "borttagna" magiska filerna, jag antar att dessa är temporära anteckningsblocksfiler.

Men början av det första klustret i MYFILE.txt bestäms nu av två byte, den högsta vid offset 0x14, den lägsta som tidigare 1A. Därför kommer numret på det första dataklustret för filen att vara:
8000A0 + 0x14 = 0x8000B4 - hög byte
8000A0 + 0x1A = 0x8000BA - låg byte
I mitt fall hade kortet bara en fil, så detta är det tredje klustret.

FAT-tabellen genomsöks som i föregående fall, först nu upptar elementen 4 byte, därav namnet FAT32. Ideologin för arrangemanget av element är exakt densamma som i föregående fall.

Användbara saker till bordet
F8 FF FF F0 - första kluster
FF FF FF 0F - sista kluster
FF FF FF F7 - skadat kluster

Var finns uppgifterna?
början av dataområdet + klusterstorlek * (rotklusternummer - 1)
= 0x800000 + (2*4096) = 0x801000

Jag hoppas i allmänna termer att det blev tydligt, det verkar som att det inte finns något övernaturligt. De som läser och upprepar kan äta en kaka :)

FETT(Engelsk) Fil Tilldelning Tabell- "filallokeringstabell") är en klassisk filsystemsarkitektur som, på grund av sin enkelhet, fortfarande används allmänt för flash-enheter. Används i disketter och vissa andra lagringsmedia. Används tidigare på hårddiskar.

Filsystemet utvecklades av Bill Gates och Mark MacDonald 1977 och användes ursprungligen i operativsystemet 86-DOS. 86-DOS förvärvades senare av Microsoft och blev grunden för MS-DOS 1.0, som släpptes i augusti 1981. FAT designades för att fungera med disketter som är mindre än 1 MB och gav från början inte stöd för hårddiskar.

Det finns för närvarande fyra versioner av FAT - FAT8, FAT12, FAT16 Och FAT32. De skiljer sig åt i bitdjupet för poster i skivstrukturen, det vill säga antalet bitar som tilldelats för att lagra klusternumret. FAT12 används främst för disketter, FAT16 för små diskar, FAT32 för hårddiskar. Ett nytt filsystem utvecklades baserat på FAT exFAT(extended FAT), används främst för flash-enheter.

FAT-filsystemet fyller ledigt diskutrymme sekventiellt från början till slut. När du skapar en ny fil eller ökar en befintlig, letar den efter det första lediga klustret i filallokeringstabellen. Om vissa filer har raderats och andra har ändrats i storlek, kommer de resulterande tomma klustren att spridas över disken. Om klustren som innehåller fildata inte finns i en rad, så är filen det fragmenterad. Kraftigt fragmenterade filer minskar effektiviteten avsevärt, eftersom läs-/skrivhuvudena måste flytta från ett område på disken till ett annat när de söker efter nästa filpost. Det är tillrådligt att de kluster som tilldelats för att lagra filen är placerade bredvid varandra, eftersom det minskar tiden det tar att söka efter den. Detta kan dock endast göras med ett speciellt program; denna procedur kallas defragmentering fil.

En annan nackdel med FAT är att dess prestanda beror på antalet filer i en katalog. Om det finns ett stort antal filer (cirka tusen) kan det ta flera minuter att läsa listan med filer i en katalog. FAT lagrar inte information som filägande eller filbehörigheter.

FAT är ett enkelt filsystem som inte förhindrar filkorruption på grund av onormal datoravstängning, det är ett av de vanligaste filsystemen och stöds av de flesta operativsystem.

Organisation av fettfilsystemet

Alla moderna diskoperativsystem tillhandahåller skapandet av ett filsystem som är utformat för att lagra data på diskar och ge tillgång till dem. För att data ska kunna skrivas till en disk måste dess yta vara strukturerad - d.v.s. dela upp in i sektorer Och spår.

Ett spår

C-kluster

Figur 1 - Diskstruktur

stigar- dessa är koncentriska cirklar som täcker skivans yta. Spåret närmast kanten av skivan tilldelas numret 0, nästa - 1, etc. Om disketten är dubbelsidig är båda sidorna numrerade. Numret på den första sidan är 0, numret på den andra är 1.

Varje spår är uppdelat i sektioner som kallas sektorer. Även sektorer tilldelas nummer. Den första sektorn på banan tilldelas nummer 1, den andra - 2, etc.

En hårddisk består av en eller flera runda plattor. Båda ytorna på plattan används för att lagra information. Varje yta är indelad i spår, spår i sin tur i sektorer. Banor med samma radie är cylinder. Således utgör alla nollspår cylinder nummer noll, spår nummer 1 utgör cylinder nummer 1 osv.

Därför kan ytan på en hårddisk betraktas som en tredimensionell matris, vars dimensioner är siffrorna yta, cylinder Och sektorer. En cylinder förstås som en uppsättning av alla spår som tillhör olika ytor och placerade på lika avstånd från rotationsaxeln.

I FAT är filnamnen i 8.3-format och består endast av ASCII-tecken. VFAT har lagt till stöd för långa (upp till 255 tecken) filnamn. Långt filnamn, LFN) i UTF-16LE-kodning, med LFN lagrade samtidigt med 8.3 namn, retrospektivt kallade SFN. Kort filnamn). LFN:er är skiftlägesokänsliga vid sökning, men till skillnad från SFN:er, som lagras med versaler, behåller LFN:er det skiftläge som angavs när filen skapades.

FAT-systemets struktur

I FAT-filsystemet kombineras sammanhängande skivsektorer till enheter som kallas kluster. Antalet sektorer i ett kluster är lika med en potens av två (se nedan). Ett heltal av kluster (minst ett) tilldelas för att lagra fildata, så om till exempel filstorleken är 40 byte och klusterstorleken är 4 KB, kommer endast 1 % av utrymmet som tilldelats för det att vara upptaget genom filinformation. För att undvika sådana situationer är det tillrådligt att minska storleken på kluster och att minska mängden adressinformation och öka hastigheten på filoperationer, vice versa. I praktiken väljs någon kompromiss. Eftersom diskkapaciteten kanske inte uttrycks i ett helt antal kluster, brukar det i slutet av volymen finnas sk. överskottssektorer - en "rest" som är mindre än en klusterstorlek som inte kan allokeras av operativsystemet för lagring av information.

FAT32-volymutrymmet är logiskt uppdelat i tre sammanhängande områden:

  • Reservat område. Innehåller tjänststrukturer som hör till partitionsstartposten (Partition Boot Record - PBR, för att skilja den från Master Boot Record - diskens huvudstartpost; PBR kallas också ofta felaktigt för bootsektorn) och används vid initialisering av en volym;
  • Ett område av en FAT-tabell som innehåller en array av indexpekare ("celler") som motsvarar klustren i dataområdet. Vanligtvis finns det två kopior av FAT-tabellen på disken för tillförlitlighetssyften;
  • Dataområdet där det faktiska innehållet i filerna registreras - det vill säga text textfiler, kodad bild för bildfiler, digitaliserat ljud för ljudfiler etc. - samt den sk. metadata - information om namn på filer och mappar, deras attribut, skapande och modifieringstider, storlekar och placering på disk.

FAT12 och FAT16 allokerar också specifikt rotkatalogområdet. Den har en fast position (direkt efter det sista elementet i FAT-tabellen) och en fast storlek i sektorer.

Om ett kluster tillhör en fil, innehåller motsvarande cell numret på nästa kluster i samma fil. Om cellen motsvarar det sista klustret i filen, så innehåller den ett speciellt värde (FFFF 16 för FAT16). På så sätt byggs en kedja av filkluster. Oanvända kluster i tabellen motsvarar nollor. "Dåliga" kluster (som är uteslutna från bearbetning, till exempel på grund av oläsbarheten för motsvarande område på enheten) motsvarar också en speciell kod.

När en fil raderas ersätts det första tecknet i namnet speciell kod E5 16 och filklusterkedjan i allokeringstabellen återställs till noll. Eftersom information om filstorleken (som finns i katalogen bredvid filnamnet) förblir intakt, är det möjligt att återställa den borttagna filen om filklustren var placerade sekventiellt på disken och de inte skrevs över av ny information.

Boot ingång

Den första FAT-volymstrukturen kallas BPB. BIOS-parameterblock ) och ligger i ett reserverat område, i sektor noll. Denna struktur innehåller information som identifierar typen av filsystem och de fysiska egenskaperna hos lagringsmediet (diskett eller hårddiskpartition).

BIOS-parameterblock

BPB var i princip frånvarande från FAT som tjänade MS-DOS 1.x, eftersom det vid den tiden bara fanns två olika typer volymer - enkel- och dubbelsidiga femtumsdisketter på 360 kB, och volymformatet bestämdes av den första byten i FAT-området. BPB introducerades i MS-DOS 2.x i början av 1983 som en obligatorisk uppstartssektorstruktur som hädanefter skulle bestämma volymformatet; Det gamla schemat för bestämning av den första byten av FAT har förlorat stöd. Även i MS-DOS 2.0 introducerades en hierarki av filer och mappar (innan detta lagrades alla filer i rotkatalogen).

BPB-strukturen i MS-DOS 2.x innehöll ett 16-bitars "totalt antal sektorer"-fält, vilket innebar att denna version av FAT var fundamentalt otillämplig för volymer större än 2 16 = 65 536 sektorer, det vill säga mer än 32 MB med en standardsektorstorlek på 512 byte. I MS-DOS 4.0 (1988) utökades ovanstående BPB-fält till 32 bitar, vilket innebar att den teoretiska volymstorleken ökade till 232 = 4 294 967 296 sektorer, eller 2 TB med en 512-byte sektor.

Nästa modifiering av BPB dök upp med Windows 95 OSR2, som introducerade FAT32 (i augusti 1996). Gränsen på två gigabyte för volymstorlek har tagits bort; en FAT32-volym kan teoretiskt vara upp till 8 TB stor. Storleken på varje enskild fil får dock inte överstiga 4 GB. BIOS Parameter Block FAT32, för kompatibilitet med tidigare versioner av FAT, upprepar BPB FAT16 till och med BPB_TotSec32-fältet, följt av skillnader.

FAT32 "startsektorn" är faktiskt tre 512-byte sektorer - sektorerna 0, 1 och 2. Var och en av dem innehåller 0xAA55-signaturen på adressen 0x1FE, det vill säga i de två sista byte om sektorstorleken är 512 byte. Om sektorstorleken är mer än 512 byte, så finns signaturen både på adressen 0x1FE och i de sista två byten av nollsektorn, det vill säga den dupliceras.

FSInfo

Startposten för en FAT32-partition innehåller en struktur som kallas FSInfo, används för att lagra antalet lediga kluster på volymen. FSInfo upptar som regel sektor 1 (se fältet BPB_FSInfo) och har följande struktur (adresser i förhållande till början av sektorn):

  • FSI_LeadSig. 4-bytesignaturen 0x41615252 indikerar att sektorn används för FSInfo-strukturen.
  • FSI_Reserved1. Intervallet från den 4:e till den 483:e byten av sektorn, inklusive, återställs till noll.
  • FSI_StrucSig. En annan signatur finns på adressen 0x1E4 och innehåller värdet 0x61417272.
  • FSI_Free_Count. Fältet med fyra byte vid adress 0x1E8 innehåller det sista värdet på antalet fria kluster på volymen som systemet känner till. Ett värde på 0xFFFFFFFF betyder att antalet fria kluster är okänt och måste beräknas.
  • FSI_Nxt_Free. Fyrbytefältet på adressen 0x1EC innehåller klusternumret från vilket sökningen efter lediga kluster ska börja i tabellen över indexpekare. Vanligtvis innehåller detta fält numret på det sista FAT-klustret som tilldelats för att lagra filen. Värdet 0xFFFFFFFF betyder att sökningen efter ett ledigt kluster bör utföras från början av FAT-tabellen, det vill säga från det andra klustret.
  • FSI_Reserved2. Reserverat 12-byte-fält på adress 0x1F0.
  • FSI_TrailSig. Signatur 0xAA550000 - sista 4 byten av FSInfo-sektorn.

Poängen med att introducera FSInfo är att optimera systemdriften, eftersom tabellen med indexpekare i FAT32 kan vara betydande och att skanna den byte-för-byte kan ta avsevärd tid. Värdena i fälten FSI_Free_Count och FSI_Nxt_Free kanske inte är korrekta och bör kontrolleras för att se till att de är tillräckliga. Dessutom uppdateras de inte ens i FSInfo-säkerhetskopian, som vanligtvis finns i sektor 7.

Bestämma typen av FAT-volym

Bestämningen av FAT-typen för en volym (det vill säga valet mellan FAT12, FAT16 och FAT32) görs av OS baserat på antalet kluster i volymen, vilket i sin tur bestäms från BPB-fälten. Först och främst beräknas antalet sektorer i rotkatalogen:

RootDirSectors = (BPB_RootEntCnt * 32) / BPB_BytsPerSec

DataSec = TotSec - (BPB_ResvdSecCnt + (BPB_NumFATs * FATSz) + RootDirSectors)

Slutligen bestäms antalet dataområdeskluster:

CountofClusters = DataSec / BPB_SecPerClus

Baserat på antalet kluster finns det en tydlig överensstämmelse med filsystemet:

  • Antal kluster< 4085 - FAT12
  • Antal kluster = 4085 ÷ 65524 - FAT16
  • Antal kluster > 65524 - FAT32

Enligt den officiella specifikationen är detta det enda giltiga sättet att bestämma FAT-typen. Att på konstgjord väg skapa en volym som bryter mot de angivna efterlevnadsreglerna kommer att resultera i att Windows bearbetar den felaktigt. Det rekommenderas dock att undvika CountofClusters-värden som är nära kritiska (4085 och 65525) för att korrekt bestämma filsystemstypen av eventuella, ofta felaktigt skrivna, drivrutiner.

Med tiden började FAT användas i stor utsträckning olika enheter för kompatibilitet mellan DOS, Windows, OS/2, Linux. Microsoft har inte visat någon avsikt att tvinga dem att licensiera [ specificera] .

I februari 2009 stämde Microsoft TomTom, en tillverkare av Linux-baserade bilnavigeringssystem, med påstående om patentintrång.

Anteckningar

  1. http://cd.textfiles.com/megademo2/INFO/OS2_HPFS.TXT
  2. www.microsoft.com/mscorp/ip/tech/fathist.asp på archive.org
  3. Microsoft Extensible Firmware Initiative FAT32 filsystemspecifikation 1.03. Microsoft (6 december 2000). - Dokumentformat Microsoft Word, 268 KB. Arkiverad
  4. Vad sägs om VFAT? . TechNet Arkiv. Microsoft (15 oktober 1999). Arkiverad från originalet den 22 augusti 2011. Hämtad 5 april 2010.
  5. Filsystemtillägget VFAT ska inte förväxlas med filsystemdrivrutinen med samma namn, som dök upp i Windows för Workgroups 3.11 och är utformad för att behandla anrop till MS-DOS-funktioner (INT 21h) i skyddat läge (se: KB126746: Windows for Workgroups versionshistorik. VERSION 3.11 → Icke-nätverksfunktioner. Microsoft (14 november 2003). Arkiverad från originalet den 22 augusti 2011. Hämtad 5 april 2010.)
  6. Federal Patent Court förklarar Microsofts FAT-patent ogiltigt (engelska). heise online. Heise Zeitschriften Verlag (2 mars 2007). Arkiverad
  7. Brian Kahin. Microsoft roils the World med FAT-patent. The Huffington Post (10 mars 2009). Arkiverad från originalet den 22 augusti 2011. Hämtad 10 mars 2009.
  8. Ryan Paul. Microsofts process över FAT-patent kan öppna OSS Pandoras Box (engelska). Ars Technica. Condé Nast Publications (25 februari 2009). Arkiverad
  9. Glyn Moody.(Engelsk) . ComputerworldUK. IDG (5 mars 2009). Arkiverad från originalet den 22 augusti 2011. Hämtad 9 mars 2009.
  10. Steven J. Vaughan-Nichols. Linux-företag undertecknar Microsofts patentskyddspakter (engelska). Computerworld bloggar. IDG (5 mars 2009). Arkiverad från originalet den 22 augusti 2011. Hämtad 9 mars 2009.
  11. Erica Ogg. TomTom bestrider Microsoft i patenttvist. CNet (19 mars 2009). Arkiverad från originalet den 22 augusti 2011. Hämtad 20 mars 2009.

Länkar

  • ECMA-107 (engelsk) FAT-standard



Topp