background image

SYSTEMY PLIKOW FAT

background image

File Allocation Table

• FAT (akronim z ang. File Allocation Table) – system 

plików powstały pod koniec lat 70. zastosowany w 
systemach operacyjnych, m.in. DOS i Windows. 
Podobnie jak sam DOS, wywodzi się z systemów CP/M. 
Określa on rozmieszczenie plików, katalogów i wolnej 
przestrzeni na takich nośnikach danych jak dyskietki i 
twarde dyski. Najważniejszym elementem systemu jest 
tablica informująca o rozmieszczeniu plików na partycji 
(FAT) - od nazwy tej tablicy pochodzi nazwa systemu. 

background image

Typy FAT

Rozwój systemu plików FAT następował wraz zwiększaniem 
pojemności nośników na których występował. 

Aktualnie istnieją 4 rodzaje FAT:

- FAT12
- FAT16
- FAT32
- exFAT (FAT64)

Numeracje w nazwie systemu informują o liczbie bitów 
przypadających na jeden klaster w tablicy alokacji plików. Ta 
charakterystyczna cecha danego rodzaju FAT decyduje o 
dozwolonych wielkościach plików, ich maksymalnych ilościach 
etc.

background image

Szczegóły limitów na konkretnych wersjach FAT:

background image

Sektor

Nośniki danych typu dyskietka, dysk itp. przechowują 
informacje w porcjach zwanych sektorami. Sektor jest 
zawsze w całości odczytywany i zapisywany. Większość 
urządzeń posiada sektory o wielkości 512 bajtów 
(0,5kB).

background image

Klaster

• W systemie FAT partycja (poza początkowymi zarezerwowanymi 

sektorami) jest podzielona na klastry (jednostki alokacji pliku). Każdy 

klaster składa się z jednego lub kilku sektorów, klastry są numerowane. 
System operacyjny na podstawie numeru klastra oblicza numer 

logiczny sektora (numer sektora od początku partycji), a na tej 

podstawie numer fizyczny, tj. odpowiadający mu numer ścieżki, głowicy 

i sektora na ścieżce.

• Klaster w całości jest przydzielony jednemu plikowi. Plik w katalogu 

zawiera numer pierwszego klastra pliku, gdzie znajdują się dalsze 

części pliku opisuje wpis w FAT. W tablicy FAT pod numerem 

odpowiadającym numerowi pierwszej części pliku jest umieszczony 
numer kolejnego klastra przydzielonego plikowi lub liczba z zakresu 
FFF8h-

FFFFh, jeśli to jest ostatni klaster pliku. Jeżeli dany klaster jest 

wolny, to w FAT odpowiada mu wpis 0000h, a FFF7h oznacza 
uszkodzony klaster

background image

Wartości klastrów w poszczególnych wersjach FAT

background image

Liczba bitów a limit klastrów

background image

Struktura partycji FAT

Partycja systemu FAT składa się z 4 regionów:

• zarezerwowany (z boot sectorem) – a w nim tablica BPB (Bios 

Parameter Block) oraz program ładujący system operacyjny (boot 
loader) dla partycji systemowej. Blok BPB zawiera informacje 

potrzebne do wyliczenia położenia i rozmiaru pozostałych regionów. 

• tablica alokacji (tablica FAT) – przechowywana zaraz za boot 

sektorem struktura, która zawiera informacje dla systemu 

operacyjnego na temat relacji klastrów. Każda pozycja w tablicy 

FAT odpowiada jednemu klastrowi. Na partycji może być kilka kopii 

tablicy FAT, istnieją zazwyczaj dwie. 

• katalog główny (w FAT32 nie istnieje w tej formie) – katalog główny 

(root directory) jedyny katalog zakładany automatycznie podczas 

utworzenia systemu plików. W FAT12 i FAT16 ma on 

predefiniowany rozmiar, zaś już w FAT32 jako łańcuch klastrów 

może mieć dowolną długość jak i ilość wpisów.

• region danych – zajmowany przez podkatalogi i wszystkie pliki; 

podzielony na logiczne bloki nazwane wcześniej klastrami. 

background image

Schemat struktury:

background image

• Bootsector - to zawsze pierwszy sektor partycji, zawiera 

podstawowe informacje o partycji, między innymi: 

• wielkość partycji 
• wielkość sektora (w bajtach) 
• ilość sektorów w klastrze 
• typ partycji (np. FAT32) 
• ilość kopi tablicy FAT 
• wskaźniki do innych danych 
• kod ładujący system operacyjny 

Bootsector

background image

Zawartość pól bootsektora

background image

FAT

Tablica Alokacji Plików (ang. File Allocation Table)
• 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.

