Systemy plików na przykªadzie FAT32 i NTFS
I - Poj¦cie pliku
Zanim przejd¦ do omawiania systemów plików, przedstawi¦ pokrócce
samo poj¦cie pliku. W dzisiejszych czasach informacje mog¡ by¢ przechowywane
na wielu ró»nych no±nikach, w zale»no±ci od systemu komputerowego. W
zwi¡zku z tym system operacyjny zapewnia jednolity logiczny obraz infor-
macji bez wzgledu na sprzet. Ten obraz to wlasnie plik. Jest on zapisy-
wany za pomoca jakiegos odwzorowania zaleznego od rodzaju systemu i
rodzaju sprzetu. W systemach operacyjnych nie ma innej mozliwosci za-
pisania informacji (trwale) niz w pliku, jest on wi¦c najmniejsz¡ dost¦pn¡
jednostk¡ zapisywania informacji. Ogólnie plik jest ci¡giem bitów/bajtów o
ró»nym zale»nym od zastosowania znaczeniu. Dost¦p do pliku zale»y od jego
rodzaju. Omówi¦ pokrótce podstawowe cechy plików, które maj¡ znaczenie
przy omawianiu systemów plików:
a)atrybuty plików
Sªu»¡ one gªównie wygodzie u»ytkowników oraz ochronie zasobów. Panuje
tutaj bardzo du»e zró»nicowanie i jest bardzo du»e pole dla inwencji projek-
tuj¡cego system, najpopularniejsze pomysªy to(podaje nazwy angielskie):
•
Name : jest przechowywana w postaci czytelnej dla czªowieka i sªu»y
oczywi±cie indenty kacji pliku przez u»ytkowników
•
Protection : czyli kto ma jaki dost¦p do pliku
•
Size : wielko±¢ pliku
•
Password : czyli hasªa potrzebne by uzyska¢ dost¦p do pliku, sªu»y to
ochronie, system oparty na hasªach ma jednak t¦ wad¦, »e u»ytkownicy
musz¡ je pami¦ta¢
•
Type : niektóre systemy rozró»niaj¡ typ pliku i na przyklad (windows)
kojarz¡ z ka»dym typem inne akcje systemowe
•
ID : informacje uzupeªniaj¡ce o pliku, najcz¦stsze to: czas utworzenia,
czas ostatniej modykacji czas ostatniego otwarcia (bez modykacji)
•
Creator : ID u»ytkownika, który utworzyª plik
•
Read only : wª¡czony oznacza, »e pliku nie mo»na zmieni¢
•
Hidden : plik ukryty
•
System : plik systemowy
•
Archive : plik do archiwizacji
•
Temporary : plik tymczasowy
•
Lock : blokada dost¦pu
•
Maximal size : najwi¦kszy rozmiar, jaki mo»e przyj¡¢ plik
Oczywi±cie w ró»nych systemach plików wyst¦puje du»o wi¦cej ró»nych
atrybutów.
II - Podstawowe operacje na plikach
Przed przyst¡pieniem do omówienia konkretnych systemów plików, warto
zapozna¢ si¦ z podstawowymi operacjami jakich dostarcza nam system plików.
Niektóre systemy dostarczaj¡ bardzo bogaty wachlarz operacji, tutaj wymieni¦
tylko podstawowe wraz z krótkim opisem zada« systemu przy ich realizowa-
niu:
•
Tworzenie pliku : system musi znale¹¢ miejsce na ten plik oraz
wpisa¢ plik do katalogu, nowo utworzony plik jest pusty, przy tworzeniu
u»ytkownik podaje atrybuty pliku lub system ustawia je na domy±lne
•
Usuwanie pliku : system usuwa wpis pliku do katalogu oraz zaznacza
obszar na dysku zajmowany dotychczas przez ten plik jako wolny, ist-
nieje te» wersja tej funkcji, która ¢zy±ci"miejsce po pliku a nie tylko za-
znacza obszar jako wolny, jest jednak du»o mniej praktyczna do codzi-
ennych zastosowa« (czas dziaªania)
•
Otwieranie pliku : w celu wykonania niektórych operacji na pliku
system wymaga jego otwarcia, niektóre systemy robi¡ to domy±lnie
przy pierwszym odwoªaniu do pliku, inne wymagaj¡ od programisty
jawnego zarz¡dania otwarcia pliku (wywoªania funkcji open); po ot-
warciu informacja o pliku jest przekazywana do tablicy aktualnie ot-
wartych plików, procesy z niego korzystaj¡ce dostaj¡ gotowy wska¹nik
z tej tablicy, co zapobiega ci¡gªemu przeszukiwaniu katalogów
•
Zamykanie pliku : funkcja, która usuwa informacje o pliku z tablicy
otwartych plików
•
Pisanie do pliku : zapisywanie nowych informacji do pliku, odbywa
si¦ ono w miejscu na które pokazuje wska¹nik pisania do pliku nieza-
le»nie od tego czy nie spowoduje to utraty wcze±niej zapisanych danych
•
Czytanie pliku : równie» rozpoczyna si¦ od miejsca, na które pokazuje
wska¹nik w pliku, przesyªanie informacji z pliku do pami¦ci
•
dopisywanie do pliku (append) : czyli pisanie na ko«cu pliku, ta
funkcja przydaje si¦ na przykªad gdy chcemy, »eby u»ytkownicy mogli
dopisywa¢ informacje do pliku ale »eby nie mogli ich kasowa¢ (przykªad
: lista obecno±ci)
•
Skracanie pliku (truncate) : usuni¦cie cz¦±ci lub wszystkich infor-
macji z pliku bez usuwania jego atrybutów
•
Przeszukiwanie (seek) : przesuni¦cie wska¹nika w pliku na jak¡±
pozycj¦ (miejsca od którego system pisze i czyta plik)
•
Ustawienie atrybutów pliku : czyli ustalenie mo»liwych atrybutów
w pliku
•
Zmiana nazwy : Zmienia nazw¦ istniej¡cego pliku
Nie wszystkie te operacje wyst¦puj¡ we wszystkich systemach plików.
Wymienione powy»ej s¡ jednak standardowe. Ciekawy problem zwi¡zany
z otwieraniem plików ma miejsce w systemach, gdzie z jednego pliku mo»e
naraz korzysta¢ kilka procesów (lub u»ytkowników), jest wtedy potrzebna
wi¦ksza ilo±¢ tablic, w których przechowywane s¡ informacje o kolejnych
zaplanowanych miejscach pisania/czytania pliku (tablice dwupoziomowe)
III - System plikow
System plików, to system który po zainstalowaniu na dan¡ partycj¦, b¦dzie
potraª zapewni¢ realizowanie podstawowych operacji na plikach jak i ich
sprawne przechowywanie i zarz¡dzanie nimi
V Fat16/32
Jest to najbardziej popularny dzisiaj system plików. FAT = File Alloca-
tion Table FAT32 jest now¡ wersj¡ systemy FAT16 i nie ró»ni si¦ od niego
w znaczny sposób, podstawowe cechy FAT32 to:
•
Adresowanie za pomoc¡ 32 bitów (st¡d nazwa)
•
Obsªuga partycji do 2TB
•
traktowanie katalogu gªównego w podobny sposób do innych kata-
logów, jest mo»liwo±¢ zmiany jego poªo»enia (w FAT16 miaª on staªem
miejsce)
•
zwi¦kszenie mozliwych wielko±ci partycji dla danej wielko±ci klastrów
(dalej jest zestawienie)
•
3-sektorowy boot-rekord (w FAT16 byª to jeden sektor)
•
mo»liwo±¢ przesyªania danych do pliku swap podczas bezczynno±ci sys-
temu.
Partycja FAT32 skªada si¦ z 4 regionów:
•
region zarezerwowany (z boot-sektorem)
•
tablica alokacji plików
•
katalog gªówny
•
region danych
a)boot sektor:
W boot sektorze znajduj¡ si¦ podstawe informacje, przy pomocy których
mo»na m.in. policzy¢ wielko±¢ pozostaªych regionów. Zestawienie danych w
boot sektorze dla systemu FAT 32 wygl¡da tak:
Nazwa pola
Oset
Rozmiar
Opis
Kod
0000h
3
JMP 0x80h
OS Name
0003h
8
Oem ID
Bios PmB
000Bh
2
Wielko±¢ sektorów w bajtach
000Dh
1
Rozmiar jednostki alokacji
000Eh
2
Liczba sektorów zarezerwowanych
0010h
1
Liczba kopii tablicy FAT
0011h
4
Nie u»ywana w FAT32
0015h
1
Identykator nosnika
0016h
2
Nie u»ywana w FAT32
0018h
2
Liczba sektorów na ±cie»ce
001Ah
2
Liczba gªowic na dysku
001Ch
4
Odlegªo±¢ do pierwszej FAT
0020h
4
Caªkowita liczba sektorów na dysku
0024h
4
Ilo±c sektorów przypadaj¡ce na FAT
0028h
2
FAT handlings ags
002Ah
2
Wersja Fat32
002Ch
4
Numer pierwszego klastra kat. gª.
0030h
2
Odlegªo±c do sektora inf.
0032h
2
Odlegªo±c do kopii boot sektora
0034h
12
Zarezerwowane
Ext. B PmB
0040h
1
Numer no±nika
0041h
1
Obecna gªowica
0042h
1
Sygnatura
0043h
4
Losowa liczba (!?)
0047h
11
Etykieta partycji
0052h
8
System ID
Kod
005Ah
420
Wolne
Sig
01FEh
2
Boot sektor sig.
Kilka uwag o powy»szej tabelce:
Odlegªo±¢ to ilo±¢ sektorów od pocz¡tku partycji do danego obiektu
Fat Handligs Flags to warto±ci odpowiedzialne za zmienianie kopii FAT'u
Kod liczba w zale»no±ci od u»ywanego systemu operacyjnego
2)tablica alokacji plików (FAT)
Kolejny obszar partycji zaj¦ty jest przez tablice alokacji plików (FAT),
która przechowywana jest w dwóch egzemplarzach (niestety obok siebie).
Tablica ta skªada si¦ z indeksów, których numer odpowiada kolejnym "klas-
trom¢zyli najmniejszym adresowalnym w FAT jednostkom na dysku. Jeden
klaster skªada si¦ z kilku sektorów i jego wielko±c zale»y od wielko±ci partycji
(od 2048b do 32768b) W FAT przechowywane s¡ nast¦puj¡ce informacje o
klastrach:
Warto±¢
Opis
0000h
wolny klaster
00000001h - FFFFFFF5h
Numer kolejngego klastra
FFFFFFF6h - FFFFFFF7h
Klaster uszkodzony
FFFFFFFFh
znacznik ko«ca pliku
maksymalna wielko±c FAT wynosi 128kb (ª¡cznie 256kb na dwie kopie)
3)Katalog gªówny
a)wst¦p Przechodz¦ do omówienia gªównej cz¦±ci systemu plików FAT,
jest ni¡ katalog gªówny. Katalog gªówny jest korzeniem drzewa katalogów
(struktura pokrótce omówiona na pocz¡tku tej pracy). W FAT ka»dy plik
identykowany jest za pomoc¡ nazwy i ±cie»ki dost¦pu (kolejnych katalogów,
w których si¦ znajduje).
b)wpis do katalogu Ka»dy wpis ma dªugo±¢ 32bajtów. Katalog gªówny
jest jedynym katalogiem o staªej pozycji (atrybut "VOLUME LABEL").
Kolejne s¡ tworzone przez alokowanie wolnych klastrów. Peªny format wpisu
do katalogu przedstawia tabelka:
Oset
Rozmiar w bajtach
Opis
00h
8
Nazwa zbioru
08h
3
Rozszerzenie
0Bh
1
Atrybut
0Ch
1
Zarezerwowane dla WinNT
0Dh
1
Utworzenie (ms)
0Eh
2
Czas utworzenia
10h
2
Data utworzenia
12h
2
Ostatni dost¦p
14h
2
syst
16h
2
Czas ost. dost¦pu
18h
2
Data ostatniego zapisu
1Ah
2
Dªugo±¢ zbioru
1Ch
4
Dªugo±¢ zbioru
nazwa i rozszerzenie: Pierwszy bajt nazwy ma znaczenie specialne:
Warto±¢ 00h oznacza, »e nie ma dalszych wpisów do katalogu Warto±¢ E5h
oznacza, »e plik zostaª skasowany
Komentarza wymaga pole atrybut, w systemie FAT mamy do dyspozycji
nast¦puj¡ce atrybuty:
•
Read-Only
•
Hidden
•
System
•
Volume Label
•
Directory - (odró»nia katalog od zwykªego pliku)
•
Archive
4) kasowanie i odzyskiwanie. Kasowanie w systemie FAT dokonuje si¦
przez zamienienie pierwszego znaku nazwy pliku na E5h, dzieki czemu plik
jest identykowany jako skasowany i klaster, który go zawieraª jest wolny.
Umo»liwia to bardzo proste odzyskiwanie pliku, po prostu przez ponown¡
zamian¦ pierwszego znaku nazwy.
5)Fragmentacja i Defragmentacja. Konsekwencj¡ opisanego systemu
adresowania klastrów mo»e skutkowa¢ w tzw. fragmentacji dysku. Po wielu
operacjach kasowania i tworzenia nowych plików, mog¡ one mie¢ poprzy-
dzielane klastry z ró»nych miejsc dysku, co bardzo spowalnia dziaªanie sys-
temu plików, jak i ogranicza dost¦pne miejsce na dysku. W systemach opera-
cyjnych korzystaj¡cych z FAT mamy mo»liwo±¢ przeprowadzenia defragmen-
tacji, która przywraca porz¡dek (to jest ustawia pliki tak, »eby miaªy one
poprzydzielane kolejne klastry), to w znaczny sposób przy±piesza dziaªanie
systemu.
6) bª¦dy w systemie FAT. Lata u»ywania systemu FAT pokazaªy,
»e cz¦sto musimy boryka¢ si¦ z bª¦dami, z których najcz¦stsze to: -utrata
klastrów - do tego dochodzi, gdy jaki± program (najcz¦±ciej któremu nie
dane byªo doko«czy¢ dziaªania) zaznaczy jakie± klastry jako zaj¦te przez
maj¡cy powsta¢ plik, a plik ten z ró»nych przyczyn nie powstaª. Klastry takie
s¡ zaznaczone jako zaj¦te, a w rzeczywisto±ci nie s¡ u»ywane -podwajanie :
zdarza si¦ czasami, »e dwa pliki maj¡ przydzielony ten sam klaster -bª¦dy
wpisów w FAT
7) Efektywno±¢ systemu FAT Z uwagi na to, »e wieko±ci poszczegól-
nych plików nie s¡ wielokrotno±ciami wielko±ci klastra mamy do czynienia
z marnotrawieniem miejsca na dysku, które jest tym wi¦ksze im wi¦ksze s¡
klastry (czyli im wi¦kszy jest dysk), oto oszacowanie efektywno±ci wykorzys-
tania przestrzeni dyskowej dla FAT32:
ROZMIAR KLASTRA
EFEKTYWNO
ROZMIAR DYSKU
4K
96.5%
>260MB
8K
93.0%
260MB - 8GB
16K
86%
8GB - 60GB
32K
74%
<2TB
VI Ntfs
NTFS = New Technology File System.
Ten system jest u»ywany w windows NT i pó¹niejszych. Z uwagi na to,
»e zostaª zaprojektowany do pracy w systemie dla wielu u»ytkowników pod
wieloma wzgl¦dami ró»ni si¦ od FAT
1) najwa»niejsze cechy systemu NTFS -Dostosowanie do systemu z
wieloma u»ytkownikami, rozbudowany system praw dost¦pu do plików
-Rozbudowany system odzyskiwania miejsca i organizacji dysku
-Obsªuga dªugich nazw
-Przechowywanie informacj o ostatnim czasie dost¦pu
-Mo»liwa wielko±¢ partycji do 2
64
bajtów (!)
2)Struktura partycji NTFS Partycja w NTFS skªada si¦ podobnie
jak w FAT z 4 regionów, mamy tutaj:
•
boot sektor partycji
•
Master File Table
•
Pliki systemowe NTFS
•
Przestrze« plikowa
a)boot sektor Zawiera informacje na temat wielko±ci sektora, rozmiaru
klastra oraz lokalizacj¦ MFT (master le table), czyli najwa»niejszej cz¦±ci
NTFS
a1)MFT
Jest to najwa»niejsza cz¦±c systemu NTFS, bez niego caªy system jest
bezu»yteczny. Wielko±¢ wpisu w MFT wynosi 1kb, wi¦c pliki mniejsze s¡
trzymane w MFT w caªo±ci, natomiast o pozostaªych plikach trzymane s¡
tzw. resitend atributies (atrybuty do indentykacji pliku, nazwa, poªo»enie
etc). Pierwsze 16 wpisów do MFT jest zarezerwowane na pliki systemowe,
na razie tych plików jest 11.
b)Klastry w NTFS
Podobnie jak w FAT partycja NTFS podzielona jest na klastry. Wielko±c
klastra w NTFS zale»y od wielko±ci partycji i odpowiednio wynosi:
Wielko±¢ partycji
wielko±¢ klastra
< 512MB
512B
513MB-1024MB
1KB
1025MB-2048MB
2KB
2049MB-4906MB
4KB
4907MB-8192MB
8KB
8193MB-16384MB
16KB
16385MB -32728MB
32KB
> 32728MB
64KB
b1) Logiczny i wirtualny numer klastra Logiczny numer klastra
(LCN)wskazuje na poªo»enie na dysku, wirtualny numer klastra (VCN) wskazuje
na dane w pliku. NTFS adresuje zyczn¡ lokalizacje na podstawie LCN.
LCN s¡ to numery wszystkich klastrów numerowane od pocz¡tku partycji
do ko«ca. VCN jest przyporz¡dkowywany do ka»dego pliku, zaczyna 0 dla
pierwszego klastra z danymi i ko«czy si¦ wraz z ko«cem pliku.
c)Pliki systemowwe w NTFS W NTFS nazwy plików systemowych
zaczynaj¡ si¦ od $. Oto zestawienie wszystkich tych plików:
-opis plików systemowych w NTFS
Nazwa pliku
Opis
$Mft
Opisuje zawarto±¢ partycji NTFS
$MftMir
Zawiera duplikat pierwszych rekordów z MFT
$LogFile
Plik .log sªu»acy do naprawy partycji
$Volume
informacje o wolumenie
$AttrDef
tablica denicji atrybutów
$.
katalog gªówny
$Bitmap
mapa bitowa klastrów
$Boot
program bootstrapu
$BadClus
Lista uszkodzonych klastrów
$Quota
Informacji o Qucie
$Upcase
tabela konwersji malych liter na UNICODE
•
$AttrDef - plik, który zawiera informacje o wszystkich atrybutach na
danej partycji
•
$Bitmap - plik, który wskazuje które z LCN s¡ u»ywane, u»ycie tego
pliku skraca czas przeszukiwania dysku.
•
$Boot - ten plik jest u»ywany do iniciowania systemu (bootstrap)
e)atrybuty w systemie NTFS Je±li chodzi o atrybuty, NTFS oferuje
bardzo bogate mo»liwo±ci. Atrybuty ka»dego pliku skªadaj¡ si¦ z dwóch
cz¦±ci: -the content part -the header part Pliki w NTFS skªadaj¡ si¦ z
f)Quota
System NTFS daje mo»liwo±¢ ustanowienia tzw. Quoty na dysku z tym
system. Umo»liwia to okre±lenie miejsca na dysku dla ka»dego u»ytkown-
ika. Quot¦ mo»na dowolnie kongurowa¢, w zale»no±ci od praw u»ytkownika
przyznawa¢ mu rózne wielko±ci. W Qucie ka»dy u»ytkownik ma przydzielone
konto, którego wielko±ci nie mo»na mu przekroczy¢. Na jego konto liczone
s¡ pliki, które sam utworzyª lub których jest wªa±cicielem
g)EFS (Encrypted File System)
Pomysª ten powstaª w zwi¡zku z problemem zabezpieczania plików w NTFS.
O ile system uprawnie« dobrze sprawdza si¦ je±li korzystamy z systemu z
NTFS to jest bezwarto±ciowy je±li zaczniemy przegl¡da¢ dysk pod innym
systemem operacyjnym. EFS zabezpiecza przed tym problemem. NTFS
u»ywa dwóch metod kodowania: symetrycznej i asymetrycznej ale nie b¦de
si¦ tutaj w nie zagª¦biaª (mo»na je znale¹¢ w bibliograi). Dla u»ytkownika
sprawa jest prosta, wystarczy zmieni¢ atrybut ¦ncrypted"i nasz plik zostanie
zaszyfrowany. Prawo do szyfrowania jest jednym z tych które mo»emy dzieli¢
z innymi u»ytkownikami, nale»y wi¦c do by¢ bardzo ostro»nym.
h)Uprawnienia w systemie NTFS
W systemie NTFS rozró»niamy nast¦puj¡ce rodzaje uprawnie« dost¦powych:
•
this folder only
•
this folder, subfolders, and les
•
this folder and subfolders
•
this folder and les
•
subfolders and les onlu
•
subfolders only
•
les only
Te uprawnienia dost¦pne s¡ tylko w najnowszej wersji NTFS (6.0).
Sparse les
W systemie NTFS mo»na zaznaczy¢ okre±lony plik jako sparse, system
alokuje wtedy tylko tyle miejsca ile jest potrzebne na istotne informacje.
Przetrzymuje on tylko informacje o tym gdzie system przechowuje dane.
Pliki te pomagaj¡ w efektywnym wykorzystaniu dysku.
Podsumowanie
Na koniec krótkie zestawienie systemów FAT32 i NTFS wraz z ich na-
jwa»niejszymi cechami:
Kryterium
NTFS5.0
FAT32
system
operacyjny
windows2000, XP
Windows 98,ME,2000,XP
maksymalna wielko±c partycji
2TB
2TB
maksymalna liczba plików
praktycznie nieograniczona
praktycznie nieograniczona
maksymalna wielko±c pliku
nieograniczona
4GB
maksymalna ilo±c klastrów
praktycznie nieograniczona
268435456
maksymalna dªugo±¢ nazwy
255B
255B
nazwy
w
UNICODZIE
zbiór znaków UNICODU
Systemowy zbiór znaków
kopie
zapasowe
MFT Mirror File
druga kopia FAT
poªo»enie
boot-sektora
pierwszy i ostatni sektor
pierwszy sektor
atrybuty
standardowe lub stworzone
standardowe
kompresje
tak
nie
kodowanie
tak
nie
uprawnienia
tak
nie
QUOTA
tak
nie
Sparse
les
tak
nie
Zdolno±c do rekonstrukcji
tak
nie
efektywno±¢ na maªych dyskach
maªa
du»a
efektywno±¢ na du»ych dyskach
du»a
maªa
BIBLIOGRAFIA
•
Abraham Silberschatz Peter B. Galdvin Podstawy systemów opera-
cyjnych
•
http://www.ntfs.com
•
MSDN library
•
Jerzy Martyna Wstep do projektowania systemów operacyjnych
•
www.winntmag.com