background image

 

 

Linux 

Linux 

Budowa i działanie systemu

Budowa i działanie systemu

background image

 

 

System operacyjny Unix  -  

System operacyjny Unix  -  

Model 

Model 

warstwowy systemu

warstwowy systemu

W modelu tym dzieli się system na 4 warstwy: 

W modelu tym dzieli się system na 4 warstwy: 

jądro, biblioteki, powłoka i programy

jądro, biblioteki, powłoka i programy

.

.

Jądro/Kernel

Jądro/Kernel

• 

• 

zawiera m.in. program szeregujący oraz 

zawiera m.in. program szeregujący oraz 

sterowniki urządzeń

sterowniki urządzeń

• 

• 

zarządza pamięcią operacyjną

zarządza pamięcią operacyjną

• 

• 

w nowszych systemach sterowniki rzadziej 

w nowszych systemach sterowniki rzadziej 

występujących urządzeń dostępne są w postaci 

występujących urządzeń dostępne są w postaci 

zewnętrznych modułów, które można wybiórczo 

zewnętrznych modułów, które można wybiórczo 

załadować do jądra - dzięki temu jego rozmiary są 

załadować do jądra - dzięki temu jego rozmiary są 

mniejsze

mniejsze

• 

• 

jądro ma bezpośredni dostęp do wszystkich 

jądro ma bezpośredni dostęp do wszystkich 

zasobów komputera

zasobów komputera

background image

 

 

Biblioteki

Biblioteki

• 

• 

zawierają zestawy podprogramów (zwykle 

zawierają zestawy podprogramów (zwykle 

napisanych w języku C), wykonujących różne, 

napisanych w języku C), wykonujących różne, 

często stosowane, operacje (mogą to być np. 

często stosowane, operacje (mogą to być np. 

zestawy funkcji matematycznych, procedury, 

zestawy funkcji matematycznych, procedury, 

umożliwiające obsługą monitora czy też operacje 

umożliwiające obsługą monitora czy też operacje 

na dysku)

na dysku)

• 

• 

biblioteki te są zwykle dołączane do programów 

biblioteki te są zwykle dołączane do programów 

na etapie ich konsolidacji (program, np. w języku C, 

na etapie ich konsolidacji (program, np. w języku C, 

przed uruchomieniem zostaje poddany kompilacji, a 

przed uruchomieniem zostaje poddany kompilacji, a 

następnie konsolidacji)

następnie konsolidacji)

• 

• 

taka 

taka 

statyczna 

statyczna 

konsolidacja powoduje, że dana 

konsolidacja powoduje, że dana 

biblioteka jest dołączana do każdego z 

biblioteka jest dołączana do każdego z 

korzystających z niej programów - nawet wtedy, 

korzystających z niej programów - nawet wtedy, 

gdy uruchamiane są one jednocześnie w systemie; 

gdy uruchamiane są one jednocześnie w systemie; 

powoduje to znaczną zajętość pamięci operacyjnej

powoduje to znaczną zajętość pamięci operacyjnej

background image

 

 

Powłoka

Powłoka

• 

• 

nazwa pochodzi stąd, że warstwa ta oddziela 

nazwa pochodzi stąd, że warstwa ta oddziela 

wewnętrzna część systemu operacyjnego od 

wewnętrzna część systemu operacyjnego od 

użytkownika

użytkownika

• 

• 

powłoka zawiera interpreter poleceń, który 

powłoka zawiera interpreter poleceń, który 

umożliwia komunikację z użytkownikiem

umożliwia komunikację z użytkownikiem

(jest to odpowiednik programu command.com z 

(jest to odpowiednik programu command.com z 

DOS’a)

DOS’a)

• 

• 

interpreter poleceń uruchamia polecenia systemu 

interpreter poleceń uruchamia polecenia systemu 

operacyjnego oraz programy użytkowe

operacyjnego oraz programy użytkowe

background image

 

 

Programy

Programy

• 

• 

procesy uruchamiane przez użytkownika

procesy uruchamiane przez użytkownika

• 

• 

zarządzane przez program szeregujący jądra

zarządzane przez program szeregujący jądra

• 

• 

mogą być przerwane w dowolnym momencie, np. 

mogą być przerwane w dowolnym momencie, np. 

komendą     - kill

komendą     - kill

• 

• 

każdy ma przydzielony odpowiedni obszar 

każdy ma przydzielony odpowiedni obszar 

pamięci i priorytet

pamięci i priorytet

• 