background image

• Root directory - jest to katalog główny systemu 

plików, występuje w ustalonym miejscu w 
partycji. W FAT12 i FAT16 ma sztywno ustaloną 
wielkość - mieści do 512 wpisów (przy długich 
nazwach jeszcze mniej). W FAT32 nie ma tego 
ograniczenia. 

• Każdy katalog i plik w katalogu głównym liczony 

jest jako jeden wpis 

Katalog główny

background image

Struktura katalogu

Każdy plik na dysku znajduje się w jakimś katalogu. Katalog także jest plikiem, tyle, że 

posiada specjalną strukturę i posiada szczególne znaczenie z punktu widzenia systemu 

operacyjnego. Katalog jest tablicą zawierającą informacje o plikach i podkatalogach 

wewnątrz oraz wskaźniki do początków ich danych na dysku.

Każdy zapis w pliku katalogu składa się z 32 bajtów i zawiera następujące informacje (w 

tej kolejności):

E5h -

jest wpisywane do pierwszego bajtu nazwy pliku, który został skasowany. 

(Faktycznie plik nie jest kasowany, ale jest traktowany tak, jakby go nie było) 

zarezerwowane pole

w przypadku FAT32 zawiera 16 starszych bitów numeru 

początkowego klastra 

Każdy zwykły katalog posiada dwa specjalne zapisy:

. (kropka) -

odnosząca się do bieżącego katalogu 

.. (dwie kropki) -

odnoszące się do nadkatalogu. 

background image

16

Nazwy plików i rozszerzenia

W systemie FAT pliki mają nazwy w klasycznej postaci składającej się z ustalonego dwuczęściowego formatu:

nazwa pliku -

