Extended 2rd Filestytem (ext2)

Struktura fizyczna
Superblok
Deskryptory grupy
Bitmapy
I-węzły
Katalogi
 

Struktura fizyczna

W systemie Ext2 partycja podzielona jest na wiele grup bloków odpowiadających grupom cylindrów w FFS z BSD. Każda grupa bloków zawiera nadmiarową kopie najważniejszych informacji kontrolnych systemu plikow:

  • super blok
  • deskryptory systemu plików
a także częsć systemu plików :
  • - bitmapę bloków
  • - bitmapę i-węzłów






Użycie grup bloków jest bardzo korzystne z punktu widzenia niezawodności.
Struktury kontrolne są powielone w każdej grupie bloków, więc łatwo naprawić system plików,
którego superblok został uszkodzony.
Taka struktura zapewnia również wysoką wydajność. Dzięki zmniejszeniu odległości między
tablicą i-węzłów a blokami danych można zredukować ruchy głowicy podczas operacji wejscia-wyjscia na plikach.



Superblok

Superblok zawiera wszystkie informacje o konfiguracji systemu plików.
Jest przechowywany w bloku 1 systemu plików i jest niezbędny do montowania systemu plików.
Ponieważ super blok jest niezwykle ważny, jego kopie przechowuje się w grupach bloków.
Zawiera informacje kontrolne dotyczace systemu plików, np. liczba struktur i-węzłów i bloków.
Zawiera także informacje o liczbie struktur i-węzłów i bloków w grupie wraz z czasami ostatniej operacji montowania, ostatniego zapisu do bloku specjalnego i ostatniego testu systemu plików.Przechowuje on również informacje o sposobie zachowania się systemu w przypadku wystąpienia blędów, maksymalny odstęp czasowy do następnego testu systemu plików, licznik montowań i maksymalna liczbę operacji montowania, ktora wskazuje kiedy należy przeprowadzić obowiązkowy test systemu plików. Wartości resuid i resgid określaja to, którzy użytkownicy lub grupy, oprócz roota mogą używać zarezerwowanych bloków.
Blok specjalny ma wielkosc 1024 bajtów - minimalnego rozmiaru bloku EXT2_MIN_BLOCK_SIZE.



Deskryptory grupy

W każdej grupie po bloku specjalnym znajdują sie deskryptory grupy bloków które udostępniaja informacje o grupach bloków. Każda grupa opisana jest przez 32 bitowy deskryptor. Zawiera on numery bloków w bitmapie struktury i-wezłów, bitmapę bloku oraz tablicę struktur i-węzlów. Liczbe wolnych struktur i-wezłów oraz bloków i liczbę katalogów w tej grupie bloków.



Bitmapy

System plików ext2 używa bitmap do śledzenia przydzielonych bloków oraz i-wezłów. Wszystkie bitmapy mają rozmiar jednego bloku. Przez to rozmiar grupy bloków ograniczony jest do 8192 bloków po 1024 bajty. Bitmapa bloków opisuje bloki danej grupy, od pierwszego do ostatniego. Aby uzyskać dostęp do bitu konkretnego bloku, najpierw należy sprawdzić, do której grupy należy blok, a nastepnie wyszukać jego bit w bitmapie bloków zawartej w tej grupie.
Bitmapa i-wezłów opisuje i-węzły danej grupy od pierwszego do ostatniego. Aby uzyskać dostęp do bitu konkretnego i-węzła, najpierw należy sprawdzić, do której grupy należy i-węzęł, a nastepnie wyszukac jego bit w bitmapie i-węzłów zawartej w tej grupie.
Aby pobrac informacje z tablicy i-węzłów, nalezy postepowac tak jak w przypadku fragmentow, z tym ze koncowe wyszukiwanie odbywa sie w tablicy i-węzłów grupy, a nie w bitmapie i-węzłów.



I-węzły

I-węzęl to podstawowe pojecie systemu plików ext2. Każdy obiekt w systemie plików jest reprezentowany przez i-węzeł. Struktura i-węzła zawiera wskazniki do bloków systemu plików, ktore przechowuja dane obiektu oraz wszystkie jego metadane z wyjatkiem nazwy. I-węzły każdej grupy bloków sa przechowywane w tablicy i-węzłów wraz z bitmapą, dzięki której system śledzi zajęte i wolne i-węzły. Wskazniki do bloków danych, które opisuje i-węzeł. Pierwszych 12 wskazników odwołuje się do fizycznych bloków zawierających dane opisane przez i-węzeł, a ostatnie trzy określają coraz wieksze poziomy pośredniości. Wskaznik pośredni pierwszego poziomu wskazuje na blok zawierajacy wskazniki do bloków zawierajacych dane przechowywane w danym i-węzle. Wskaznik posredni drugiego poziomu wskazuje na blok zawierajacy wskazniki pierwszego poziomu, a wskaznik trzeciego poziomu wskazuje na blok zawierajacy wskazniki drugiego poziomu.



Katalogi

Katalog jest obiektem systemu plików i ma własny i-węzeł, tak samo jak plik. Jest to specjalnie sformatowany plik z rekordami, które wiażą nazwy z numerami i-węzłów. Katalogi to specjalne pliki, ktore tworzą ścieżki dostępu do plików na dysku. Trzeba podkreslić, ze i-węzęł moze mieć wiele ścieżek dostępu. Ponieważ katalogi są niezwykle istotną czescią systemów plików, mają specyficzną strukture. Plik katalogowy to lista wpisów o nastepującym formacie:
struct ext2_dir_entry {
   unsigned long inode;                       /* wskazuje i-węzęł pliku */
   unsigned short rec_len;                   /* dlugość rekordu wpisu */
   unsigned short name_len;               /* dlugość nazwy pliku   */
   char name[EXT2_NAME_LEN];    /* nazwa pliku max-255 bajtów */
}
W pliku katalogowym znajduje się jeden taki wpis na każdy plik umieszczony w katalogu. Ponieważ ext2fs jest uniksowym systemem plików, pierwsze dwa wpisy w katalogu to "." oraz "..", wskazujące - odpowiednio - katalog bieżący i katalog nadrzędny.

© 2002
by Tomasz K.