• 

jeśli proces użytkownika próbuje dostać sie do 

jeśli proces użytkownika próbuje dostać sie do 

cudzego obszaru pamięci, zostaje przerwany, a 

cudzego obszaru pamięci, zostaje przerwany, a 

system wyświetla komunikat: segmentation fault

system wyświetla komunikat: segmentation fault

• 

• 

bieżąca zawartość pamięci procesu może zostać 

bieżąca zawartość pamięci procesu może zostać 

zapisana na dysku w pliku o nazwie core (nazwa od 

zapisana na dysku w pliku o nazwie core (nazwa od 

słów 

słów 

core dum

core dum

p, czyli zrzut pamięci)

p, czyli zrzut pamięci)

• 

• 

analiza zawartości tego pliku może pomóc 

analiza zawartości tego pliku może pomóc 

programiście w wykryciu przyczyny wystąpienia 

programiście w wykryciu przyczyny wystąpienia 

błędu

błędu

background image

 

 

Schemat 

Schemat 

blokowy

blokowy

background image

 

 

Struktura katalogów

Struktura katalogów

Rozbudowana struktura katalogów Linuxa jest 
pogrupowana w logiczne części. Każdy katalog zawiera 
pliki powiązane ze sobą logicznie.

Struktura katalogu głównego jest następująca:

/bin

 - wykonywalne pliki binarne, niezbędne do pracy 

zarówno w trybie wieloużytkownikowym, jak i w 
awaryjnym trybie jednego użytkownika,

/boot

 - jądro systemu oraz pliki niezbędne przy jego 

uruchomieniu,

/dev

 - pliki urządzeń, stanowiące interfejs do sterowników 

w jądrze,

/etc

 - konfiguracja systemu

/home

 - katalogi domowe użytkowników

background image

 

 

/lib

 - biblioteki systemowe

/lost+found

 - pliki odnalezione podczas wykonywania 

testów dysku

/mnt

 - katalog do którego zwykle mountowane są 

tymczasowe systemy plików takie jak dyskietka czy CD-
ROM

/proc

 - pseudosystem plików, odzwierciedlający stan 

procesów w systemie,

/root

 - katalog domowy użytkownika root,

/sbin

 - wykonywalne pliki binarne, niezbędne do pracy 

systemu zarówno w trybie wieloużytkownikowym, jak 
również w trybie jednego użytkownika. Zawiera polecenia 
administracyjne,

/tmp

 - pliki tymczasowe,

/usr

 - pliki użytkowników, dodatki doinstalowywane do 

systemu itp.

/var

 - pliki często zmieniane, np logi czy poczta

background image

 

 

/usr/X11R6 - pliki związane z systemem XWindow,

/usr/bin - wykonywalne polecenia systemu Linux potrzebne do pracy w trybie wieloużytkownikowym,

/usr/dict - słownikowa lista wyrazów angielskich, używana m.in. przy sprawdzaniu jakości hasła 
użytkownika,

/usr/doc - dodatkowa dokumentacja,

/usr/include - pliki nagłówkowe,

/usr/info - dokumentacja dla polecenia info,

/usr/lib - biblioteki systemowe,

/usr/local - struktura katalogów przeznaczona dla potrzeb elementów instalowanych przez 
administratora systemu,

/usr/man - pliki pomocy kontekstowej man,

/usr/sbin - wykonywalne polecenia administracyjne systemu Linux potrzebne do pracy w trybie 
wieloużytkownikowym,

/usr/share - pliki wspólne, generalnie katalog zawiera dodatkowe informacje na temat niektórych 
poleceń,

/usr/src - źródła do systemu i jądra,

/usr/tmp - pliki tymczasowe.

/var/catman - preformatowane strony pomocy kontekstowej man,

/var/db - bazy danych,

/var/lock - semafory używane do komunikacji międzyprocesowej,

/var/log - logi systemowe,

/var/named - pliki serwera nazw (DNS),

/var/nis - pliki systemu NIS,

/var/run - pliki z danymi dotyczącymi numerów poszczególnych procesów w systemie,

/var/spool - kolejki poczty, wydruków itp.

/var/tmp - pliki tymczasowe.

background image

 

 

System plików i prawa dostępu

System plików i prawa dostępu

ext2 (ang. Second Extended File System) – drugi rozszerzony system 
plików dla systemu Linux. Ext2 zastąpił rozszerzony system plików 
ext. Rozpoznanie uszkodzenia systemu plików (np. po załamaniu się 
systemu) następuje przy starcie systemu, co pozwala na 
automatyczne naprawianie szkód za pomocą oddzielnego programu 
(e2fsck), uszkodzone pliki zapisywane są w katalogu lost+found.

