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

• 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 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

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¢ 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

$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»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

• 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 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

BIBLIOGRAFIA

• 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