FAT pl, PWr, II Semestr, Systemy Operacyjne


FAT

 

System plików FAT został zaprojektowany przez firmę Microsoft. Pierwsza wersja tego systemu została zaprojektowana dla dysków o niewielkiej pojemności (głównym jej przeznaczeniem były dyskietki). Była to bardzo uboga wersja, nie obsługująca nawet podkatalogów.  Później zaczęły powstawać kolejne, coraz lepsze wersje systemu plików FAT.

Obecnie rozróżnia się trzy rodzaje systemów plików FAT. Są to:

Nazwy pochodzą od liczby bitów, używanych w każdym z systemów do adresowania. 

 

Opis poszczególnych struktur w systemie plików FAT:

Klaster jest grupą sektorów na partycji FAT. W klastry pogrupowane są tylko sektory z danymi. Rozmiar klastra wyspecyfikowany jest w strukturze Boot Record i może wynosić od jednego do 128 sektorów. 

Wszystkie trzy odmiany FATa posiadają strukturę Boot Record, zamieszczoną w zarezerwowanych sektorach. Struktura Boot Record znajduje się na samym początku każdej partycji FAT, z tym, że dla FAT12 i FAT16 zajmuje ona jeden sektor, a dla FAT32 trzy sektory. Struktura ta zawiera pole opisujące rozmiar sektora dla danej partycji (zwykle 512 b). 

Tablica alokująca pliki znajduje się na pierwszych 63 sektorach dysku, po Boot Sektorze.

Tablica alokująca pliki jest zwykłą tablicą, zawierającą 12, 16 lub 32 bitowe elementy. Zazwyczaj na jednej partycji znajdują się dwie  identyczne kopie. 

W strukturze Boot Record jest pole specyfikujące ilość kopii tablicy FAT. W systemach FAT12 i FAT16 używana jest pierwsza kopia tablicy FAT, ale wszystkie zmiany są synchroniczne nanoszone na pozostałe kopie. FAT32 został rozszerzony o możliwość specyfikacji w polu "Flags", która kopia jest podstawowa.

O strukturze plików FAT można po prostu myśleć jako o liście, gdzie każdy łańcuch specyfikuje, które obszary dysku zajęte są przez dany plik czy katalog. 

Katalog główny jest wyspecyfikowany jako normalny katalog, który nie posiada wpisów jedno- i dwu- kropkowych. W systemach FAT12 i FAT16 katalog główny znajduje się tuż za tablicami alokacji plików. Na partycjach FAT32 katalog główny jest utworzony ze zwykłego łańcucha klastrów, które adres początkowy znajduje się w strukturze Boot Record. 

 

0x01 graphic

Rys. 1  Organizacja partycji FAT16 

 

System plików FAT rezerwuje 1 sektor dla FAT12 i FAT16, a dla FAT32 zwykle 32 sektory. Zarezerwowane sektory zawierają Boot Record i jego kopię zapasową.  

W Boot Record znajduje się struktura BPB (BIOS Parameter Block):

BPB dla partycji FAT12 lub FAT16

BPB_FAT12

STRUC

(offset)

bpbBytesPerSector

DW ?

0x0B

bpbSectorsPerCluster

DB ?

0x0D

bpbReservedSectors

DW ?

0x0E

bpbNumberOfFATs

DB ?

0x10

bpbRootEntries

DW ?

0x11

bpbTotalSectors

DW ?

0x13

bpbMedia

DB ?

0x15

bpbSectorsPerFAT

DW ?

0x16

bpbSectorsPerTrack

DW ?

0x18

bpbHeadsPerCylinder

DW ?

0x1A

bpbHiddenSectors

DD ?

0x1C

bpbTotalSectorsBig

DD ?

0x20

BPB_FAT12

ENDS

BPB dla partycji FAT32

BPB_FAT32

STRUC

(offset)

bpbBytesPerSector

DW ?

0x0B