System plików ext2 zawiera mechanizm zapobiegający znacznej 
fragmentacji danych, co zdarzało się podczas używania poprzedniej 
jego wersji.

Ext2 przy domyślnym rozmiarze bloku (4 KB) obsługuje partycje o 
wielkości do 16384 GB i pojedyncze pliki o wielkości do 2048 GB. 
Nazwy plików mogą mieć do 255 znaków długości.

Ważnym elementem systemu ext2 są wolne pola w strukturach 
danych – to dzięki nim między innymi, możliwa jest konwersja „w 
locie” do systemu ext3 – wykorzystuje on po prostu część z nich do 
przechowywania swoich danych.

background image

 

 

Budowa systemu plików:

 

blok startowy (boot block)

 zawiera informacje potrzebne 

Linuksowi do startu (uzyskania dostępu do systemu plików)

superblok (superblock)

 zawiera informacje o strukturze systemu 

plików

lista i-węzłów (inode list)

 to lista adresów do tych bloków danych 

na których są zapisane rzeczywiste dane pliku. Wyjaśnienie: przed 
zapisaniem na dysku twardym plik jest dzielony na części określone 
przez rozmiar bloku danych. Po zdefiniowaniu adresów takich bloków 
w i-węzłach dane można zapisać (lub potem odczytać).

bloki danych (oraz bloki katalogów czyli data blocks)

 to części 

o stałym rozmiarze przestrzeni dyskowej przygotowane do 
wprowadzania i odczytu danych plików (katalogów). Jeżeli plik jest 
większy od jednego bloku danych, to jest dzielony i zapisany na 
powierzchni kilku bloków danych - adresy do takich bloków są 
notowane w i-węzłach. Natomiast, gdy wielkość pliku jest mniejsza niż 
blok danych, to wolna przestrzeń bloku danych marnuje się. 

background image

 

 

chown – zmiana właściciela     # chown root 
/var/run/httpd.pid

ls -l     

-rw-rw-r-- 1 artur artur 0 Mar 4 13:01 test

chmod <prawa> <nazwa pliku>

u-user  a-all   g-group   o-other          r-read   w-write   x-execute

chmod a+x test

chmod 706 test

0 to - brak praw dostępu

1 to -x wykonywanie

2 to -w- zapis

3 to -wx zapis i wykonywanie

4 to r- odczyt

5 to r-x odczyt i wykonywanie

6 to rw- odczyt i zapis

7 to rwx odczyt, zapis, wykonywanie

background image

 

 

 

Dowiązania w systemie Linux

Dowiązania w systemie Linux

Dowiązania często są przyrównywane do skrótów w 
systemie Windows. W rzeczywistości posiadają jednak 
znacznie większe możliwości, np.: tworzenie twardych, 
symbolicznych dowiązań, dowiązań do urządzeń, innych 
systemów etc.

Jest jednak jedno "ale" - polecenie "ln" może być 
nieobsługiwane przez niektóre systemy, na innych może 
być ograniczone...

Linki twarde

 posiadają te same rozmiary, te same 

numery i-węzłów. Są to po prostu inne nazwy tego 
samego pliku(obszaru dysku). Linki twarde są domyślnym 
typem dowiązań.

Dowiązania symboliczne

 pozwalają na stworzenie 

dowiązań do pliku, który jest w innym systemie, na innym 
urządzeniu. 

Jako parametr przy wywołaniu "ln" podajemy "-s" np.:

$ ln  -s  /mnt/hda1/wazne  wazne_c

background image

 

 

FSCK

FSCK

fsck (skrót od 

f

ile 

s

ystem 

c

hec

k

 lub file system 

consistency check) - Uniksowy program do sprawdzania 
integralności systemu plików.

Zwykle fsck jest uruchamiany podczas bootowania 
systemu, aby sprawdzić, czy system plików jest w dobrym 
stanie. Jeżeli nie jest, na przykład w wyniku spadku 
zasilania, fsck próbuje go naprawić. Na systemach plików, 
które nie obsługują księgowania, jak na przykład ext2, 
może to trwać nawet przez wiele godzin, w zależności od 
pojemności partycji. fsck może być też uruchomiony 
ręcznie przez administratora systemu, jeżeli ten uzna, że 
to konieczne. Odpowiednikiem fsck dla Windows jest 
Scandisk.

