4 System Plików Linuxa

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

System plików Linuxa

System plików - metoda przechowywania plików, zarządzania plikami, informacjami o tych plikach,
tak by dostęp do plików i danych w nich zgromadzonych był łatwy dla użytkownika systemu.
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ą zabroniony bezpośredni dostęp do nośnika danych. Popularne systemy
plików linuxa: Minix, xia, Ext, Ext2, Ext3, Ext4, umsdos, msdos, ReiserFS, vfat, XFS, proc, JFS, smb,
NFS, ncp, Swap, iso9660, Sysv, hpfs, Affs, ufs

Minix - pierwszy system plików wykorzystywany w linuxie, który został stworzony jeszcze przed
powstaniem linuxa dla systemu operacyjnego o nazwie MINIX.

Posiadał kilka ograniczeń:

 długość nazwy pliku maksymalnie 14 znaków, (po pewnym czasie zwiększono do 30 znaków)
 wielkość partycji nie większa niż 64 MB,

Ext (EXTENDED FILE SYSTEM) - następca Minix File System, dopuszczał pliki i partycje do
rozmiaru 2 GB oraz długości nazw plików do 255 znaków. Miał jedną dużą wadę, która spowodowała,
że nie stał się popularny: sposób zapamiętywania wolnych bloków i węzłów doprowadzał do znacznej
fragmentacji dysku co wpływało negatywnie na wydajność systemu.

Ext2 - zastąpił ext i w krótkim czasie stał się podstawowym systemem plików dla linuxa.
W porównaniu do poprzednika ma wiele zalet:

 obsługuje partycje o wielkości do 4 TB, pliki o wielkości do 2 GB,


 rozpoznaje uszkodzenie systemu plików,
 automatycznie naprawia uszkodzone sektory za pomocą programu e2fsck,
 automatycznie sprawdza system po awarii i co określony czas, posiada wysoką wydajność dzięki
przeciwdziałanie fragmentacji

Wady:

 długotrwałe sprawdzanie systemu plików po niepoprawnym zamknięciu,


 niska wydajność dla bardzo małych plików,
 mało efektywna obsługa katalogów.

Ext3 - nowoczesny system plików oparty na ext2. Domyślny w większości dystrybucji systemu
GNU/Linux opartych na jądrze2.4 oraz nowszych.

Właściwości:

 Journaling - mechanizm księgowania zwiększający bezpieczeństwo systemu,


 Indeksowane katalogi - znacznie zwiększają wydajność systemu przy dużej ilości plików,
 Zapis synchroniczny - w najnowszych wersjach systemu Ext3 (jądro 2.4.19) działa ponad 10
razy szybciej od wersji z Ext2,
 Kompatybilność z Ext2.

Ext4 - Rozwój systemu ext4 rozpoczął się w 2006 roku wraz z opracowaniem dwóch zmian dla ext3.
Pierwsza z nich rozszerzyła wielkość numeru bloku do 48 bitów, druga zaś zastąpiła mechanizm
Strona 1 z 5
pośredniego adresowania bloków przez tzw. extenty, a więc obszary bloków danych. Ponieważ po
zastosowaniu wspomnianych nowości zmianie ulega struktura danych na dysku, programiści
zadecydowali, że aktualizacje te nie zostaną wprowadzone do starego systemu ext3, lecz na bazie jego
kodu zostanie opracowana nowa wersja systemu plików o nazwie ext4. System plików ext4 pracuje
z 48-bitowymi numerami bloków przy standardowej wielkości bloku nadal wynoszącej 4 kilobajty.
Dzięki temu wielkość systemu plików może wynosić do 248 bloków po 4 kB, a więc jeden eksabajt
(1024 petabajty), zamiast jak w przypadku ext3 – 16 terabajtów.

ReiserFS - zwany także Reiser3 to system plików zaprojektowany i zaimplementowany przez grupę
kierowaną przez Hansa Reisera. ReiserFS jest obecnie obsługiwany przez GNU/Linuksa i może być
w przyszłości włączony do innych systemów operacyjnych. ReiserFS to jeden z pierwszych systemów
plików z księgowaniem dla GNU/Linuksa.