bpbSectorsPerCluster

DB ?

0x0D

bpbReservedSectors

DW ?

0x0E

bpbNumberOfFATs

DB ?

0x10

bpbRootEntries

DW ?

0x11

bpbTotalSectors

DW ?

0x13

bpbMedia

DB ?

0x15

bpbSectorsPerFAT

DW ?

0x16

bpbSectorsPerTrack

DW ?

0x18

bpbHeadsPerCylinder

DW ?

0x1A

bpbHiddenSectors

DD ?

0x1C

bpbTotalSectorsBig

DD ?

0x20

bpb32SectorsPerFAT

DD ?

0x24

bpb32Flags

DW ?

0x28

bpb32Version

DW ?

0x2A

bpb32RootCluster

DD ?

0x2C

bpb32InfoSector

DW ?

0x30

bpb32BootBackupStart

DW ?

0x32

bpb32Reserved

DB 12 DUP (?)

0x34

BPB_FAT32

ENDS

Boot Sector dla partycji FAT12 lub FAT16

BS_FAT12

STRUC

(offset)

bsJmp

DB 3 DUP (?)

0x00

bsOemName

DB 8 DUP (?)

0x03

bsFAT12

BPB_FAT12 Structure

0x0B

bsDriveNumber

DB ?

0x24

bsUnused

DB ?

0x25

bsExtBootSignature

DB ?

0x26

bsSerialNumber

DD ?

0x27

bsVolumeLabel

DB "NO NAME    "

0x2B

bsFileSystem

DB "FAT12   "

0x36

bsBootCode

DB 450 DUP (?)

0x3E

BS_FAT12

ENDS

Boot Sector dla partycji FAT32

BS_FAT32

STRUC

(offset)

bsJmp

DB 3 DUP (?)

0x00

bsOemName

DB 8 DUP (?)

0x03

bsFAT32

BPB_FAT32 Structure

0x0B

bs32DriveNumber

DB ?

0x40

bs32Unused

DB ?

0x41

bs32ExtBootSignature

DB ?

0x42

bs32SerialNumber

DD ?

0x43

bs32VolumeLabel

DB "NO NAME    "

0x47

bs32FileSystem

DB "FAT32    "

0x52

bs32BootCode

DB 422 DUP (?)

0x5A

BS_FAT32

ENDS

 

 

FAT12

FAT16

FAT32

liczba klastrów na partycji

n-4084

4085-65524

65525-n

 

Trochę o implementacji katalogów.

W systemach FAT12 i FAT16 wszystkie katalogi poza katalogiem głównym są w zasadzie plikami. Plik to ciąg bajtów, umieszczony w jednym bądź wielu klastrach. Rozmiar pliku przechowywany jest w strukturze katalogu.

Katalogi nie posiadają rozmiarów, traktowane są jako wielokrotność rozmiaru klastra. Katalogi są powiększane, gdy dodajemy do nich wpis, a katalog był już pełen. 

Katalog główny występuje na ustalonym miejscu w partycji. W systemach FAT12 i FAT16 katalog główny nie może być powiększony, gdyż jego rozmiar został z góry określony przy formatowaniu partycji. Katalog główny w tych systemach ma ustaloną maksymalną liczbę wpisów na 512. W systemie FAT32 zostało to poprawione i nie ma ograniczeń na wpisy w katalogu głównym.

Katalog jest podzielony na małe struktury nazywane wpisami. Każde wpis ma rozmiar 32 bajtów i jest informacją o katalogu bądź pliku, zawartym w naszym katalogu. Wpis zawiera pola:

Suma bajtów = 29. Pozostałe 3 bajty są zarezerwowane, nie mają obecnie znaczenia.

Każdy klaster posiada własny wpis w tablicy FAT. Poniższa tabelka przedstawia wszystkie możliwe wartości dla takiego wpisu:

 

FAT12

FAT16

FAT32

Wolny

000

0000

