EXT2

Reading Time: 5 minutes

ext2 (zwany także ext2fs) – Drugi rozszerzony system plików to system plików zbudowany na jądrze systemu Linux. Twórcą i twórcą ext2 jest Remy Card. System plików ext2 został zbudowany przez niego zamiast starej, poprzedniej wersji – ext.

W przypadku takich wskaźników, jak szybkość i wydajność, ten system plików może służyć jako standard. Potwierdzają to wyniki testów wydajności systemów plików. Na przykład, w testach szybkości sekwencyjnego odczytywania i zapisywania przez centrum techniczne Dell, system plików ext2 ma przewagę nad ext3 i jest gorszy od prędkości odczytu do bardziej nowoczesnego ext4.

Główną wadą ext2 jest to, że nie jest to system plików księgowania. Jednak tę wadę rozwiązano w następnym systemie plików – ext3.

ext2 jest używany na kartach flash i dyskach półprzewodnikowych (SSD), ponieważ brak kronikowania jest zaletą podczas pracy z napędami z ograniczeniami liczby cykli zapisu.

Historia tworzenia ext2

Podczas szybkiego rozwoju systemu Linux używał systemu plików Minix. Był dość stabilny, ale był 16-bitowy. W rezultacie był twardy limit 64 Mb na partycję. Ponadto istniało ograniczenie maksymalnej długości nazwy pliku, która miała 14 znaków.

Połączone ograniczenia doprowadziły do ​​opracowania “rozszerzonego systemu plików” (stąd określenie “rozszerzony system plików”). Powierzono mu zadanie rozwiązania dwóch kluczowych problemów Minixa. Nowy system plików został odsłonięty w kwietniu 1992 roku. To był Ext, rozszerzył limity wielkości plików do 2 gigabajtów i ustawił limit nazwy pliku na 255 znaków.

Jednak pomimo sukcesu nowego systemu plików nadal istniało wiele nierozwiązanych problemów. Na przykład nie było obsługi oddzielnego dostępu, nie było sygnatur czasowych dla modyfikacji danych. Potrzeba rozwiązania tych problemów posłużyła jako motyw do stworzenia kolejnej wersji rozszerzonego systemu plików ext2 (“Second Extended File System”). ext2 został opracowany w styczniu 1993 roku, zaimplementował także listy kontroli dostępu ACL zgodne z ACL i rozszerzone atrybuty plików.

Organizacja logiczna ext2

Wykres hierarchii katalogów ext2 jest reprezentowany jako sieć. Wynika to z faktu, że jeden plik może jednocześnie wejść w kilka katalogów.

Wszystkie typy plików mają symboliczne nazwy. W hierarchicznie zorganizowanych systemach plików stosuje się z reguły trzy typy nazw: proste, złożone i względne. Tak więc w ext2. W przypadku nazwy prostej ograniczenie polega na tym, że jej długość nie może przekraczać 255 znaków, ponadto nazwa nie może zawierać znaku NULL i ukośnika.

Jeśli chodzi o znak NULL, ograniczenia są związane z reprezentacją łańcuchów w języku C, w przypadku symbolu ukośnika, wszystko to jest to, że jest używany jako separator między katalogami.

Pełna nazwa to ciąg prostych symbolicznych nazw wszystkich katalogów, przez które przechodzi ścieżka od katalogu głównego do podanego pliku. W ext2 plik może być zawarty w kilku katalogach, co oznacza, że ​​może zawierać kilka pełnych nazw (jeden plik to kilka pełnych nazw). W każdym razie pełna nazwa określa plik.

Atrybuty ext2:

  • typ i pozwolenie na dostęp do pliku,
  • właściciel, grupa dostępu,
  • informacje o dozwolonych transakcjach,
  • czas utworzenia, data ostatniego dostępu, data ostatniej modyfikacji i godzina ostatniego usunięcia,
  • aktualny rozmiar pliku,
  • specyfikacja pliku:
    • normalny plik,
    • katalog,
    • urządzenie zorientowane na bajt,
    • plik urządzenia blokowego,
    • nazwana rura,
    • link symboliczny,
  • liczba zajętych bloków,
  • ACL
  • inne