Właściwości:

 bardzo efektywny sposób przechowywania wszystkich informacji o plikach i katalogach,


 zaawansowany system transakcji zapewniający spójność wszystkich danych zapisanych
w systemie,
 kompresja wielu małych plików oraz tzw. ogonów (końcówek plików o rozmiarze mniejszym od
wielkości bloku) w jednym bloku dyskowym pozwalająca w znacznym stopniu zminimalizować
fragmentację wewnętrzną,
 efektywna obsługa nawet dużych katalogów (stosowana jest w tym przypadku tablica haszująca,
dla której klucze są generowane na podstawie nazwy pliku - bardzo szybkie wyszukiwanie
pliku),
 zaawansowany system wtyczek (plugins) pozwalający niemal dowolnie modyfikować
zachowanie warstwy semantycznej systemu (w przeszłości także w pewnym stopniu fizycznej),

Reiser4 - wersja tworzona od podstaw, w porównaniu do reiserFS zawiera:

 zmianę architektury systemu na bardziej obiektowy,


 używanie repackera - specjalnego programu, który upakowuje ogony, jeszcze bardziej
oszczędzając miejsce,
 zwiększoną wydajność,
 lepsze zapewnienie bezpieczeństwa,
 możliwość dołączania własnych pluginów.

Reiser4 wprowadza innowację w zakresie bezpieczeństwa – dzieli plik na mniejsze części, z których
każda może mieć indywidualne uprawnienia i korzystać z różnych dodatków. Wadą Reiser4 jest wolne
usuwanie danych, jednak deklasuje on rywali jeśli chodzi o zapisywanie wielu strumieni danych w
jednym czasie. Nadaję się także idealnie do przechowywania dużej ilości małych plików, oszczędzając
przy tym dużo miejsca.

SWAP - jest to partycja wymiany, tworzy ona pamięć wirtualną, która jest rozszerzeniem pamięci
RAM. Dzięki użyciu "partycji wymiany" RAM zwiększa swoją wydajność a co za tym idzie wydajność
systemu również wzrasta. Zamiast partycji SWAP, system może utworzyć plik wymiany, jednak
wymiana danych jest o wiele wolniejsza i wydajność systemu drastycznie spada.

NFS - jest to usługa pozwalająca udostępniać zasoby dyskowe komputerom w sieci. Serwer udostępnia
katalogi klientom, którzy mogą je pod montować i działać jak na lokalnym systemie plików.
Montowanie: mount serwer.net:/usr/local /usr/local -t nfs.

JFS (Journaled Filesystem)


Strona 2 z 5
Właściwości:

 obsługa bardzo dużych plików i partycji (rzędu kilku tysięcy TB),


 dynamiczna alokacja i-węzłów,
 efektywne wyszukiwanie i-węzłów, wolnego miejsca na dysku oraz plików w katalogach,
 zaawansowany system kronikowania operacji dyskowych,
 wbudowany bezpośrednio w system plików, a nie dodany do niego później jak w przypadku
innych systemów plików,
 zastosowanie przedziałów bloków dyskowych (Extent) w celu zmniejszenia fragmentacji danych
i zwiększenia efektywności odwołań do nich,
 przechowywanie małych plików (linków symbolicznych) oraz katalogów bezpośrednio
w i-węzłach co znacznie zwiększa efektywność odwołań do nich,
 efektywna obsługa rozrzedzonych plików.

I-węzeł (inode) - jest to struktura danych opisująca pliki zapisane na dysku. I-węzeł zawiera informacje
o: typie pliku, właścicielu, grupie, długości pliku, adresie, liczbie dowiązań i kilka innych informacji.
Długość pliku to jego wielkość, ilość zajmowanego miejsca na dysku. Adres to numer sektora w którym
znajduje się plik. Adresem są sektory dysku, w których należy szukać segmentów pliku (zwykle te
sektory mają wielkość 512 bajtów). Liczba dowiązań jest to ilość skojarzonych "kopii" pliku ze zbiorem
danych.

XFS - 64-bitowy system plików zaprojektowany przez firmę Silicon Graphics Inc. z przeznaczeniem do
użycia go w systemie operacyjnym IRIX (wersja UNIX-a firmy SGI). Aktualnie jest dostępna również
jego implementacja dla systemu Linux rozwijana przez SGI jako projekt na licencji wolnego
oprogramowania.

