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