ciąg długości od 1 do 8 złożony z dozwolonych znaków (liter, cyfr i symboli $ % @  '  - _ ( ) ~ ! # ^ & )         

rozszerzenie -

opcjonalna część nazwy składająca się z ciągu długości od 0 do 3 znaków  jak wyżej. Rozszerzenia 

pełnią rolę oznaczeń typów plików i są w związku z tym pewne konwencje nazewnicze. Z drugiej jednak strony nie ma 
formalnych przeszkód do nazywania plików w dowolny inny sposób, byle prawidłowy. 

background image

17

Długie nazwy plików

W systemie Windows95  wprowadzono nazwy o długości do 255 
znaków. Kluczową kwestią było zapewnienie kompatybilności ze 
starszymi systemami i aplikacjami.

-

zastosowano aliasowanie długich nazw plików.

-

rozszerzone nazwy są zapisywane w plikach fikcyjnych 

katalogów, stworzonych specjalnie do tego celu
-

żeby uniknąć pomyłek mają one nadawane kombinacje atrybutów: 

Read Only + Hidden + System + Volume label 

background image

18

Długie nazwy plików

W systemie Windows95  wprowadzono nazwy o długości do 255 znaków. 
Kluczową kwestią było zapewnienie kompatybilności ze starszymi systemami i 
aplikacjami.

-

zastosowano aliasowanie długich nazw plików.

-

rozszerzone nazwy są zapisywane w plikach fikcyjnych katalogów, 

stworzonych specjalnie do tego celu
-

żeby uniknąć pomyłek mają one nadawane kombinacje atrybutów: 

Read  Only + Hidden + System + Volume label 

Problemy z długimi nazwami:
-

wykrywanie przez starsze wersje narzędzi systemowych specjalnych  

plików jako błędnych i "poprawianie" ich    - nadpisywanie i 

duplikowanie aliasów 

background image

19

Atrybuty plików

Read-Only

większość aplikacji nie pozwoli modyfikować, ani kasować tego pliku 

Hidden

w normalnych warunkach nie jest wyświetlany przy listowaniu katalogu, 

chyba że podano odpowiedni parametr 
System

pliki systemowe, które nie powinny być zmieniane, ani usuwane (może to 

mieć przykre konsekwencje) 

Volume Label etykieta dysku -

przechowywana w katalogu głównym w postaci zapisu jako nazwa pliku w którym 
ustawiono ten atrybut 
Directory

ten atrybut odróżnia pliki od katalogów 

Archive plik archiwalny -

atrybut ten jest używany do metakomunikacji między aplikacjami, oznacza 
starszą wersję pliku, który może być backupowany 

background image

Schemat Alokacji

W

tablicy alokacji plików woluminu FAT plikom 

przydzielana jest pierwsza dostępna lokalizacja 
w

woluminie. Numer początkowego klastra jest adresem 

pierwszego klastra używanego przez plik. Każdy klaster 

posiada wskaźnik do kolejnego klastra pliku lub 

indykator końca pliku, informujący o tym, że bieżący 

klaster jest ostatnim zawierającym dany plik. 

Każdy klaster zawiera wskaźnik do następnego klastra 

danego pliku albo wskaźnik końca pliku.

background image

Schemat Alokacji

background image

Schemat Alokacji

background image

Schemat Alokacji

background image

24

Fragmentacja

System plików FAT nie posiada mechanizmów zapobiegających fragmentacji 
danych na dysku, wystepowanie tego zjawiska wpływa niekorzystnie na 
wydajność operacji na plikach.

przebieg fragmentacji:

background image

FAT12, FAT16, FAT32

Zalety
• Prosty w implementacji - idealny do urzadzen przenosnych i 

osadzonych

systemów operacyjnych

• Popularny i dobrze udokumentowany
• Obsługiwany przez praktycznie kazdy system operacyjny

Wady
• Podatny na awarie
• Podatny na fragmentacje
• Brak systemu uprawnien
• Nieefektywny przy duzej ilosci plików i przy duzych partycjach

W marcu 2008 roku pojawił się następca FAT32, wolny od niektórych
niedogodności znanych u jego poprzedników.

Podsumowanie

background image

26

exFAT

exFAT (Extended File Allocation Table, aka FAT64) jest systemem plików 
stworzonym specjalnie na potrzeby pamięci flash przez Microsoft. Został 
zawarty w systemie operacyjnym Windows Embedded CE 6.0 oraz w 
poprawce SP1 dla systemu Windows Vista. exFAT może być używany 
wszędzie tam gdzie system plików NTFS nie jest najlepszym rozwiązaniem, ze 
względu na dużą nadmiarowość struktury danych.

Innowacje:

-

znaczne zwiększenie limitów wielkości plików, rozmiaru klastra

-

możliwość nadania praw dostępu (podobnie jak w NTFS)

-

nieograniczona liczba plików w katalogu

-

udoskonalono wydajność

background image

SYSTEM PLIKÓW NTFS

background image

NTFS 

– New Technology File System

Przed systemem plików zaczęto stawiać nowe wymagania, którym 

poprzedni system plików FAT nie był w stanie sprostać.

Wymagania te były na tyle skomplikowane, że nie zdecydowano się 

na rozszerzenie systemu FAT tylko napisanie zupełnie nowego 

systemu plików. 

Nowe cechy miały nie tylko zaspokoić oczekiwania biznesowe, ale i 

wspomóc zwykłych użytkowników w ich codziennej pracy

background image

Główne cele, które postawiono przed nowym systemem 

plików to:

• zminimalizować utratę i rozspójnienie danych w przypadku awarii

sprzętu, braku zasilania, awarii systemowych - NTFS zapewnia
integralność metadanych (czyli danych opisujących plik) w 
przypadku awarii.

• ochrona danych przed nieautoryzowanym dostępem - NTFS ma

zintegrowany model bezpieczeństwa dzięki któremu użytkownik 
może chronić swoje dane

background image

NTFS 

– cechy ogólne

• Obiektowy system plików
• Bezpieczeństwo danych ( Security )
• Nazwy plików i katalogów
• Indeksowanie plików i katalogów
• Quota
• Szyfrowanie
• Kompresja danych
• Pliki rzadkie (sparse file)
• Transakcyjne wykonywanie operacji We / Wy
• Twarde dowiązania

background image

NTFS - Struktura systemu

• Najmniejszą logiczną jednostką na dysku jest klaster. 

• Wszelkie dane składowane są na dysku w postaci plików wliczając     

w to indeksy, bitmapy, metadane i dane.

• Trzonem systemu NTFS jest MFT

background image

NTFS - Schemat budowy partycji

background image

NTFS 

– Spis metaplików

Inode

Nazwa pliku

Opis

0

$MFT

Master File Table -

spis wszystkich plików

1

$MFTMirr

Kopia zapasowa pierwszych 16 rekordów MFT.

2

$LogFile

Dziennik transakcji.

3

$Volume

Informacje o partycji.

4

$AttrDef

Definicje atrybutów.

5

. (dot)

Katalog główny.

6

$Bitmap

Mapa bitowa wszystkich klastrów dysku.

7

$Boot

Boot record

8

$BadClus

Lista uszkodzonych klastrów.

9

$Secure

Lista zabezpieczeń nałożonych na pliki z dysku.

10

$UpCase

Tablica służąca do zamian małych liter na duże.

11

$Extend

Katalog zawierający pozostałe pliki systemowe:

$ObjId, $Quota, $Reparse, $UsnJrnl

12-15

<Unused>

Puste

background image

NTFS - Pliki

Pliki w NTFS reprezentowane są jako zbiory struktur zwanych 

atrybutami. Każdy atrybut może wystąpić dla jednego pliku 

wielokrotnie, każdy może też mieć przypisaną nazwę.

background image

NTFS 

– Standardowo występujące atrybuty

0x10 $STANDARD_INFORMATION

0x20 $ATTRIBUTE_LIST

0x30 $FILE_NAME

0x40 $OBJECT_ID

0x50 $SECURITY_DESCRIPTOR

0x60 $VOLUME_NAME

0x70 $VOLUME_INFORMATION

0x80 $DATA

0x90 $INDEX_ROOT

0xA0 $INDEX_ALLOCATION

0xB0 $BITMAP

0xC0 $REPARSE_POINT

0xD0 $EA_INFORMATION

0xE0 $EA

0xF0 $PROPERTY_SET

0x100 $LOGGED_UTILITY_STREAM

background image

NTFS 

– Jak i gdzie są trzymane dane?

• Małe

• Średnie

• Duże

background image

NTFS 

– Jak i gdzie są trzymane dane?

background image

NTFS - Katalogi

Katalogi podobnie jak w FAT, traktowane są jak 

zwyczajne pliki, z tą różnicą że zawartość katalogu

jest trzymana w B+ drzewie, co znacząco 

przyspiesza wyszukiwanie.

background image

NTFS - Katalogi

background image

NTFS -

Rozwiązania dla działania w warunkach 

awaryjnych, odporność systemu

• Transakcyjność operacji

• Prowadzenie dziennika

-

undo ( unieważnienie )

-redo (powtarzanie )

-undo / redo

• Punkty kontrolne (checkpoints)

background image

Odtwarzanie z powtarzaniem / unieważnieniem

• Przy odtwarzaniu z powtarzaniem system wykonuje:

-

Jeżeli czytając dziennik od końca napotka na wpis <End CKTP> to

powtarza jedynie zatwierdzone transakcje rozpoczęte po tym
dokonaniu wpisu <Start CKTP> (odpowiadającemu dokładnie temu 
<End CKTP>) oraz te transakcje będące na liście aktywnych
transakcji.

-

Jeżeli czytając dziennik od końca napotka na wpis <Start CKTP> to

jest on ignorowany tzn. szukamy pierwszego rekordu <End CKTP>

• Przy odtwarzaniu z unieważnieniem system wykonuje:

-

Jeżeli czytając dziennik od końca napotka na wpis <End CKTP> to

system unieważnia transakcje nie zakończone te które rozpoczęły
się po rekordzie <Start CKTP> oraz te będące na liście aktywnych
transakcji

-

Jeżeli czytając dziennik od końca napotka na wpis <Start CKTP> to

jest on ignorowany tzn. szukamy pierwszego rekordu <End CKTP>

background image

NTFS -

Bezpieczeństwo

• Read 

• Write  

• Execute

• Delete

• Change Permissions

• Take Ownership

background image

NTFS 

– 3G

Darmowy sterownik do obsługi NTFS, przeznaczony dla systemów 

Linux, Mac OS X, FreeBSD, BeOS oraz Haiku. NTFS-3G 

przyporządkowuje konkretnej partycji z systemem plików położenia 

w drzewie katalogów partycje z systemem plików NTFS, używając 
do tego podsystemu FUSE.

W przeciwieństwie do standardowego sterownika, w który 

wyposażone jest jądro systemów Linux, NTFS-3G posiada 

niewielkie ograniczenia, jeśli chodzi o zapisywanie plików: 

- tworzenie, 

- usuwanie, 

- zmiana nazwy, 

-

przenoszenie i modyfikowanie plików dowolnej wielkości

-

w najnowszej wersji można zmieniać ich prawa dostępu

background image

CDFS - Compact Disc File System

CDFS (Compact Disc File System) - zgodny ze standardem ISO 

9660 system plików dla nośników optycznych, umożliwiający 
korzystanie z długich nazw plików zgodnie ze standardami ISO 
9660 Level 2.

background image

CDFS - Compact Disc File System

• Wszystkie nazwy folderów i plików muszą mieć długość do 31 

znaków (w przypadku używania rozszerzenia Joliet nazwy mogą 

mieć do 64 znaków – kodowane w formacie Unicode).

• Drzewo folderów nie może mieć więcej niż osiem poziomów, licząc 

od korzenia (w przypadku Joliet to ograniczenie nie występuje).

• Rozszerzenia nazw plików nie są obowiązkowe.

• Wielkość jednego pliku nie może być większa niż 2GB (DVD).

background image

Opracowanie

Adam Czubernat, Grzegorz Calik

AGH 2008