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

Linuxowe systemy plików

System plików to metoda przechowywania i zarządzania plikami oraz informacjami o ruch tak
by dostęp do plików 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. Bezpośrednie operowane na
danych w plikach zarezerwowane jest tytko dla systemu operacyjnego, aplikacje maja zabroniony
bezpośredni dostęp do nośnika danych.

Najpopularniejsze linuksowe systemy plików:


• Ext (EXTENDED FILE SYSTEM) - następca Minix File System dopuszczał pliki partycje do
rozmiaru 2 GB oraz długości nazw plików do 255 znaków. Miał jedną duża 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 negatywne na wydajność systemu.

• Ext2 - zastąpił ext w krótkim czasie stał się podstawowym systemem plików dla Linuksa. W
porównaniu do poprzednika miał wiele zalet.
•obsługiwał partycje o wielkości do 4 TB, pliki o wielkości do 2 GB
•rozpoznawał uszkodzenia systemu plików,
•automatyczne naprawiał uszkodzone sektory za pomocą programu e2fsck,
•automatycznie sprawdzał system po awarii oraz co określony czas
•posiadał wysoką wydajność dzięki przeciwdziałaniu fragmentacji,

• Ext3 - system oparty na ext2. Właściwości:


•jurnaling - mechanizm księgowania zwiększający bezpieczeństwo systemu,
•indeksowane katalogi - znaczne 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 - powstała po opracowaniu zmian dla ext3, które nie zostały zaakceptowane ze względu na
ryzyko obniżenia stabilności systemu plików. Wprowadzone zmiany:
•większe limity rozmiaru - obsługa woluminów do 1 ekstrabajta (EB) wielkość pojedynczego pliku
nie może przekraczać 16 terabitów (TB).
•obsługa extents - zmieniona została filozofia organizacji bloków w których przechowywany jest
plik na dysku, w systemie ext4 pliki przechowywane są w ciągłym zbiorze bloków nazywanym
extenet
•prealokacja - system plików z włączona obsługą extents może realizować prealokacje bloków
należących do pliku, aby z niej skorzystać program użytkownika musi użyć funkcji fallocate()
informującej system plików jaki rozmiar należy zablokować. Algorytm alokacji bloków uwzględnia
to,że powinny być one ciągle
•opóźniona alokacja - system plików pozwala na alokację opóźnioną (allocate-on-flush) pozwala na
zaalokowanie bloków dopiero w trakcie zapisu całego pliku na dysku
•kompatybilność wsteczna - ext4 jest wstecznie kompatybilny z ext3 oraz ext2, co pozwala na
zamontowanie ext3 oraz ext2 jako ext4, pozwala to nieznacznie poprawić wydajność ponieważ
niektóre z nowych funkcji ext4 jak na przykład nowy algorytm alokacji bloków mogą być również
użyte z ext3 oraz ext2
•zwiększona liczba obsługiwanych podfolderów - w systemie ext3 katalog może posiadać
maksymalne 31 998 podkatalogów. W ext4 limit ten został usunięty
• ReiserFS - zwany także Reiser3 to system plików zaprojektowany i zaimplementowany przez
grupę kierowaną przez Hansa Retsera. ReiserFS jest obecne 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
•zaawansowany system wtyczek (plusing) pozwalający niemal dowolnie modyfikować zachowanie
warstwy semantycznej systemu

• Btrfs (ang B-tree Flie System)-system plików dla systemu Linux udostępniony przez Oracle na
licencji GNU (Leneral Public License). Do najważniejszych cech systemu należą:
•kopiowanie przy zapisie
•możliwość zmiany rozmiaru partycji online
•dodawanie/usuwanie urządzeń w locie
•możliwość balansowania pomiędzy urządzeniami
•RAID na poziomie obiektów - możliwość stworzenia odpowiednika RAID1 oraz RAID0
•podwoluminy - jeden lub więcej oddzielnie montowanych systemów wewnątrz każdej partycji
fizycznej
•migawki - możliwość powrotu do poprzedniej wersji plików
•sumy kontrolne danych i metadanych (zapewniają integralność danych, obecnie jest
zaimplementowana obsługa CRC-32C, w planach są inne algorytmy)
•kompresja w locie (za pomocą bibliotek zlib lub lzo)
•defragmentacja online
•możliwość zaadresowania 16 ekstarbajtów (16384 petabajty)

