Lokalne systemy plików
System plikow iso9660
Wstęp
W 1985r. grupa przedsiębiorców komputerowych spotkała
się w High Sierra Hotel w Nevadzie w celu opracowania
jednolitego standardu zapisywania danych na dyskach CD-ROM. Prace
zaowocowały powstaniem w 1986r. standardu High Sierra.
Po niewielkich zmianach format High Sierra został zaadoptowany przez organizacją ISO jako standard iso9660.
Ograniczenia
Zdefiniowane są 3 poziomy ograniczeń
- Pierwszy:
- Nazwy plików mogą zawierać jedynie znaki spośród: 'A'..'Z', '0'..'9', '_'
- Nazwa pliku - [8 znaków].[3 znaki], katalogu - do 8 znaków
- Długość śćieżki jest ograniczona do 8 wpisów i 255 znaków
- Pliki muszą być spójne
- Drugi: Pozwala na nazwy do 31 znaków
- Trzeci: Brak ograniczeń
Format logiczny
Dane zapisywane są liniwo najczęściej w 2048 bajtowych sektorach logicznych, chociaż dopuszczalne są również 512 lub 1024 bajtowe. (Sektory fizyczne zdefiniowane przez Sony oraz Phillipsa mają rozmiar 2048 bajtów). Układ sektorów przedstawia rysunek:
Pierwsze 16 sektorów jest niezdefiniowane. Następne sektory to 2048 bajtowe (1 sektor) deskryptory dysków, zakończone specjalnym sektorem kończącym. Obowiązkowy jest tylko pierwszy (primery volume descriptor). Pozostałe (tzn.: secondary, boot, partition) są opcjonalne.
- deskryptor dysku - zawiera m.in. położenie i rozmiarTablicy Ścieżekoraz Katalogu Głównego oraz identyfikatory voluminu, rozmiar sektora itd.
- tablica ścieżek - zawiera posortowane nazwy katalogów, pozwala na znalezienie katalogu bez przechodzenia całej ścieżki od korzenia; iso dopuszcza 2 kopie tablicy ścieżek (High Sierra - 4)
- katalog główny - zawiera rekordy opisujące katalogi oraz pliki, które się w nim znajdują; każdy taki rekord trzyma m.in. rekord katalogu nadrzędnego, rozmiar pliku jego położenie, etc.
Rozszerzenia:
- Rock Ridge - rozszerzenie dla systemów Unixowych - pozwala na pamiętanie atrybutów plików specyficznych dla tego systemu; omija ograniczenie na głębokość zagnieżdżania katalogów
- Joliet - rozszerzenie Microsoft'u dla Win95 pozwalające na dłuższe (do 64) nazwy plików zapisane w standardzie Unicode oraz na zagnieżdżanie katalogów powyżej 8 poziomu;
System plików ReiserFS
Wstęp
ReiserFS został stworzony przez Hansa Reisera. Główne cele przyświecające autorowi to:
- zapewnienie transakcyjności operacji w celu sprawnego przywracania sprawności systemu w przypadku awarii
- zunifikowanie przestrzeni nazw
- agregowanie końcówek plików (modulo długość bloku) tak, aby ograniczyć ilość marnowanego miejsca
Format logiczny
Bloki dyskowe (standardowo 4 kB) powiązane są w B-drzewo. W ten sposób wszystkie informacje na dysku przechowywane są w jednej dużej strukturze danych,
która zawiera zarówno metadane plików i katalogów, jak i samą ich (plików i katalogów) zawartość.
Wyróżniamy trzy zasadnicze rodzaje bloków:
- węzły wewnętrzne - zawierają wskażniki do kolejnych węzłów, porozdzielane kluczami
- bloki sformatowane - liście drzewa, które mogą zawierać:
- wpisy katalogowe - klucz pierwszej pozycji w katalogu i kolejne pozycje
- wpisy pośrednie - wskaźniki do bloków niesformatowanych
- wpisy bezpośrednie - końcówki plików, które nie wypełniają całego bloku
- wpisy informacyjne - dane takie jak wielkość pliku, uprawnienia, etc.
- bloki niesformatowane - zawierają części dużych plików wypełniejące cały blok
Maksymalna wysokość drzewa jest obecnie równa 5.
Każdy blok-węzeł drzewa z wyjątkiem nagłówek bloków nisformatowanych zawiera nagłówek bloku w którym zapisane są:
- poziom w drzewie,
- liczba kluczy/elementów,
- wolna przestrzeń w tym bloku,
- klucz ograniczający ten blok z prawej strony (tylko w liściach).
Klucz zawiera:
- identyfikator katalogu nadrzędnego,
- identyfikator obiektu,
- przesunięcie od początku obiektu do bieżącego bajtu,
- typ obiektu (bezpośredni, pośredni, katalogowy, etc.).
Wskażnik zawiera:
- numer bloku dyskowego,
- przestrzeń zajmowana przez potomka,
Węzeł wewnętrzny | Liść (blok sformatowany) |
|
|
Nagłówek wpisu zawiera (m. in.):
- klucz wyszukiwania elementu,
- przesunięcie od początku bloku do treści,
- różne informacje, których znaczenie zależy od typu opisywanego elementu
Treść wpisu jest zależna od typu obiektu:
- dla wpisu katalogowego są to nazwy plików,
- dla końcówki pliku to treśc tejże,
- dla elementu pośredniego to tablica wskaźników do bloków niesformatowanych
Rejestrowanie z wyprzedzeniem
Bloki zanim trafią we właśćiwe miejsce są rejestrowane w dzienniku. Po załamaniu systemu wykonuje się operacje zapisane w dzienniku. Przebiega to szybciej niż w fsck, bo zależne od rozmiaru dziennika, anie systemu plików.
System plikow XFS
Wstęp
xfs jest systemem plików napisanym dla Irix'a przez SGI, a następnie przeniesionym na Linux'a gdyż ten system jest uznawany za bardzo perspektywiczny.
Format logiczny
- blok o stałej wielkości,
- ekstenty - przedziały bloków.
- grupy alokacji - umożliwiają zarządzanie wielowątkowe
Grupa alokacji:
- superblok
- 2 B-drzewa - zawierające wolne ekstenty (pary pierwszy blok, ile bloków) jedno jest indeksowane numerami, a drugie rozmiarami
- B-drzewo - zawierające i-węzły
- wykaz bloków zajmowanych przez drzewo wolnych przedziałów
i-węzły:
- ogólne informacje (rozmiar, typ_pliku, etc.)
- sekcja atrybutów
- sekcja danych
Każda z sekcji (atrybutów, danych) może być w jednej z trzech postaci:
- wszystkie informacje w i-węźle
- tablica deskryptorów przedziałów
- drzewo przedziałów
Dzięki rozbudowanej sekcji atrybutów można trzymać listy uprawnień.
Katalog zawiera zbiór par (nazwa, numer i-węzła). Zbiór jest w postaci tablicy, lub B-drzewa z hashowaniem nazw.
Tomasz Bloch - "http://rainbow.mimuw.edu.pl/~lfs.htm"