| Ten artykuł należy dopracować zgodnie z zaleceniami edycyjnymi: poprawić styl – powinien mieć encyklopedyczną formę. Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się na stronie dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości prosimy usunąć szablon {{Dopracować}} z kodu tego artykułu. |
System plików – metody i struktury danych używane przez system operacyjny w celu zapisania informacji o plikach i ich zawartości na danej partycji; jest to sposób organizacji plików na dysku. Słowo to jest używane również w znaczeniu dysku, partycji. Może to być nieco mylące.
Przed użyciem partycji lub dysku jako systemu pliku należy odpowiednio go przygotować, poprzez zapisanie odpowiednich struktur danych. Proces ten nazywany jest tworzeniem systemu plików.
Większość systemów plików używanych przez UNIX-y jest ogólnie podobna (lub są one funkcjonalnie podobne), jednak szczegóły mogą się znacząco różnić. Wspólnymi pomysłami są: superblok, iwęzeł, blok danych, blok katalogu, oraz blok pośredni. Superblok zawiera informacje o systemie jako całości, np. rozmiar (dokładna zawartość zależy od systemu plików). Iwęzeł zawiera wszelkie informacje o pliku, z wyjątkiem jego nazwy. Nazwa przechowywana jest w katalogu, razem z numerem iwęzła. Wpis katalogu zawiera nazwę, liczbę iwęzłów plików. Iwęzeł zawiera numery kilku bloków danych, które używane są do przechowywania pliku. Automatycznie alokowane miejsce pozwala przechowywać tylko kilka numerów, jednak w razie potrzeby zostaje dynamicznie alokowana dodatkowa przestrzeń. Bloki alokowane dynamicznie nazywają się bezpośrednimi; nazwa wskazuje, że w celu znalezienia numeru bloku danych należy znaleźć pierwszy blok pośredni.
Zazwyczaj system plików Uniksa pozwala tworzyć dziury w plikach (są one tworzone za pomocą lseek), oznacza to, że system udaje występowanie zera na danym miejscu, jednak nie zajmuje ono dysku. Dzieje się tak często w przypadku małych binariów, bibliotek dzielonych Linuksa, niektórych baz danych i przy innych okazjach. Dziury przechowywane są poprzez zapisywanie specjalne wartości w polu adresu bloku pośredniego lub iwęzła. Ten specjalny adres oznacza, że w pliku jest dziura.
Spis treści |
Linux obsługuje kilka typów systemów plików. Najważniejszymi z nich są:
Powstające systemy - aktualnie powstaje kilka systemów z Księgowaniem, ich cechami są szybkość operacji na dużej liczbie plików, oraz algorytmy obsługujące, które pozwalają na samoczynne naprawianie się systemu w czasie pracy. Jądro Linuksa potrafi (jeżeli tak je skompilowano) obsłużyć systemy plików obcego pochodzenia. Systemom takim często brakuje pewnych cech znanych z rozwiązań rdzennych dla Uniksa, czasami posiadają one dziwne ograniczenia.
tune2fs zmienia ustawienia systemu plików. Kilka najbardziej interesujących opcji:
dumpe2fs pokazuje informacje o systemie plików ext2, większość z nich odczytana zostaje z superbloku.
Każdy system plików ma swoje mocne i słabe strony. Nie są to jakieś kolosalne różnice, jednak warto zastanowić się nad tym detalem podczas instalacji systemu. Obecnie najpopularniejszymi są Ext4, Ext3, ReiserFS oraz Xfs i zazwyczaj instalacja Linuksa na jednej dużej partycji z którymś z tych systemów plików jest wystarczająca do domowych zastosowań. ReiserFS oraz Xfs mają nieco większą wydajność ale małą odporność na zaniki napięcia, dlatego w systemach bez zasilacza awaryjnego, potrafiącego poprawnie zamknąć system w razie zaniku napięcia, lepiej stosować Ext4 lub Ext3.
Na partycjach szyfrowanych należy używać systemów bez księgowania, np Ext2.
Dla nieco bardziej wymagających użytkowników stosuje się podział na większą ilość partycji, z zastosowaniem różnych systemów plików zależnie od miejsca montowania, a zatem przeznaczenia. Przykładowo ext2 jest pozbawiony księgowania więc utworzenie osobnej partycji dla /boot z tym właśnie systemem plików może przyspieszyć startowanie systemu. Z kolei ReiserFS czy Reiser4 najlepiej radzą sobie z dużą liczbą małych plików, co sugerowałoby zastosowanie tego systemu na przykład przy źródłach kernela, /usr/src czy w drzewku Portage (/usr/portage dla Gentoo lub odpowiednikach z innych dystrybucji).
Jednak dla stacji roboczych i małych serwerów, użycie ReiserFS oraz Xfs, rzadko jest uzasadnione.
System plików jest tworzony (zainicjalizowany) przez mkfs. Aktualnie istnieje kilka osobnych programów dla każdego systemu plików. Polecenie mkfs pośredniczy między nimi a użytkownikiem. Typ wybierany jest za pomocą opcji -t typ.
Programy wywoływane przez mkfs mogą wymagać innych opcji. Wspólne i najważniejsze podane są poniżej: