System plików Linuxa

Transkrypt

System plików Linuxa
System plików
Linuxa
Tomasz Borzyszkowski
Diagram blokowy jądra systemu
Programy użytkowników
Poziom użytkownika
Poziom jądra
Biblioteki
Interfejs funkcji systemowych
Podsystem plików
Bufor
Znakowe
Podsystem
sterujący
procesami
Komunikacja
międzyprocesowa
Przydział CPU
Zarządz. pamięcią
Blokowe
Programy obsługi
Sterowanie sprzętem
Poziom jądra
Poziom sprzętu
2
Podsystem plików
Tablica deskryptorów
plików użytkownika
Własność procesu
użytkownika
Tablica
plików
Tablica
i-węzłów
Własność jądra
(struktury globalne)
 tablica deskryptorów jest przydzielana każdemu procesowi,
gdy proces otwiera/tworzy plik w tablicy tej jest pamiętana
odp. informacja
 tablica plików pamięta przesunięcie wzgl. pocz. pliku bajtu,
którego będzie dotyczyła następna operacja czytania/pisania
oraz prawa dostępu procesu, który plik otworzył
3
i-węzeł zawiera
identyfikator właściciela (UID) i grupy (GID) pliku
typ pliku (zwykły, katalog, specjalny znakowy, specjalny
blokowy, łącze lub 0 jeśli i-węzeł nie jest używany
 prawa dostępu do pliku
 czasy ostatniej modyfikacji i dostępu do pliku oraz czas
ostatniej modyfikacji i-węzła
 liczba dowiązań do pliku = liczba nazw jaką posiada plik fizyczny
w drzewie katalogów
 rozmiar pliku
 adresy bloków dyskowych przechowujących zawartość pliku


Do przeglądania zawartości i-węzła służy polecenie stat, natomiast
użyteczne podczas sprawdzania właściwości plików mogą się okazać
ls oraz file (więcej informacji w standardowych informatorach
Linuxowych np.: man lub info).
4
Typy plików
 pliki zwykłe zawierają dane, mogą być zarówno binarne jak i
tekstowe
 pliki specjalne umożliwiają realizację operacji wejścia/wyjścia
urządzeń, znakowych i blokowych; są w katalogu /dev
 katalogi zawierają listę plików
 gniazda (sockets) są to pliki specjalne wykorzystywane do
komunikacji między procesami np. proces lpd odbiera zlecenia
wydruku od innych procesów za pomocą gniazda /dev/printer
 potoki nazwane kolejny po gniazdach mechanizm komunikacji
międzyprocesowej; pochodzą z Systemu V; są przechowywane w
katalogu /dev
 dowiązania dzielimy je na twarde i symboliczne; pierwsze
umożliwiają tworzenie wielu nazw dla tego samego i-węzła, drugie
są plikami wskazującymi na nazwę innego pliku
5
Typy plików cd.
Dowiązania twarde
Tworzy je polecenie ln plik hplik spowoduje utworzenie nowego
pliku o nazwie hplik z tym samym numerem i-węzła co plik.
Ponieważ i-węzły są niepowtarzalne w ramach danego urządzenia,
nie można tworzyć dowiązań twardych w obrębie kilku partycji.
Dowiązania symboliczne
Tworzy je polecenie ln -s plik splik powoduje utworzenie
nowego pliku o nazwie splik wskazującego na plik plik.
Pytania
1. Jak można się dowiedzieć jaki jest typ pliku? W szczególności czy
plik jest plikiem zwykłym, dowiązaniem twardym czy
symbolicznym?
2. Wykonujemy komendy less hplik i less splik.
Jak to się dzieje, że wyświetlane są te same dane?
3. Co się stanie, gdy skasujemy plik plik, a następnie utworzymy go
ponownie? Jaka będzie zawartość plików hplik i splik?
6
Typy plików: rozpoznawanie
Wyświetlając zawartość katalogu za pomocą polecenia ls -l, typ
pliku rozpoznajemy po pierwszym znaku poprzedzającym prawa
dostępu:
- plik zwykły (dowiązanie twarde)
l dowiązanie symboliczne
c plik specjalny znakowy
p potok nazwany
d katalog
b plik specjalny blokowy
s gniazdo (socket)
Godne uwagi są również inne opcje polecenia ls takie jak -F czy -i
(wypróbuj koniecznie jak działają!)
Oto kilka przykładowych wyników wykonania komendy ls -liF
247620
363065
68668
180501
181701
182705
180305
-rw-r--r-drwxr-x--x
lrwxrwxrwx
brw-rw---crw-rw-rwsrw------prw-------
1
3
1
1
1
1
1
tomek tomek
tomek tomek
tomek tomek
root
disk
root
root
root
root
root
root
2709
4096
4
3,1
5,0
0
0
Jan 22 1998 wsb.inp
Feb 25 20:42 Public_html/
Aug 9 23:08 splik -> plik
May 5 1998 /dev/hda1
May 5 1998 /dev/tty
Aug 9 22:30 /dev/printer=
Aug 9 13:29 /dev/initctl
7
Prawa dostępu: wstęp
Standardowe
Systemy UNIX i Linux udostępniają możliwość nadania każdemu
plikowi praw do czytania, pisania i wykonywania (rwx) dla
właściciela pliku (u), grupy (g) i pozostałych użytkowników (o).
4
2
1
4
2
1
r w x r
w
x r
user
chmod u+r plik
chmod g-x plik
group
4
2
1
w x
other
chmod 754 plik
chmod 640 plik
8
Prawa dostępu: pliki
Rozszerzone
Część systemów UNIXowych, także Linux, udostępnia tzw.
rozszerzone prawa dostępu. Są to Bit lepkości (ang. Sticky bit) o
kodzie t oraz prawo ustaw UID/GID o kodzie s. Oba, podobnie jak
prawa standardowe ustawia się poleceniem chmod.
Dla plików
t: Powoduje utrzymanie w pamięci kodu programu nawet, jeżeli
proces, który z nich korzystał, już się zakończył. Może to
zmniejszyć obciążenie sytemu.
s: Ustawione dla plików binarnych powoduje, że procesy, które je
wykonują mają takie same prawa jak właściciel wykonywanego
pliku.
9
Prawa dostępu: katalogi
Sticky bit
Standardowo użytkownik może usuwać pliki ze wszystkich katalogów,
do których posiada prawo do pisania. Ustawienie bitu lepkości dla
katalogu powoduje, że pliki w nim może usuwać tylko właściciel
plików lub użytkownik posiadający prawo pisania dla tych plików.
Bit lepkości ustawia się dla katalogów, do których każdy powinien
mieć prawo pisania ale nie każdy powinien mieć prawo usuwania
plików.
Prawo SGID
Prawo to nadane katalogom posiada również specjalne znaczenie.
Oznacza ono, że pliki tworzone w tym katalogu będą miały
nadawaną taką grupę jaka jest grupa tego katalogu, a nie grupa
główna użytkownika, który je tworzy.
10
Struktura katalogów
Katalog główny. W jego obrębie zgromadzone są wszystkie pliki
i katalogi, niezależnie od ich fizycznej lokalizacji
/bin i /usr/bin Pierwszy zawiera programy będące poleceniami
systemowymi, drugi programy użytkowe instalowane dodatkowo
/boot Zawiera jądro Linuxa, vmlinuz i inne pliki niezbędne podczas
bootowania systemu
/dev Zawiera pliki specjalne umożliwiające dostęp do urządzeń
/
/etc, /sbin i /usr/sbin Zawierają pliki konfiguracyjne systemu;
/etc zawiera skrypty umożliwiające start i konfigurację
systemu, natomiast /sbin i /usr/sbin programy
umożliwiające wykonywanie większości czynności
administracyjnych dotyczących systemu i oprogramowania
/home przeznaczony na katalogi domowe użytkowników systemu.
Nazwa tego katalogu nie jest z góry narzucona i może być
dowolnie zmieniana przez administratora systemu. Spotyka
się /u /usr lub /users
11
Struktura katalogów cd.
/lost+found Zawiera pliki zagubione. Niepoprawne wyłączenie
systemu lub dysku może prowadzić do sytuacji, w której pliki i
ich i-węzły są przechowywane na dysku, natomiast nie są
wymienione w żadnym drzewie plików. Za wyszukiwanie
zagubionych plików odpowiada polecenie fsck
/mnt Tymczasowy pusty katalog montowania. Przeznaczony do
chwilowego montowania systemów plików z partycji dyskowych
/proc Katalog procesów. Pliki przechowywane w tym katalogu
odpowiadają aktualnie działającym procesom
/tmp Katalog tymczasowy dostępny dla wszystkich użytkowników.
Administrator okresowo czyści ten katalog. Procedury startowe
uruchamiają skrypt czyszczący ten katalog
/var Katalog kolejkowania i innych usług (varing data).
/var/spool służy do przechowywania danych dotyczących
kolejkowania. Wymagają tego m.in. uucp, lpd, poczta elektr.,
12
cron, ...
Katalog /usr
Katalog ten zawiera podkatalogi przeznaczone do przechowywania
lokalnie tworzonych programów, poleceń, bibliotek dzielonych ...
/usr/bin Zawiera polecenia systemowe i skrypty uruchamiane
przez wszystkich użytkowników.
/usr/include Zawiera standardowe pliki nagłówkowe języka C.
/usr/lib Zawiera publicznie dostępne pliki biblioteczne.
/usr/local Zawiera pliki lokalne. Katalog /usr/local/bin
jest zarezerwowany na aplikacje tworzone i rozwijane przez
użytkowników, także ściągnięte przez nich z Internetu.
/usr/man, /usr/info i /usr/doc Zawierają pliki wbudowanego
informatora systemowego man, info i pliki poscritowe,
odpowiednio.
/usr/share Zawiera dane dzielone tj. dane statyczne wymagane
przez różne programy. Dane te nie muszą być kopiowane
lokalnie na wszystkie komputery, ale są dostępne w jednym
miejscu w sieci.
13