00000000

Zarezerwowany

001

0001

00000001

Używany przez plik

002-FF6

0002-FFF6

00000002-0FFFFFF6

Uszkodzony

FF7

FFF7

0FFFFFF7

Ostatni klaster w pliku

FF8-FFF

FFF8-FFFF

0FFFFFF8-0FFFFFFF

 

Każdy katalog i plik w katalogu głównym liczony jest jako jeden wpis (może ich być więc w sumie maksymalnie 512, a jeśli mają nazwy dłuższe niż 8.3 to jeszcze mniej).

W tablicy alokacji plików plik dostaje pierwszą dostępną lokację na partycji. Numer początkowego klastra to adres pierwszego klastra, używanego przez plik. Każdy klaster zawiera wskaźnik do następnego klastra danego pliku albo wskaźnik końca pliku (np. 0xFFFF dla FAT16). 

 

0x01 graphic

Rys.2  Pliki na partycji FAT16

0x01 graphic

NTFS

 

System plików NTFS został, podobnie jak FAT, stworzony przez firmę Microsoft. Zaprojektowany został specjalnie dla nowego systemu operacyjnego tej firmy Windows NT (New Technology). stworzenie tego systemu było konieczne, gdyż zaczęły pojawiać się dyski twarde o pojemności przewyższającej możliwości adresowania systemu FAT. Ponadto FAT nie nadawał się do wykorzystań sieciowyc, katalogi i pliki nie miały uprawnień dla różnych użytkowników. NTFS posiada już te wszystkie cechy, wraz z nowymi, wciąż rozwijanymi w różnych systemach np. journallingiem. 

 

Architektura systemu NTFS

W systemie plików NTFS, każda struktura jest plikiem, wliczając w to struktury do zarządzania partycją i statystyk. Informacje kontrolne o partycji przechowywane są w zestawie specjalnych plików, które są tworzone wraz z partycją. Zawierają one informacje o plikach na partycji, rozmiarze partycji, rozmieszczeniu klastrów itp. Jedynym wyjątkiem od zasady "wszystko jest plikiem" jest Boot Sektor, który poprzedza na partycji pliki specjalne. Odpowiedzialny jest za najbardziej podstawowe funkcje, np. ładowanie systemu operacyjnego.

Każdy plik na partycji NTFS stanowi zbiór atrybutów. Dotyczy to nawet zawartości pliku, która traktowana jest jako jeden z atrybutów. Inne atrybuty to nazwa pliku i jego rozmiar. Dzięki takiemu rozwiązaniu system operacyjny traktuje pliki jako obiekty o różnych charakterystykach, pozwala to na łatwe zarządzanie plikami i dodawanie atrybutów w przyszłości.

NTFS przechowuje pliki (także pliki specjalne) używając systemu klastrów - każdy plik podzielony jest na klastry, z których każdy zawiera binarną ilość sektorów 512 bajtowych. Wygląda to podobnie do systemu FAT, ale różni się implementacją klastrów.

NTFS Boot Sektor

Boot Sektor znajduje się na początku każdej partycji NTFS. Jego funkcjonalność jest analogiczna, jak Boot Sektora w systemie FAT. 

NTFS Boot Sektor pomimo, że w nazwie ma słowo "sektor", w rzeczywistości może zajmować na partycji do 16 sektorów. 

NTFS  Boot Sektor zaczyna się w pierwszym sektorze partycji i składa z dwóch struktur.

Volume Boot Code na partycji FAT to ulubiony cel dla wirusów, gdyż zmiana tego kodu może pozwolić wirusowi na automatyczne ładowanie przy każdym starcie systemu. 

Partycje i ich rozmiary w systemie NTFS

Dużą wadą systemów FAT jest ich stosunkowo niewielka przestrzeń adresowa. Maksymalny rozmiar partycji NTFS to 2^64 bajtów, czyli 18,446,744,073,709,551,616 bajtów. 

