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

1
6

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

1
7

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 
- żeby uniknąć pomyłek mają one nadawane kombinacje 
atrybutów: Read Only + Hidden + System + Volume label 

background image

1
8

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

1
9

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

2
4

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

2
6

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

Koniec


Document Outline