System plików Ext2 i Ext3.pdf

(283 KB) Pobierz
743075021 UNPDF
WYDZIAŁ ZARZĄDZANIA
KATEDRA INFORMATYKI
System plików Ext2 i Ext3
Raport z przedmiotu: Systemy Operacyjne
Autorzy: Dawid Kołodziejczyk
Paweł Kocot
Krzysztof Kogutkiewicz
Karol Malec
Kierunek, rok studiów: Informatyka i Ekonometria, III
Rok akad., semestr: 2005/2006, zimowy
Kraków, 29.11.2005
743075021.003.png 743075021.004.png
Spis treści:
1. Wstęp.....................................................................................................................................
3
2. Historia systemów plików z rodziny Ext...............................................................................
3
3. System plików Ext2...............................................................................................................
4
3.1. Struktura fizyczna systemu plików Ext2........................................................................
4
3.2. Adresowanie bloków danych..........................................................................................
9
3.3. Rodzaje plików...............................................................................................................
9
3.4. Alokacja danych.............................................................................................................
10
3.5. Bezpieczeństwo..............................................................................................................
10
3.6. Wady i zalety Ext2 (podsumowanie)..............................................................................
11
4. System plików Ext3...............................................................................................................
12
4.1. Księgowanie....................................................................................................................
12
4.2. Indeksowanie katalogów.................................................................................................
13
4.3. Fragmentacja bloków......................................................................................................
13
4.4. Przejście z Ext2 na Ext3.................................................................................................
13
5. Podsumowanie.......................................................................................................................
13
6. Literatura................................................................................................................................
14
 
1. Wstęp
Jako system plików rozumieć będziemy zespół mechanizmów służących do manipulacji
danymi użytkownika, pozwalających w "bezpieczny" sposób na ich:
zapisywanie
odczytywanie
tworzenie
kasowanie
odszukiwanie
Systemy plików stosuje się dla różnych nośników danych takich jak: dyski, dyskietki, a także w
strumieniach danych, sieciach komputerowych, pamięciach. We współczesnych systemach
operacyjnych bezpośrednie operowanie na danych w plikach zarezerwowane jest tylko dla
systemu operacyjnego. Aplikacje mają dostęp tylko do operacji na plikach i mają zabroniony
bezpośredni dostęp do nośnika danych. Jedynie specjalistyczne programy działające “za
plecami” systemu operacyjnego umożliwiają bezpośredni dostęp do nośnika. Przykładem
takiego programu może być: Norton Disk Editor lub Linux Disk Editor.
Większość systemów operacyjnych posiada własny (macierzysty) system plików, rozwijany
równolegle z nim (np. FAT w DOS, NTFS w Microsoft Windows NT lub Ext/Ext2/Ext3 i
ReiserFS/Reiser4 w systemie operacyjnym Linux), ze względu na pewne specyficzne
właściwości nadawane plikom (np. atrybut wykonywalności pliku), podobnie jak niektóre
nośniki danych (np. ISO9660 na CD-ROM i UDF na DVD), jednak sam system plików jest
niezależny od nich. Same systemy operacyjne (w szczególności Unix i jego pochodne) potrafią
obsługiwać wiele systemów plików.
2. Historia systemów plików z rodziny Ext
Ext jest to system plików wykorzystywany głównie dla potrzeb systemu operacyjnego Linux,
obecnie rozwinięty jest do wersji 2 i 3. Utworzony został na podstawie systemu plików Minix,
który używany był w systemie operacyjnym Minix oraz w bardzo wczesnych (0.x) wersjach
Linuxa. Obecnie stosowany jest na dyskietkach.
Twórca Linuxa, Linus Torvalds, chciał uniknąć tworzenia od podstaw nowego systemu plików,
aby móc skoncentrować się nad doskonaleniem wtedy jeszcze skromnego jądra, oraz aby od
początku mieć stabilny system zarządzania danymi na dysku. System plików Minixa miał
jednak poważne niedogodności, takie jak np. ograniczenie rozmiaru partycji i pliku do 64 MB.
Spowodowało to konieczność napisania dla Linuxa nowego systemu plików. W odpowiedzi na
taką sytuację Remy Card z Universite Pierre et Marie Curie (Paryż) zaimplementował nowy
system plików nazwany Rozszerzonym Systemem Plików (Ext – Extended File System). Miało
to miejsce w roku 1992. Ext pozwalał operować na plikach i partycjach o rozmiarze do 2 GB.
Poważną niedogodnością Ext był fakt, że po dłuższym działaniu prowadził do dużej
fragmentacji.
 
