Linux budowa dzialanie

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


Wyszukiwarka

Podobne podstrony:
Budowa i dzialanie komputera
budowa i dzialanie FDD id 94136 Nieznany (2)
BUDOWA I DZIAŁANIE DYSKÓW TWARDYCH, INFORMATYKA 001
Budowa i działanie sieci komputerowych
Budowa i działanie świecy zapłonowej
Dysk twardy budowa dzialanie
Ściągi z fizyki-2003 r, Budowa i działanie lasera
Budowa i dzialanie komputera, Studia, Informatyka, Informatyka, Informatyka
budowa i działanie procesora
budowa i dzialanie lasera LTF6Z4ASSKJPZYA2QILEEQQK2Y6PZM47V34DRPI
Budowa i dzialanie mechanizmow osprzetu roboczego
budowa i działanie układów rozrządu silników spalinowych
akumulator budowa i działanie
budowa i dzialanie mikroskopu metalograficznego, Nazwisko i imi˙
Budowa i działanie ekstrudera
5i6 Podział sadzarek, Budowa, działanie i obsługa
Budowa i dzialanie narzadu sluchu
Budowa i działanie wybranych elementów automatyki pneumatycznej

więcej podobnych podstron