background image

 

 

root (z ang., dosłownie korzeń)

 to tradycyjna nazwa uniksowego 

konta, które ma pełną kontrolę nad systemem. Z założenia konto root 
nie powinno być używane do pracy, do której wystarczyłoby zwykłe 
konto z ograniczonymi uprawnieniami. Istotną sprawą jest 
zabezpieczenie tego konta silnym hasłem i zabezpieczenie przed 
nieautoryzowanym dostępem.

Dobrze jest ograniczyć możliwość logowania na konto root i używać 
poleceń su albo sudo.

logowanie przez ssh blokujemy w Linuksie z mieniając w zbiorze 

/etc/ssh/sshd_config

 parametr PermitRootLogin z "yes" na "no".

Konto root uprawnia do wykonywania takich operacji jak zmiana 
właściciela pliku czy otwarcie portu TCP/UDP z numerem poniżej 
1024. W innych systemach operacyjnych używa się też nazw takich 
jak toor, superuser, supervisor, Administrator, czy operator. Nazwa 
root funkcjonuje, jako określenie administratora systemu, zarówno w 
systemach UNIX, jak i pokrewnych (FreeBSD, GNU/Linux).

Użytkownicy systemu

Użytkownicy systemu

background image

 

 

UID (ang. User IDentifier)

 

- jest to identyfikator użytkownika w systemie Unix.

Reguły 

• root ma UID 0,
• użytkownik nobody ma ostatni UID (zazwyczaj 
32767),

• UID-y od 1 do 100 są zarezerwowane dla 
systemu.

background image

 

 

 Atrybuty użytkownika

System przechowuje w pliku 

/etc/passwd

 następujące 

atrybuty każdego zarejestrowanego użytkownika:

nazwa

- nazwa jednoznacznie identyfikująca konto użytkownika,

identyfikator użytkownika UID

- numer jednoznacznie identyfikujący użytkownika w systemie,

identyfikator grupy GID

- numer grupy, do której należy 

użytkownik,

katalog domowy

- prywatny katalog użytkownika, w którym może 

bezpiecznie przechowywać swoje pliki, zabezpieczone przed 
dostępem innych użytkowników,

powłoka logowania

- nazwa interpretera poleceń, który jest 

uruchamianypo zalogowaniu użytkownika.

background image

 

 

Powłoki - shell

Powłoki - shell

Wyświetlenie listy powłok:

# cat /etc/shells

/bin/bash

/bin/csh

/bin/sh

/bin/tcsh

uruchamiamy np.:

csh

wychodzimy:

exit

background image

 

 

Drobne obliczenia 

Drobne obliczenia 

z linii komend

z linii komend

echo $[2*3-10]

-4

a=12; b=3

c=a+b

echo $c

a+b

let c=a+b

echo $c

15

Definiowanie 

Definiowanie 

własnych zmiennych

własnych zmiennych

dmc=/home/user1/doc
cd $dmc

background image

 

 

Aliasy i skrypty

Aliasy i skrypty

Wyświetlenie dostępnych aliasów:

# alias 
alias cd..=‘cd ..’
alias l=‘ls -al’
...

Definiowanie aliasów:

# alias md=‘mkdir’
# alias l=‘ls -l’
# alias um=‘umount –f /mnt/floppy’
# unalias l

Dodawanie aliasów do pliku bashrc.

background image

 

 

TREŚĆ SKRYPTU

#!/bin/sh

TEKST="Hello world!"

LICZBA=12

SUMA=$[$LICZBA+111]

echo Tekst: $TEKST

echo Liczba: $LICZBA

echo Suma: $SUMA

WYNIK SKRYPTU

Tekst: Hello world!

Liczba: 12

Suma: 123

background image

 

 

Proces i jego strumienie

Proces i jego strumienie

PROCES

WE
dane

WY
dane

Błędy

deskryptor 0 – stdin   – wejście standardowe
deskryptor 1 – stdout – wyjście standardowe
deskryptor 2 – stderr  – wyjście standardowe 
błędów

background image

 

 

Operatory przekierowania

> plik

  - wyjście std. jest kierowane do pliku a nie na ekran

>> plik

  - identyczne jak > ale dopisuje do pliku

< plik

  - jako wejście standartowe (zamiast klawiatury) 

            zostanie otwarty plik

2 > plik

 – przekierowanie stderr do pliku