W/w cechy doprowadziły do powstania Drugiego Rozszerzonego Systemu Plików o nazwie
Ext2 (Second Extended File System). Pojawił się on w pierwszej wersji alfa w styczniu 1993
roku i wykorzystywany jest do dziś, głównie w systemach operacyjnych z rodziny Linux.
Autorem tego systemu jest, podobnie jak w przypadku systemu Ext, Remy Card. Ext2
obsługuje partycje o wielkości do 4 TB i pliki o wielkości do 2 GB oraz zawiera mechanizmy
zapobiegające fragmentacji. Szczegóły oraz pozostałe cechy przedstawione zostaną w dalszej
części raportu.
Kolejną wersją systemu plików Ext jest Ext3 (Third Extended File System), który jest
rozszerzeniem Ext2 i od swojego poprzednika różni się głównie dodanym księgowaniem i
indeksowaniem katalogów. Ext3 to domyślny system plików w większości dystrybucji systemu
GNU/Linux opartych na jądrze 2.4 oraz nowszych. Autorem systemu plików Ext3 jest Stephen
Tweedie z firmy RedHat. Wersja alfa tego systemu pojawiła się w roku 1999.
3. System plików Ext2
3.1 Struktura fizyczna Ext2
Partycja systemu pików Ext2 podzielona jest na bloki o rozmiarze 1024, 2048 lub 4096
bajtów, przy czym pojedynczy blok uważamy za podstawową fizyczną jednostkę objętościową
danych. Wielkość bloku dyskowego jest stała w ramach całego systemu plików i może być
ustalana na etapie tworzenia systemu plików (np. przy instalacji systemu operacyjnego). Stałe
ograniczające rozmiar bloku dyskowego w systemie Linux znajdują się w źródłach jądra
systemu w pliku nagłówkowym: include/linux/ext2_fs.h :
#define EXT2_MIN_BLOCK_SIZE 1024
#define EXT2_MAX_BLOCK_SIZE 4096
Oczywiście nietrudno zauważyć, że są to potęgi liczby 2.
Kolejne bloki połączone są w grupy , których rozmiar zależy od wybranego rozmiaru bloku.
Podział na grupy zwiększa lokalność danych związanych z jednym plikiem, a co za tym idzie,
przyspiesza dostęp do nich. Grupy zostają ustalone statycznie podczas tworzenia systemu
plików.
W skład grupy bloków wchodzą z kolei:
superblok
tablica deskryptorów grup
bitmapa bloku
bitmapa i-węzłów
tabela i-węzłów
bloki danych
743075021.001.png
Wyżej opisaną strukturę przedstawia następujący rysunek:
Superblok
(oryginał lub kopia)
Blok startowy
Tablica deskryptorów grup
(oryginał lub kopia)
Grupa bloków nr 0
Bitmapa bloku
Grupa bloków nr 1
Bitmapa i-węzłów
...
Tabela i-węzłów
Grupa bloków nr n
Bloki danych
W oryginalnej wersji Ext2 w każdej grupie znajdują się:
a) Superblok , zawierający informacje o całym systemie plików, m.in.:
liczbę wszystkich bloków w systemie plików,
liczbę bloków w grupie,
liczbę zarezerwowanych bloków,
liczbę wolnych bloków,
rozmiar bloku,
liczbę wszystkich i-węzłów (definicja I-węzła poniżej),
liczbę wszystkich wolnych i-węzłów,
liczbę i-węzłów w grupie,
stan systemu plików (czy został poprawnie zamknięty),
licznik zamontowań i datę ostatniego sprawdzenia systemu – pozwala to wymusić
sprawdzanie integralności danych co pewien czas.
Normalnie używana jest podstawowa wersja superbloku z grupy nr 0. W przypadku jego
uszkodzenia można użyć jednej z kopii, która początkowa zapisana była w każdej z grup.
Jednak w nowszej wersji wprowadzono możliwość pominięcia kopii superbloku, aby
zmniejszyć ilość marnowanego miejsca. Kopie superbloku znajdują się wtedy w blokach o
numerach 0, 1 oraz blokach będących potęgą 3, 5 lub 7.
743075021.002.png
Zgłoś jeśli naruszono regulamin