Dla porównania FAT32 może maksymalnie zaadresować 2 Terabajty pamięci, ale olbrzymich tablicach FAT i stratach pamięci.

 

Klastry

Jedno z podobieństw między systemami FAT i NTFS polega na zarządzaniu nie pojedynczymi sektorami, ale ich grupami - klastrami. Jednak zarządzają nimi w zupełnie inny sposób. Podobnie jak FAT, NTFS wybiera rozmiar klastrów w zależności od rozmiaru partycji. Jednak sposób wyboru wielkości klastra różni się od tego z FAT. Poniższa tabela pokazuje liczbę klastrów i ich rozmiar w zależności od wielkości partycji: 

Rozmiar partycji (GiB)

Liczba sektorów w klastrze

Rozmiar klastra (kiB)

<= 0.5

1

0.5

> 0.5 to 1.0

2

1

> 1.0 to 2.0

4

2

> 2.0 to 4.0

8

4

> 4.0 to 8.0

16

8

> 8.0 to 16.0

32

16

> 16.0 to 32.0

64

32

> 32.0

128

64

Rozmiar klastrów ma istotny wpływ na działanie systemu. Im większe klastry tym więcej pamięci jest marnowane. 

Pliki systemowe

Pliki systemowe znajdują się na początku partycji NTFS. Jednym z plików systemowych jest Master File Table (MFT). MFT zawiera rekord, opisujący każdy plik i katalog na partycji, a jeśli plik jest dość mały, to znajduje się też tam jego zawartość. 

Pliki systemowe też znajdują się w rekordzie MFT, co opisuje poniższa tabelka:

Nazwa pliku systemowego

Nazwa pliku

Rekord MFT #

Opis

Master File Table (MFT)

$MFT

0

MFT też jest plikiem w MFT znajduje się opis jego działania.

Master File Table 2 (MFT2) / Master File Table Mirror

$MFTMirr

1

"Lustrzane" odbicie MFT, zawiera 16 pierwszych rekordów MFT, opisujących pliki systemowe. Plik przechowywany w środku partycji (Windows NT 3.5 i wcześniejsze) albo na jej końcu (Windows NT 4.0 i późniejsze). 

Log File

$LogFile

2

Zapis wszystkich transakcji na plikach. Zapewnia odtwarzalność danych.

Volume Descriptor

$Volume

3

Zawiera podstawowe informacje o partycji, jak nazwa, wersja systemu NTFS, czas utworzenia, itp.

Attribute Definition Table

$AttrDef

4

Zawiera opis różnych typów atrybutów plików na partycji NTFS.

Root Directory / Folder

"." (single period)

5

Wskaźnik na Root Directory katalog partycji.

Cluster Allocation Bitmap

$Bitmap

6

Zawiera mapę, które klastry są zajęte, a które wolne.

Volume Boot Code

$Boot

7

Zawiera kopie struktury Boot Sektor.

Bad Cluster File

$BadClus

8

Lista wszystkich klastrów na partycji, oznaczonych jako uszkodzone.

Quota Table

$Quota

9

Zawiera informacje o quocie na partycji (tylko dla NTFS 5.0 i późniejszych).

Upper Case Table

$UpCase

10

Zawiera informacje o konwersji nazw plików do formatu UNICODE (16 bitów).

Przechowywanie informacji o plikach systemowych pozwala na łatwą rozbudowę systemu. Ponadto pliki systemowe nie muszą znajdować się w określonym miejscu na partycji, więc w razie uszkodzenia jakiejś części twardego dysku mogą być przeniesione w inne miejsce.

Master File Table (MFT)

MFT jest najważniejszym plikiem systemowym na partycji NTFS. Przechowywane są tutaj dane o każdym pliku i katalogu na partycji. Działa jako "punkt startowy" i "spis treści" zarządzania partycją. 