Właściwości:

 pozwala na obsługę dużych dysków twardych,(Maksymalny rozmiar woluminu jest ograniczony


do 18 milionów TB.),
 rozmiar pojedynczego pliku może wynosić maksymalnie 2^63 bajtów czyli ponad 8 milionów
TB (dokładnie 8 388 608 TB).
 rozmiar jednostki alokacji może wynosić od 512 bajtów (wielkość fizycznej jednostki alokacji)
do 1 MB.

Filesystem Hierarchy Standard (FHS)

Prace nad standaryzacją hierarchii systemu katalogów i plików rozpoczęły się w 1993 r., w 1994 był
gotowy pierwszy standard dla Linuksa (Filesystem Standard — FSSTND), w 1996 r. rozszerzony na
ogół systemów uniksowych, nazwany FHS i prowadzony przez Free Standards Group.
Pozwala zarówno programom jak i użytkownikom przewidywać umiejscowienie instalowanych plików
i katalogów. Określa strukturę i przeznaczenie predefiniowanych katalogów w systemie plików, ich
minimalny zakres, wylicza odstępstwa od tych reguł i prowadzi zapis udokumentowanych przypadków
konfliktów związanych z FHS. Ułatwia pracę twórcom oprogramowania, autorom systemów
uniksowych oraz użytkownikom, pozwalając na budowanie przenośnych aplikacji i zapewnianie
poprawnego ich funkcjonowania.

Strona 3 z 5
Mimo szczegółowego opracowania standardu, wciąż znaczna większość dystrybucji Linuksa, nawet te
realizowane przez członków Free Standards Group, nie jest w pełni zgodna z FHS. W szczególności
niewykorzystane w szerszym zakresie pozostają takie ścieżki jak /media/ czy /srv/. Niektóre systemy,
jak np. GoboLinux, zrywają wręcz ze standardem FHS na rzecz innych podejść.

FHS definiuje następującą strukturę:

katalog opis

/bin/ Podstawowe binaria dla wszystkich użytkowników (np. cat, ls, cp)

/boot/ Pliki programu startowego (np. jądra, initrd)

/dev/ Podstawowe urządzenia (np. /dev/null)

/etc/ Globalne pliki konfiguracyjne właściwe danej maszynie

/etc/opt/ Pliki konfiguracyjne dla /opt/

/etc/X11/ (opcjonalne) Pliki konfiguracyjne dla X Window System, version 11

/etc/sgml/ (opcjonalne) Pliki konfiguracyjne dla SGML

/etc/xml/ (opcjonalne) Pliki konfiguracyjne dla XML

/home/ (opcjonalne) Katalogi domowe użytkowników

/lib/ Biblioteki niezbędne dla binariów zawartych w /bin/ i /sbin/

/mnt/ Tymczasowo zamontowane systemy plików

/media/ Punkty montowania urządzeń wyjmowalnych, np. CD-ROM-u (od FHS-2.3)

/opt/ Statyczne pakiety aplikacji

/proc/ Wirtualny system plików dokumentujący działanie jądra i procesów

/root/ (opcjonalne) Katalog domowy roota

/sbin/ Binaria systemowe (np. init, route, ifup)

/tmp/ Pliki tymczasowe

/srv/ Lokalne dane obsługiwane przez system

/usr/ Drugorzędna hierarchia dzielonych plików tylko do odczytu

/usr/bin/ Jak /bin/

/usr/include/ Standardowe pliki include

/usr/lib/ Jak /lib/

Strona 4 z 5
/usr/sbin/ Jak /sbin/

/usr/share/ Dane niezależne od architektury

/usr/src/ (opcjonalne) Kody źródłowe

/usr/X11R6/ (opcjonalne) X Window System, Version 11 Release 6.

/usr/local/ Trzeciorzędna hierarchia lokalnych danych instalowanych przez administratora systemu

/var/ Różne inne pliki, np. dzienniki, bazy danych, strony internetowe i tymczasowe pliki pocztowe

Bibliografia

Strona 5 z 5

You might also like