Atrybuty plików zawarte są w specjalnych tabelach, a nie w katalogach, jak to zwykle bywa w prostych systemach plików. W rezultacie katalog ma bardzo prostą strukturę, składającą się z dwóch części: numeru i-węzła i nazwy.

Organizacja fizyczna ext2

Struktura partycji dysku

Jako część rozszerzenia ext2 można wyróżnić następujące elementy:

  • bloki i grupy bloków;
  • deskryptor i-węzła;
  • superblok.

Cała partycja dysku jest podzielona na bloki o stałym rozmiarze, bloki są wielokrotnościami rozmiaru sektora (1024, 2048, 4096 lub 8192 bajtów). Rozmiar bloku jest określany podczas tworzenia systemu plików na partycji dysku. Wszystkie bloki mają przypisane kolejne numery. Aby zmniejszyć fragmentację i liczbę ruchów głowic dysku twardego podczas odczytywania dużych zestawów danych, bloki są grupowane razem.

Podstawową koncepcją systemu plików jest i-węzeł (zwany także węzłem-węzłem informacji). Jest to specjalna struktura, która zawiera informacje o atrybutach i fizycznej lokalizacji pliku. Dekodery indeksu są łączone w tabelę na początku każdej grupy bloków. Superblok jest głównym elementem systemu plików ext2. Zawiera ogólne informacje o systemie plików. Superblok znajduje się 1024 bajtów od początku sekcji. Integralność superbloku określa funkcjonalność systemu plików. System operacyjny tworzy kilka kopii zapasowych superbloku – na wypadek uszkodzenia partycji. W następnym bloku, po superbloku, znajduje się globalna tablica deskryptorów – opis grup bloków w postaci tablicy z ogólną informacją o wszystkich grupach bloków.

Grupa bloków

Wszystkie bloki partycji ext2 są podzielone na grupy. Dla każdej grupy tworzony jest oddzielny rekord w globalnej tabeli deskryptorów. Ten wpis przechowuje główne parametry, takie jak numer bloku w bitmapach i tabelach, liczbę wolnych bloków w grupie, liczbę i-węzłów zawierających katalogi.

Mapa bitowa bloku to system, w którym każdy bit informuje, czy odpowiedni blok jest przypisany do pliku. Jeśli bit jest równy 1, blok jest zajęty. Podobną funkcję pełni mapa bitowa deskryptorów i-węzłów: pokazuje, które deskryptory węzłów są zajęte, a które nie. Jądro Linux próbuje równomiernie rozdzielić i-węzły katalogów na grupy, a inwokacja plików zostaje przeniesiona do grupy z katalogiem nadrzędnym. Cała pozostała przestrzeń, która pojawia się w tabeli jako dane, jest zarezerwowana do przechowywania plików.

System adresowania danych

System adresowania danych jest jednym z najpoważniejszych i najważniejszych elementów systemu plików. Dzięki temu istnieje niezbędny plik w zestawie pustych lub zajmowanych bloków na dysku.

ext2 stosuje następujący schemat adresowania bloków. Aby zapisać adres pliku, wybieranych jest 15 pól, z których każdy składa się z 4 bajtów. Jeśli plik mieści się w 12 blokach, numery odpowiednich klastrów są wymienione w pierwszych dwunastu polach adresu. Jeśli rozmiar pliku przekracza 12 bloków, następne pole zawiera adres klastra, w którym można znaleźć numery następujących bloków pliku. Zatem trzynaste pole służy do adresowania pośredniego.

Przy maksymalnym rozmiarze bloku 4096 bajtów klaster odpowiadający 13 polu może zawierać do 1024 liczb następujących bloków plików. Jeśli rozmiar pliku przekracza 12 + 1024 bloków, używane jest 14 pole, w którym znajduje się adres klastra zawierający 1024 numery klastrów, z których każdy odnosi się do 1024 bloków plików. W tym przypadku obowiązuje już podwójne adresowanie pośrednie. A jeśli plik zawiera więcej niż 12 + 1024 + 1048576 bloków, wówczas ostatnie 15 pole do potrójnego adresowania pośredniego ma zastosowanie.

Ten system adresowania pozwala na posiadanie plików większych niż 2 TB przy maksymalnym rozmiarze bloku 4096 bajtów.