• Reiser4 - system plików stworzony z myślą o systemie operacyjnym Linux. Jest to nowa wersja
systemu ReiserFS napisana od podstaw. System zaprojektowała i zaimplementowała grupa
programistów z firmy Namesys pod kierownictwem Hansa Reisera. Możliwości:
•wydajna obsługa małych plików
•zarządzanie dużymi i bardzo dużymi katalogami z setkami milionów plików
•elastyczna infrastruktura wtyczek
•modyfikacja systemu plików z wykorzystaniem operacji niepodzielnych;
•wydajne księgowanie poprzez wandering logs;
•dynamiczne optymalizowane rozmieszczenie danych na dysku (za pomocą funkcji allocate-on-
flush online repacker).
•włączanie metadanych do przestrzeni nazw systemu plików,

Systemy plików specjalnego przeznaczenia:


• sysfs - system montowany zazwyczaj w ścieżce /sys, zawiera informacje na temat różnych
subsystemów jądra, można w nim znaleźć między innymi informacje na temat załadowanych
modułów jądra, urządzeń oraz sterowników, pozwala na zmianę wielu parametrów
konfiguracyjnych,
• procfs - przechowuje informacje o działających aktualnie procesach oraz informacje na temat
jądra, pamięci i procesora, zazwyczaj montowany jest w ścieżce /proc,
• devtmpfs - system plików zawierający pliki specjalne urządzeń, montowany jest w ścieżce /dev i
zawiera pliki których typ oznaczany jest literą c oraz b — są to pliki reprezentujące urządzenia
znakowe (ang character device) oraz blokowe (ang block device);
• debugfs - zawiera interfejsy debugowe jądra i montowany jest w ścieżce /sys/kermel/debug z
debugfs korzystają różne subsystemy jądra w celu wyeksponowania do przestrzeni użytkownika
różnego rodzaju interfejsów używanych przez programistów podczas rozwijania jądra i pomocnych
w trakcie szukania błędów, w przeciwieństwie do poprzednio wymienionych, jest rzadko używany
podczas normalnej pracy systemu – służy przede wszystkim programistom pracującym nad
rozbudową jądra

Linux posiada jeden główny system plików noszący nazwę root filesystem lub w skróce rootfs
który znajduje się zawsze w tej samej lokalizacji — w ścieżce /. Podczas startu systemu jest pod
tą ścieżką montowana partycja systemowa to właśnie jej plik i katalogi stanowią główną
strukturę rootfs. Pozostałe dyski lub partycje mogą być zamontowane wewnątrz katalogów rootfs,
rozszerzając tym samym jego strukturę. Stanowią one zawsze poddrzewa drzewa głównego,
mającego swój korzeń w ścieżce /.

Montowanie dysku (partycji) to operacja polegająca na dołączeniu wskazanego systemu plików do


wybranego katalogu obecnego drzewa rootfs. Od chwili zamontowania zawartość takiego katalogu
reprezentuje pliki i katalogi znajdujące się w zamontowanym systemie plików.
W systemie Linux wszystko przechowywane jest w formie plików:
1. pliki zwykłe (tzw. plain files)
2. katalogi (tzw. directories),
3. pliki specjalne, w tym urządzenia (tzw. special and device files)

• / - katalog główny (root)


• /bin - zawiera pliki binarne (wykonywalne) podstawowych narzędzi systemowych, które są
niezbędne do pracy w trybie wieloużytkowniowym,
• /boot - zawiera pliki odpowiedzialne za uruchamianie systemu oraz jądro systemu,
• /cdrom - zazwyczaj jest to katalog dowiązany do katalogu media lub mnt (w zależności od
dystrybucji),
• /dev - zawiera pliki odpowiedzialne za obsługiwanie urządzenia jak np. cdrom, pliki w tym
katalogu odpowiadają za komunikacje system - urządzenia komputera.
• /etc - zawiera w sobie globalne pliki konfiguracyjne, ustawienia systemowe
• /home - jest miejscem w którym tworzy się katalog domowy użytkownika lub użytkowników
(/home/nazwa)użytkownika) a w nim dodatkowo podkatalogi jak dokumenty, muzyka, obrazy.
Możemy tworzyć swoje własne według potrzeb,
• /lib - zawiera w sobie skomplikowane biblioteki niezbędne do uruchamiania systemu, a także
moduły jądra systemu
• /lost+found - pliki odnalezione podczas wykonywania testów dysku
• /media - miejsce montowania (podłączania) nośników wymiennych jak pendrive, dyskietka, karty
pamięci czy napędy cdrom
• /mnt - miejsce montowania dysków- systemów plików (w niektórych dystrybucjach np Ubuntu
dyski montowane są w katalogu /media)
• /opt - katalog do instalowania dodatkowego oprogramowania nie wchodzącego w skład systemu
(wykorzystywany głównie dystrybucji SUSE). Obecnie w niektórych dystrybucjach służy on do
instalacji oprogramowania trzeciego jak np. oracle'a. Folder ten wychodzi z użycia na rzecz
/usr/local.
• /proc - wirtualny system plików tworzy się podczas uruchamiania systemu. Zawiera w sobie pliki
z informacjami o procesach.
• /root - katalog superużytkownika root, bez niego nie można używać np narzędzia "sudo" czy
dokonywać żadnych zmian w systemie wymagających hasła administratora np. aktualizacji
systemu.
• /sbin - zawiera w sobie pliki wykonywalne poleceń, dostępne tylko dla administratora (root),
• /srv - katalog dla serwerów
• /sys - interfejs zmiany parametrów jądra (od jądra w wersji 2.6).
• /tmp - pliki tymczasowe (również te zapisujące się na dysku przy przeglądaniu internetu),
• /usr - narzędzia i aplikacje (programy) zainstalowane na komputerze dostępne dla zwykłego
użytkownika oraz administratora
• /var- logi systemowe, pliki pocztowe, kolejki drukarki
W zależności od dystrybucji domyślna struktura katalogów maże się nieco różnić.

