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 informacji 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
• 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 zaznacza 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 otwartych 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 informacji 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 katalogó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 systemu.
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
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¢ poprzydzielane klastry z ró»nych miejsc dysku, co bardzo spowalnia dziaªanie systemu plików, jak i ogranicza dost¦pne miejsce na dysku. W systemach operacyjnych 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ólnych 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 264 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
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»ytkownika. 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
• 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 najwa»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
• Abraham Silberschatz Peter B. Galdvin Podstawy systemów operacyjnych
• http://www.ntfs.com
• MSDN library
• Jerzy Martyna Wstep do projektowania systemów operacyjnych
• www.winntmag.com