1 > &2

 – przekierowuje 1 w to samo miejsce co 2

Przykłady

ls -al  >> lista.txt
cat > plik
ls -l /nie_istniejacy_katalog 2> /tmp/cos

background image

 

 

Filtrowanie - grep

Filtrowanie - grep

ls -l | grep student

spowoduje wyświetlenie zawartości tylko tych pozycji katalogu, gdzie 
znajduje się słowo "student" (czyli np. będących własnością studenta, 
posiadających słowo "student" w nazwie itp).

cat zrodlo.c | grep include

Powyższe polecenie wyświetli wszystkie linie pliku zrodlo.c, zawierające ciąg 
"include"

Podstawowe elementy wyrażeń regularnych:

. -dowolny pojedynczy znak;

$ -dopasuj poprzedzające wyrażenie do końca wiersza;

^ -dopasuj występujące po operatorze wyrażenie do początku wiersza;

* -dopasuj zero lub więcej wyrażeń znaku poprzedzający operator;

\ -oznacza ominięcie specjalnego znaczenia znaku np:"\*";

[ ] -dopasuj dowolny znak w nawiasie;

[-] -dopasuj dowolny znak z przedziału [0-9];

[^] -dopasuj znak, który nie znajduje sie w nawiasie;

Przykłady:

grep 'Ala' plik -znajduje wyraz 'Ala' w pliku;

grep 'A[lg]a' plik -znajduje wyraz 'Ala' lub 'Aga';

grep 'A.a' plik -znajduje wyrazy takie jak 'Ala' 'Aga' 
itp;

grep '^Ala' plik - znajduje wyraz 'Ala' na początku 
wersu;

grep 'Go*gle' plik - znajduje wyraz 'Gogle', 'Google' 
itd;

grep '[0-9]' - znajduje dowolny ciąg znaków z zakresu 
od 0 do 9;

Rodzaje wieloznaczników 

W większości przypadków używane są dwa 
wieloznaczniki:

wieloznacznik lokalny – zastępujący pojedyncze 
wystąpienie dowolnego znaku (do jego oznaczania 
najczęściej stosowany jest znak zapytania (?)),

wieloznacznik ogólny – zastępujący dowolną liczbę 
dowolnych znaków (do jego oznaczania najczęściej 
stosowany jest znak gwiazdki (*)).

background image

 

 

Komendy shela

Komendy shela

background image

 

 

użytkownicy                            /etc/passwd 

zakodowane hasła                  /etc/shadow

dyski / partycje                        /etc/fstab

zamontowane sys. plików       /etc/mtab

allow (dozwolone)                   /etc/hosts.allow

komputery niedopuszczone    /etc/hosts.deny

powłoki                                    /etc/shells

Pliki konfiguracyjne /etc

Pliki konfiguracyjne /etc

background image

 

 

Demony

Demony

Daemon – proces w systemach UNIX 

działający w tle bez konieczności 

interakcji z użytkownikiem.

Zwykle nazwa takiego procesu odpowiada pełnionej 
funkcji z dołączoną na końcu literą d, np. 

automountd, 

ftpd, httpd, inetd, lockd, powerd, rlogind, sshd, statd, 
syslogd, talkd, telnetd, vold, xntpd,

W systemach MS-DOS/PC-DOS podobną funkcjonalność 
oferują programy rezydentne (TSR – Terminate and Stay 
Resident), natomiast w Microsoft Windows analogiem jest 
usługa (service).

background image

 

 

Instalacja pakietów

Instalacja pakietów

RPM (RPM Package Manager, dawniej Red Hat 
Package Manager)

 to program służący do instalacji i 

zarządzania pakietami zawierającymi oprogramowanie, 
oraz nazwa tych pakietów (ponieważ mają one 
rozszerzenie .rpm). Pakiety RPM zawierają 
skompresowane (we wczesnych wersjach gzipem, w 
nowszych bzipem2) archiwum cpio zawierające 
oprogramowanie. Zawierają także (w specjalnym pliku 
.spec) informacje na temat zawartości, m.in. tzw. 

zależności (ang. dependencies)

 - czyli spis programów lub 

pakietów, które są wymagane do zainstalowania i 
poprawnej pracy pakietu (działa to także w druga stronę - 
pakiety później zainstalowane wymagające danego 
pakietu, uniemożliwiają jego odinstalowanie).

Program ten powstał na potrzeby dystrybucji Red Hat 
Linux, aktualnie jest używany również w innych 
dystrybucjach (np. Fedora Core, SUSE, Mandrake, PLD).