Prawa dostępu
Prawa dostępu ustalane są dla trzech rodzajów użytkowników
• użytkownik (owner) - właściciel pliku
• grupa (group) - właściciel pliku (nie należy mylić z grupą, do której należy właściciel)
• inni (others) - wszyscy pozostali użytkownicy. którzy mają prawo używać systemu

Istnieją trzy rodzaje praw dostępu:


• prawo do odczytu (read r)
• prawo do zapisu (write, w)
• prawo do uruchamiania pliku jako programu lub poszukiwania w katalogu plików lub katalogów o
znanych z góry nazwach (execute. x )
Możliwość modyfikacji praw dostępu do danego zasobu mają tylko właściciel oraz administrator.

Prawa dostępu wyświetlane są w postaci dziesięcioznakowego łańcucha, np - '-rwxr-xr-ŕ. Pierwszy


znak mówi o typie pliku (oznacza zwykły plik. d - katalog, c - plik znakowy, b — plik blokowy,
I - dowiązanie symboliczne, s – gniazdo, p - nazwany potok) Następne trzy znaki określają prawa
właściciela, środkowe - grupy-właściciela, a ostatnie trzy -innych użytkowników Obecność litery
(r, w lub x) oznacza, że prawo jest dostępne danej klasie użytkowników, znak minus oznacza brak
takiego prawa. Przykład:

Prawa dostępu podawać można równa w postaci numerycznej (kod ósemkowy) Np. prawa dostępu
'rwxrwxrwx' reprezentowane są (liczbą 777 natomiast 'rw-r--r-- to '644'
Do modyfikacji praw dostępu służy polecenie chmod
Prawa można nadać
• wszystkim - all, a
• właścicielowi - user, u
• grupie do której on należy - group, g
• użytkownikom - others, o
Prawa dostępu można zmieniać (podobnie jak przedstawiać) na dwa sposoby:
• sposób I
wpisać komendę chmod
podać kogo ma dotyczyć zmiana u-user, g - group. o - others
bez spacji należy wpisać „+” aby dodać prawo lub „-” aby odjąć prawo, można także użyć dla
zmiany ustawienia
podać. które prawo ma być dodane lub zabrane r – odczyt, w – zapis., x - wykonywanie
wpisać nazwę pliku (ze ścieżką dostępu, jeśli to konieczne)
• sposób II
podać komendę chmod
wpisać trzy cyfry, gdzie pierwsza z cytr jest sumą każdego z praw właściciela, długa
jest suma wartości praw dla grupy, a trzecia sumą dla wszystkich pozostałych (prawo do odczytu
ma wartość 4, prawo zapisu 2, ma prawo do wykonywania 1).
dodać spacje, a po niej nazwę pliku (ze ścieżką dostępu, jeśli to konieczne)

Przykłady użycia:
• dodanie właścicielowi prawo do odczytu – chmod u+r nazwa
• dodanie wszystkim prawa do odczytu – chmod +r nazwa
• odebranie pozostałym użytkownikom prawa do zapisu – chmod o-w nazwa
• dodanie użytkownikowi prawa do odczytu, a grupie prawa do zapisu chmod u+r,g+w nazwa
• ustawieni prawa dostępu na rw-r--r-- - chmod 644 nazwa

You might also like