Kiedy na partycji tworzymy katalog lub plik, zostaje dla niego utworzony rekord w MFT. Dla takiego rekordu minimalnym rozmiarem jest 1,024 bajty, a maksymalnym 4,096 bajtów. System używa rekordu do przechowywania informacji o pliku/katalogu w postaci atrybutów. W systemie NTFS nie ma rozróżnienia między zawartością pliku, a jego atrybutami. Ma to ciekawy skutek dla małych plików: jeśli rozmiar pamięci potrzebny na wszystkie atrybuty pliku, wliczając w to jego zawartość, jest mniejszy niż rozmiar rekordu, zawartość pliku będzie przechowywana wewnątrz MFT. Dlatego takie pliki nie wymagają już przechowywania poza MFT, a w dodatku skraca się czas wczytywania pliku. 

Inne ciekawe wykorzystanie atrybutów plików w systemie NTFS to kompresja plików. Zajmuje się tym aplikacja systemu Windows NT. Plik przechowywany jest na partycji w postaci skompresowanej. Gdy użytkownik chce go odczytać następuje automatyczna dekompresja tego pliku bez wiedzy użytkownika. 

Pliki rzadkie przechowywane są na partycji NTFS oszczędnie (tylko znaczące dane). Pozwala to oszczędniej wykorzystywać miejsce na partycji.

0x01 graphic

Rys. 3 Rekord MFT dla małego pliku lub katalogu

Jeśli wszystkie atrybuty pliku nie mieszczą się w MFT, są przechowywane poza nią, jako atrybuty zewnętrzne. Dla bardzo dużych plików nawet wskaźniki na zawartość pliku mogą być atrybutami zewnętrznymi! Duże katalogi są zorganizowane w B-drzewa. Ich rekordy zawierają wskaźniki do zewnętrznych klastrów, zawierających atrybuty katalogu, które nie zmieściły się w MFT.

Takie zarządzanie plikami powoduje duży rozrost MFT. Przy zakładaniu partycji NTFS 12,5 % rozmiaru dysku rezerwowane jest dla MFT. Normalne pliki i katalogi nie będą używać tej przestrzeni, chyba że zabraknie miejsca na reszcie dysku..

 



Wyszukiwarka

Podobne podstrony:
grupa C, Zarządzanie PWR, II stopień, II semestr, Badania operacyjne
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
so, Akademia Morska, IV semestr, systemy operacyjne
sciaga na struktury, Zarządzanie PWr, II semestr, Struktury rynku i ich regulacje
sprawozdanie na elektre 1, Automatyka i robotyka air pwr, II SEMESTR, Podstawy elektroniki
T5PEL, Automatyka i robotyka air pwr, II SEMESTR, Podstawy elektroniki
T4PEL, Automatyka i robotyka air pwr, II SEMESTR, Podstawy elektroniki
poprawa z roslin, I rok, II semestr, Systematyka roślin i grzybów
str tyt kolektor, Politechnika Wrocławska Energetyka, - MGR II semestr, Systemy energetyczne z wykor
kolo elektronika, Automatyka i robotyka air pwr, II SEMESTR, Podstawy elektroniki
SRR Wykład wymagania 2011, Zarządzanie PWr, II semestr, Struktury rynku i ich regulacje
PYTANIA WEJSCIOWKI, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, SO egz, SO egz,
Edytor Vi, studia wsiz, semestr 1 2, Systemy operacyjne, SYSTEMY OPERACYJNE, systemy operacyjne LABO
Egzamin lato 2k00-2, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, so-egzamin, roz
zadania na kolokwium-programowanie, Automatyka i robotyka air pwr, II SEMESTR, Programowanie w język
SO, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, egzamin SO, egzamin SO
Egzamin lato 2k00-1, Materiały, III semestr, Systemy operacyjne- materiały, egzamin, so-egzamin, roz
T2PEL, Automatyka i robotyka air pwr, II SEMESTR, Podstawy elektroniki

więcej podobnych podstron