background image

 

 

Nazwy pakietów 

RPM wprowadził ujednolicone nazwy plików. Przykładowy pakiet z 
GNU Gadu posiada nazwę 

gg2-2.2.7-1.athlon.rpm

. Nazwa ta składa 

się z czterech członów w formacie plik-wersja-
wersja_pakietu.architektura.rpm:

gg2

 - nazwa programu,

2.2.7

 - wersja programu,

1

 - wersja pakietu (może istnieć kilka wersji pakietu dla jednej wersji 

programu),

athlon

 - architektura (typ procesora) dla której pakiet jest 

przeznaczony (np. i386, Athlon, Alpha, PPC).

rpm -q nazwa                       - czy taki pakiet jest zainstalowany?

rpm -i --test  nazwa.rpm       - testuj

rpm -ivh nazwa.rpm              - instaluj

i – instaluje    v – komunikat   h – zaawansowanie

rpm -Uvh  nazwa.rpm           - aktualizacja

rpm -e --test  nazwa             - deinstaluj

background image

 

 

DEB:

dpkg -i nazwa_pakietu.deb - instalacja

apt-get remove nazwa_pakietu.deb - usunięcie

dpkg --info nazwa_pakietu.deb - wyświetla informacje o pakiecie

dpkg --reconfigure nazwa_pakietu.deb - ponowna konfiguracja 
pakietu

dpkg --list nazwa_pakietu.deb - wyświatlenie listy pakietów o 
podanym wzorcu nazwy

dpkg --unpack nazwa_pakietu - rozpakowanie pakietu

TGZ:

installpkg nazwa_pakietu.tgz - instalacja

removepkg nazwa_pakietu.tgz - usunięcie

DEB - Pakiety występujące w Debianie 

TGZ - archiwa tara; pakiety obecne w Slackware

background image

 

 

Instalacja programów ze źródeł

Rozpakowanie

tar -zxvf gettheport.tar.gz
gunzip plik.tar.gz
bunzip2 plik.tar.bz2

     configure 

sprawdza, czy w systemie zainstalowane są 

wymagane biblioteki lub programy, co ustrzeże Cię przed 
błędami kompilacji. 

makefile 

przeprowadza cały proces 

kompilacji programu. Dzieli się przeważnie na trzy części:

make - sekcja kompilująca źródła
install - sekcja instalująca skompilowane pliki
uninstall - sekcja odinstalowująca pliki zainstalowane

1. Configure
2. Make
3. Make install

background image

 

 

Linux to Kernel

 (jądro systemu) plus ZBIÓR oprogramowania. 

Nie ma jednego systemu Linux, a tylko Kernel jest 
ustandaryzowany. W przeciwieństwie do znanego powszechnie 
Windows , Linux działa bez okienek. Wynika to zreszta z historii 
systemu, który pierwotnie był dostępny tylko w wersji tekstowej i 
wymagał znajomości komend unixowych. Okienka (np. KDE, 
Gnome) są są więc dodatkowym oprogramowaniem, tzw. 
"nakładką" na powłokę tekstową (shella).

 

Kolejność czynności podczas 

Kolejność czynności podczas 

startu systemu:

startu systemu:

1. Pierwszy uruchamiany jest program LILO (ew. GRUB) 

Dane tam zawarte pozwalają procesorowi na 
ustawienie ekranu, uruchomienie właściwego 
Kernela itp.

background image

 

 

2. Zostaje odpalony pierwszy proces Kernela, czyli init. 

Zawsze ma on identyfikator procesu PID o wartości 1. 
Większość dystrybucji Linuksa używa init w oparciu o 
parametry zapisane w pliku 

/etc/inittab

. Proces init 

odpala proces getty

3. Proces init montuje systemy plików (np. dysk twardy) 

zgodnie z danymi w pliku /etc/fstab, a to co 
zamontował odnotowuje w pliku 

/etc/mtab

4. Następnie są czytane skrypty startowe w katalogach 

/etc/rc.d/rc?.d/

 (będą wówczas włączone demony w 

ramach osobnych procesów) oraz plik 

/etc/rc.d/sysinit

 .

5. W zależności od widzimisie admina niektóre programy 

mogą być uruchomione za pomocą skryptów w 
katalogu 

/etc/xinetd/

 . Mamy wówczas do czynienia z 

pracą programu nie w osobnym procesie (te zostały 
włączone podczas startu systemu za pośrednictwem 
w/w skryptów /etc/rc.d/rc?.d/*), a pod kontrolą 

nadserwera inetd (lub xinetd)

background image

 

 

6. Uruchamiany jest skrypt 

/etc/rc.d/rc.local

 . W nim 

możemy (na końcu!) umieszczać odwołania do 
własnych, autorskich skryptów (np. uruchomienie 
połączenia SDI - patrz ostatnie wiersze pliku).

7. Gdy system zakończy ładowanie np. w 3 levelu (w 

powłoce tekstowej), to automatycznie zostanie 
włączony program login umożliwiający zalogowanie do 
systemu. Po zalogowaniu zostaną uruchomione skrypty 
konfigurujące shella.

8. Jeżeli system odpalił w 3 levelu (w powłoce tekstowej), 

a użytkownik zechce pracować w okienkach np. KDE, 
to wielki finał wykona 

skrypt /usr/bin/X11/startx

 

(uruchamiany poprzez wpisanie zlecenia startx i 
wciśnięcie klawisza ENTER).

background image

 

 

1) LILO

LILO to program (bootloader) uruchamiający system 
Linux. Innym, choć na razie mniej popularnym 
bootloaderem jest GRUB. LILO jest umieszczane 
standardowo na dyskietce 1,44 lub w MBR dysku 
twardego, zaś konfig LILO czyli plik lilo.conf na dysku 
twardym, w katalogu /etc.

background image

 

 

2) INIT

Gdy program LILO ustawi parametry startowe, nastąpi 
uaktywnienie pierwszego procesu Kernela pod nazwą init, 
którego opcje są zapisane w pliku 

/etc/inittab

 . Oto 

przykład tego pliku

#(Tu decydujemy, czy załadują się okienka 5 lub czy 
system zatrzyma ładowanie na powłoce tekstowej 3. 
Więcej informacji umieściłem poniżej. W naszym 
przykładzie system wystartuje w okienkach (5)

id:5:initdefault:

 

#(wskazanie miejsca położenia pliku rc.sysinit - jest to 
skrypt konfigurujący  niektóre parametry startowe 
systemu)

si::sysinit:/etc/rc.d/rc.sysinit

background image

 

 

Głównym zadaniem pliku /etc/inittab jest wskazanie poziomu 
startowego runlevel w wierszu id:5:initdefault: . Oczywiście możemy 
narzucić inny niż 5 poziom. Oto ich lista: 

0 - halt, czyli zatrzymaj system (nie ustawiaj tego jako domyślny 
poziom ;)

1 - system jednoużytkownikowy (będzie działać tylko pod jednym 
userem), bez funkcji sieciowych

2 - wieloużytkownikowy system (tak jak poziom 3), ale z wyłączoną 
funkcją sieciową

3 - wieloużytkownikowy system z funkcjami sieciowymi

4 - unused (nieużywane )

5 - tak jak poziom 3, ale w okienkach (serwer X11)

6 - reboot czyli restart systemu (nie ustawiaj tego jako domyślny 
poziom ;)

Poziom 0 i 6 jest używany przez system do zwykłego restartu lub 
zatrzymania, więc nie powinno się go wpisywać do pliku /etc/inittab w 
wierszu id:?:initdefault: . Zobaczysz ten runlevel, gdy wydasz zwykłe 
zlecenie halt, reboot lub np. init 6, telinit 6.

background image

 

 

3) Skrypty startowe /etc/rc.d/rc?.d/*

w pracowni:

komputery startują w poziomie 3, czyli powłoka tekstowa 

a okienka uruchamiamy zleceniem startx.

Należy wiedzieć, że w zależności od tego czy system załaduje się w powłoce 
tekstowej, czy w okienkach (np. KDE) - są wykorzystywane inne pliki 
autostartu. Jeżeli wybraliśmy domyślny poziom działania nr 3, to 
automatycznie zmusiliśmy system, by w czasie startu odczytał zawartość 
katalogu 

/etc/rc.d/rc3.d/

 (który działa podobnie jak autostart w 

windowsowm menu 

START- PROGRAMY- AUTOSTART

). W przypadku startu 

systemu w okienkach (czyli poziomie 5), system odczyta zawartość 
katalogu 

/etc/rc.d/rc5.d/

 . Znajdują się w nim linki do plików startowych 

demonów. Mają one w nazwie literkę S (czyli plik startowy) lub K (kill - koniec, 
zabity), nr oznaczający kolejność uruchomienia i nazwę demona.   Skróty te 
można śmiało ręcznie kasować (zamiast usuwania można zmienić nazwę, 
dopisując na początku dolną kreskę "_") lub dodawać w zależności od 
potrzeb. Skąd się tam biorą? Ano, podczas instalacji programu np sshd, w 
katalogu /etc/rc.d/init.d/ zostanie utworzony plik sshd umożliwiający 
uruchomienie danego demona. To właśnie do niego jest dowiązany skrót w 
/etc/rc.d/rc3.d/.

background image

 

 

4) Superserwer inetd (xinetd)

Superserwer inetd (xinetd) to narzędzie bardzo przydatne w systemie Linux. 
Jego zaletą jest umiejętność nasłuchiwania na wybranych portach i 
uruchamiania danej usługi w razie potrzeby. Weźmy przykład: sshd. Można go 
odpalić jako osobny proces standalone - wówczas sshd będzie pracował jako 
demon i zostanie aktywny CAŁY CZAS, nawet gdy nie będzie prób nawiązania 
połączenia. Z punktu widzenia oszczędności zasobami komputera, to 
rozrzutne choć umożliwiające natychmiastową reakcję rozwiązanie. Można 
też uruchomić sshd pod inetd (xinetd) i wówczas nasz superserwer będzie się 
czaił na porcie 22, a gdy usłyszy nawoływanie do połączenia - samoczynnie 
uruchomi nieaktywnego dotychczas demona sshd. Niestety, wydłuża się 
wówczas czas oczekiwania na uruchomienie i reakcję. Serwer inetd (xinetd) 
ustala nr portu pobierając dane z pliku /etc/services. Plik ten zawiera listę 
wszystkich usług sieciowych wraz z odpowiadającymi im portami.

Podczas instalowania demonów (np. proftpd, sshd itd.) tworzone są w 
katalogu /etc/xinetd.d pliki konfiguracyjne o tytułach zawierających nazwę 
demona. Po wyedytowaniu dowolnego pliku, znajdziesz parametr disable 
(wyłączone). Decyduje on, czy demon będzie podporządkowany xinetd (opcja 
no) lub czy włączy się jako jako samodzielny proces (opcja yes). Demona np. 
sshd pracującego pod xinetd uruchomimy (po dokonaniu zmian w katalogu 
/etc/xinetd.d) resetując superserwer zleceniem: 

kilall -HUP xinetd

 

lub 

/etc/rc.d/xinetd restart

background image

 

 

5) Skrypt /etc/rc.d/rc.local

Mamy włączony system. Działają demony, 
interfejsy. Został ostatni główny skrypt startowy 
rc.local, w którym informatycy opiekujący się 
daną dystrybucją Linuksa umieszczają ostatnie 
szlifujące konfigurację zlecenia.

background image

 

 

6) Skrypty konfigurujące shella

Proces uruchamiania shella dla danego usera jest skomplikowany. 
Wspomniałem o tym na początku strony. Nas interesuje co się dzieje od 
chwili, gdy program getty zaczyna proces przygotowania konsoli do użycia 
uruchamiając odpowiednie programy. Program login pozwolił wpisać nazwę 
usera i sprawdził hasło. 

Z pliku /etc/passwd oraz passwd- jest pobierany rodzaj shella przypisany 
danemu userowi (plik /etc/shells zawiera listę wszystkich, dostępnych, 
systemowych shelli). Po ustaleniu rodzaju shella (w naszym przypadku bash) 
jest czytany plik /etc/profile

Następnie ustalana jest zmienna PATH zgodnie z zawartością pliku ~/ 
.bash_profile

lub jeżeli go nie ma, to ~/bash_login

lub jeżeli ich nie ma to ~/.profile

Pozostaje jeszcze plik ~/ bashrc , który współpracuje z plikiem /etc/bashrc

background image

 

 

7) Skrypt /usr/bin/X11/startx

Przyjmuję, że jesteśmy zalogowani w 3 levelu, czyli 
działamy w powłoce tekstowej. Jeżeli mamy prawa 
do odpowiednich plików, to możemy zleceniem startx 
uruchomić okienka.

background image

 

 

Źródła

Ćwiczenia z systemu Linux, Leszek Madeja, Mikom 1999 

http://www.eioba.pl/c150/linux
http://zsk.tech.us.edu.pl/ogloszenia/romanek/5_7.html
http://pl.wikipedia.org/
http://rainbow.mimuw.edu.pl/SO/Linux/


Document Outline