Title: Prezentacja programu PowerPoint
1Wyklad 7 Linux Budowa i dzialanie systemu
2System operacyjny Unix - Model warstwowy
systemu W modelu tym dzieli sie system na 4
warstwy jadro, biblioteki, powloka i
programy. Jadro/Kernel zawiera m.in. program
szeregujacy oraz sterowniki urzadzen zarzadza
pamiecia operacyjna w nowszych systemach
sterowniki rzadziej wystepujacych urzadzen
dostepne sa w postaci zewnetrznych modulów, które
mozna wybiórczo zaladowac do jadra - dzieki temu
jego rozmiary sa mniejsze jadro ma bezposredni
dostep do wszystkich zasobów komputera
3Biblioteki zawieraja zestawy podprogramów
(zwykle napisanych w jezyku C), wykonujacych
rózne, czesto stosowane, operacje (moga to byc
np. zestawy funkcji matematycznych, procedury,
umozliwiajace obsluga monitora czy tez operacje
na dysku) biblioteki te sa zwykle dolaczane do
programów na etapie ich konsolidacji (program,
np. w jezyku C, przed uruchomieniem zostaje
poddany kompilacji, a nastepnie konsolidacji)
taka statyczna konsolidacja powoduje, ze dana
biblioteka jest dolaczana do kazdego z
korzystajacych z niej programów - nawet wtedy,
gdy uruchamiane sa one jednoczesnie w systemie
powoduje to znaczna zajetosc pamieci operacyjnej
4Powloka nazwa pochodzi stad, ze warstwa ta
oddziela wewnetrzna czesc systemu operacyjnego od
uzytkownika powloka zawiera interpreter
polecen, który umozliwia komunikacje z
uzytkownikiem (jest to odpowiednik programu
command.com z DOSa) interpreter polecen
uruchamia polecenia systemu operacyjnego oraz
programy uzytkowe
5Programy procesy uruchamiane przez
uzytkownika zarzadzane przez program
szeregujacy jadra moga byc przerwane w dowolnym
momencie, np. komenda - kill kazdy ma
przydzielony odpowiedni obszar pamieci i
priorytet jesli proces uzytkownika próbuje
dostac sie do cudzego obszaru pamieci, zostaje
przerwany, a system wyswietla komunikat
segmentation fault biezaca zawartosc pamieci
procesu moze zostac zapisana na dysku w pliku o
nazwie core (nazwa od slów core dump, czyli zrzut
pamieci) analiza zawartosci tego pliku moze
pomóc programiscie w wykryciu przyczyny
wystapienia bledu
6Schemat blokowy
7Struktura katalogów
Rozbudowana struktura katalogów Linuxa jest
pogrupowana w logiczne czesci. Kazdy katalog
zawiera pliki powiazane ze soba
logicznie. Struktura katalogu glównego jest
nastepujaca /bin - wykonywalne pliki binarne,
niezbedne do pracy zarówno w trybie
wielouzytkownikowym, jak i w awaryjnym trybie
jednego uzytkownika, /boot - jadro systemu oraz
pliki niezbedne przy jego uruchomieniu, /dev -
pliki urzadzen, stanowiace interfejs do
sterowników w jadrze, /etc - konfiguracja
systemu /home - katalogi domowe uzytkowników
8/lib - biblioteki systemowe /lostfound - pliki
odnalezione podczas wykonywania testów dysku /mnt
- katalog do którego zwykle mountowane sa
tymczasowe systemy plików takie jak dyskietka czy
CD-ROM /proc - pseudosystem plików,
odzwierciedlajacy stan procesów w systemie, /root
- katalog domowy uzytkownika root, /sbin -
wykonywalne pliki binarne, niezbedne do pracy
systemu zarówno w trybie wielouzytkownikowym, jak
równiez w trybie jednego uzytkownika. Zawiera
polecenia administracyjne, /tmp - pliki
tymczasowe, /usr - pliki uzytkowników, dodatki
doinstalowywane do systemu itp. /var - pliki
czesto zmieniane, np logi czy poczta
9/usr/X11R6 - pliki zwiazane z systemem
XWindow, /usr/bin - wykonywalne polecenia systemu
Linux potrzebne do pracy w trybie
wielouzytkownikowym, /usr/dict - slownikowa lista
wyrazów angielskich, uzywana m.in. przy
sprawdzaniu jakosci hasla uzytkownika, /usr/doc -
dodatkowa dokumentacja, /usr/include - pliki
nagló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 wielouzytkownikowym, /usr/share
- pliki wspólne, generalnie katalog zawiera
dodatkowe informacje na temat niektórych
polecen, /usr/src - zródla do systemu i
jadra, /usr/tmp - pliki tymczasowe. /var/catman
- preformatowane strony pomocy kontekstowej
man, /var/db - bazy danych, /var/lock - semafory
uzywane do komunikacji miedzyprocesowej, /var/log
- logi systemowe, /var/named - pliki serwera nazw
(DNS), /var/nis - pliki systemu NIS, /var/run -
pliki z danymi dotyczacymi numerów poszczególnych
procesów w systemie, /var/spool - kolejki poczty,
wydruków itp. /var/tmp - pliki tymczasowe.
10System plików i prawa dostepu
ext2 (ang. Second Extended File System) drugi
rozszerzony system plików dla systemu Linux. Ext2
zastapil rozszerzony system plików ext.
Rozpoznanie uszkodzenia systemu plików (np. po
zalamaniu sie systemu) nastepuje przy starcie
systemu, co pozwala na automatyczne naprawianie
szkód za pomoca oddzielnego programu (e2fsck),
uszkodzone pliki zapisywane sa w katalogu
lostfound. System plików ext2 zawiera mechanizm
zapobiegajacy znacznej fragmentacji danych, co
zdarzalo sie podczas uzywania poprzedniej jego
wersji. Ext2 przy domyslnym rozmiarze bloku (4
KB) obsluguje partycje o wielkosci do 16384 GB i
pojedyncze pliki o wielkosci do 2048 GB. Nazwy
plików moga miec do 255 znaków dlugosci. Waznym
elementem systemu ext2 sa wolne pola w
strukturach danych to dzieki nim miedzy innymi,
mozliwa jest konwersja w locie do systemu ext3
wykorzystuje on po prostu czesc z nich do
przechowywania swoich danych.
11Budowa systemu plików blok startowy (boot
block) zawiera informacje potrzebne Linuksowi do
startu (uzyskania dostepu do systemu
plików) superblok (superblock) zawiera informacje
o strukturze systemu plików lista i-wezlów (inode
list) to lista adresów do tych bloków danych na
których sa zapisane rzeczywiste dane pliku.
Wyjasnienie przed zapisaniem na dysku twardym
plik jest dzielony na czesci okreslone przez
rozmiar bloku danych. Po zdefiniowaniu adresów
takich bloków w i-wezlach dane mozna zapisac (lub
potem odczytac). bloki danych (oraz bloki
katalogów czyli data blocks) to czesci o stalym
rozmiarze przestrzeni dyskowej przygotowane do
wprowadzania i odczytu danych plików (katalogów).
Jezeli plik jest wiekszy od jednego bloku danych,
to jest dzielony i zapisany na powierzchni kilku
bloków danych - adresy do takich bloków sa
notowane w i-wezlach. Natomiast, gdy wielkosc
pliku jest mniejsza niz blok danych, to wolna
przestrzen bloku danych marnuje sie.
12chown zmiana wlasciciela chown root
/var/run/httpd.pid ls -l -rw-rw-r-- 1 artur
artur 0 Mar 4 1301 test chmod ltprawagt ltnazwa
plikugt u-user a-all g-group o-other
r-read w-write x-execute chmod ax test chmod
706 test 0 to - brak praw dostepu 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
13 Dowiazania w systemie Linux Dowiazania czesto sa
przyrównywane do skrótów w systemie Windows. W
rzeczywistosci posiadaja jednak znacznie wieksze
mozliwosci, np. tworzenie twardych,
symbolicznych dowiazan, dowiazan do urzadzen,
innych systemów etc. Jest jednak jedno "ale" -
polecenie "ln" moze byc nieobslugiwane przez
niektóre systemy, na innych moze byc
ograniczone... Linki twarde posiadaja te same
rozmiary, te same numery i-wezlów. Sa to po
prostu inne nazwy tego samego pliku(obszaru
dysku). Linki twarde sa domyslnym typem
dowiazan. Dowiazania symboliczne pozwalaja na
stworzenie dowiazan do pliku, który jest w innym
systemie, na innym urzadzeniu. Jako parametr
przy wywolaniu "ln" podajemy "-s" np. ln -s
/mnt/hda1/wazne wazne_c
14FSCK
fsck (skrót od file system check lub file system
consistency check) - Uniksowy program do
sprawdzania integralnosci systemu plików. Zwykle
fsck jest uruchamiany podczas bootowania systemu,
aby sprawdzic, czy system plików jest w dobrym
stanie. Jezeli nie jest, na przyklad w wyniku
spadku zasilania, fsck próbuje go naprawic. Na
systemach plików, które nie obsluguja
ksiegowania, jak na przyklad ext2, moze to trwac
nawet przez wiele godzin, w zaleznosci od
pojemnosci partycji. fsck moze byc tez
uruchomiony recznie przez administratora systemu,
jezeli ten uzna, ze to konieczne. Odpowiednikiem
fsck dla Windows jest Scandisk.
15Uzytkownicy systemu
root (z ang., doslownie korzen) to tradycyjna
nazwa uniksowego konta, które ma pelna kontrole
nad systemem. Z zalozenia konto root nie powinno
byc uzywane do pracy, do której wystarczyloby
zwykle konto z ograniczonymi uprawnieniami.
Istotna sprawa jest zabezpieczenie tego konta
silnym haslem i zabezpieczenie przed
nieautoryzowanym dostepem. Dobrze jest
ograniczyc mozliwosc logowania na konto root i
uzywac polecen su albo sudo. logowanie przez ssh
blokujemy w Linuksie z mieniajac w zbiorze
/etc/ssh/sshd_config parametr PermitRootLogin z
"yes" na "no". Konto root uprawnia do
wykonywania takich operacji jak zmiana
wlasciciela pliku czy otwarcie portu TCP/UDP z
numerem ponizej 1024. W innych systemach
operacyjnych uzywa sie tez nazw takich jak toor,
superuser, supervisor, Administrator, czy
operator. Nazwa root funkcjonuje, jako okreslenie
administratora systemu, zarówno w systemach UNIX,
jak i pokrewnych (FreeBSD, GNU/Linux).
16- UID (ang. User IDentifier)
- - jest to identyfikator uzytkownika w systemie
Unix. - Reguly
- root ma UID 0,
- uzytkownik nobody ma ostatni UID (zazwyczaj
32767), - UID-y od 1 do 100 sa zarezerwowane dla systemu.
17 Atrybuty uzytkownika System przechowuje w pliku
/etc/passwd nastepujace atrybuty kazdego
zarejestrowanego uzytkownika nazwa - nazwa
jednoznacznie identyfikujaca konto
uzytkownika, identyfikator uzytkownika UID -
numer jednoznacznie identyfikujacy uzytkownika w
systemie, identyfikator grupy GID - numer
grupy, do której nalezy uzytkownik, katalog
domowy - prywatny katalog uzytkownika, w którym
moze bezpiecznie przechowywac swoje pliki,
zabezpieczone przed dostepem innych
uzytkowników, powloka logowania - nazwa
interpretera polecen, który jest uruchamianypo
zalogowaniu uzytkownika.
18Powloki - shell
Wyswietlenie listy powlok cat
/etc/shells /bin/bash /bin/csh /bin/sh /bin/tcsh
uruchamiamy np. csh wychodzimy exit
19Drobne obliczenia z linii komend
echo 23-10 -4 a12 b3 cab echo
c ab let cab echo c 15
Definiowanie wlasnych zmiennych
dmc/home/user1/doc cd dmc
20Aliasy i skrypty Wyswietlenie dostepnych
aliasów alias alias cd..cd .. alias lls
-al ... Definiowanie aliasów alias
mdmkdir alias lls -l alias umumount
f /mnt/floppy unalias l Dodawanie aliasów do
pliku bashrc.
21TRESC SKRYPTU !/bin/sh TEKST"Hello
world!" LICZBA12 SUMALICZBA111 echo
Tekst TEKST echo Liczba LICZBA echo Suma
SUMA
WYNIK SKRYPTU Tekst Hello world! Liczba
12 Suma 123
22Proces i jego strumienie
PROCES
WE dane
WY dane
Bledy
deskryptor 0 stdin wejscie
standardowe deskryptor 1 stdout wyjscie
standardowe deskryptor 2 stderr wyjscie
standardowe bledów
23Operatory przekierowania gt plik - wyjscie std.
jest kierowane do pliku a nie na ekran gtgt plik -
identyczne jak gt ale dopisuje do pliku lt plik -
jako wejscie standartowe (zamiast klawiatury)
zostanie otwarty plik 2 gt plik
przekierowanie stderr do pliku 1 gt 2
przekierowuje 1 w to samo miejsce co
2 Przyklady ls -al gtgt lista.txt cat gt plik ls
-l /nie_istniejacy_katalog 2gt /tmp/cos
24Filtrowanie - grep
Podstawowe elementy wyrazen regularnych .
-dowolny pojedynczy znak -dopasuj
poprzedzajace wyrazenie do konca wiersza
-dopasuj wystepujace po operatorze wyrazenie do
poczatku wiersza -dopasuj zero lub wiecej
wyrazen znaku poprzedzajacy operator \ -oznacza
ominiecie specjalnego znaczenia znaku np"\"
-dopasuj dowolny znak w nawiasie - -dopasuj
dowolny znak z przedzialu 0-9 -dopasuj
znak, który nie znajduje sie w nawiasie
Rodzaje wieloznaczników W wiekszosci przypadków
uzywane sa dwa wieloznaczniki wieloznacznik
lokalny zastepujacy pojedyncze wystapienie
dowolnego znaku (do jego oznaczania najczesciej
stosowany jest znak zapytania (?)), wieloznacznik
ogólny zastepujacy dowolna liczbe dowolnych
znaków (do jego oznaczania najczesciej stosowany
jest znak gwiazdki ()).
Przyklady grep 'Ala' plik -znajduje wyraz 'Ala'
w pliku grep 'Alga' plik -znajduje wyraz 'Ala'
lub 'Aga' grep 'A.a' plik -znajduje wyrazy takie
jak 'Ala' 'Aga' itp grep 'Ala' plik - znajduje
wyraz 'Ala' na poczatku wersu grep 'Gogle' plik
- znajduje wyraz 'Gogle', 'Google' itd grep
'0-9' - znajduje dowolny ciag znaków z zakresu
od 0 do 9
ls -l grep student spowoduje wyswietlenie
zawartosci tylko tych pozycji katalogu, gdzie
znajduje sie slowo "student" (czyli np. bedacych
wlasnoscia studenta, posiadajacych slowo
"student" w nazwie itp). cat zrodlo.c grep
include Powyzsze polecenie wyswietli wszystkie
linie pliku zrodlo.c, zawierajace ciag "include"
25Komendy shela
26Pliki konfiguracyjne /etc
uzytkownicy
/etc/passwd zakodowane hasla
/etc/shadow dyski / partycje
/etc/fstab zamontowane sys. plików
/etc/mtab allow (dozwolone)
/etc/hosts.allow komputery niedopuszczone
/etc/hosts.deny powloki
/etc/shells
27Demony
Daemon proces w systemach UNIX dzialajacy w
tle bez koniecznosci interakcji z
uzytkownikiem. Zwykle nazwa takiego procesu
odpowiada pelnionej funkcji z dolaczona na koncu
litera d, np. automountd, ftpd, httpd, inetd,
lockd, powerd, rlogind, sshd, statd, syslogd,
talkd, telnetd, vold, xntpd, W systemach
MS-DOS/PC-DOS podobna funkcjonalnosc oferuja
programy rezydentne (TSR Terminate and Stay
Resident), natomiast w Microsoft Windows
analogiem jest usluga (service).
28Instalacja pakietów
RPM (RPM Package Manager, dawniej Red Hat Package
Manager) to program sluzacy do instalacji i
zarzadzania pakietami zawierajacymi
oprogramowanie, oraz nazwa tych pakietów
(poniewaz maja one rozszerzenie .rpm). Pakiety
RPM zawieraja skompresowane (we wczesnych
wersjach gzipem, w nowszych bzipem2) archiwum
cpio zawierajace oprogramowanie. Zawieraja takze
(w specjalnym pliku .spec) informacje na temat
zawartosci, m.in. tzw. zaleznosci (ang.
dependencies) - czyli spis programów lub
pakietów, które sa wymagane do zainstalowania i
poprawnej pracy pakietu (dziala to takze w druga
strone - pakiety pózniej zainstalowane wymagajace
danego pakietu, uniemozliwiaja jego
odinstalowanie). Program ten powstal na potrzeby
dystrybucji Red Hat Linux, aktualnie jest uzywany
równiez w innych dystrybucjach (np. Fedora Core,
SUSE, Mandrake, PLD).
29Nazwy pakietów RPM wprowadzil ujednolicone nazwy
plików. Przykladowy pakiet z GNU Gadu posiada
nazwe gg2-2.2.7-1.athlon.rpm. Nazwa ta sklada sie
z czterech czlonów w formacie plik-wersja-wersja_p
akietu.architektura.rpm gg2 - nazwa
programu, 2.2.7 - wersja programu, 1 - wersja
pakietu (moze istniec 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
30DEB - Pakiety wystepujace w Debianie TGZ -
archiwa tara pakiety obecne w Slackware
DEB dpkg -i nazwa_pakietu.deb -
instalacja apt-get remove nazwa_pakietu.deb -
usuniecie dpkg --info nazwa_pakietu.deb -
wyswietla informacje o pakiecie dpkg
--reconfigure nazwa_pakietu.deb - ponowna
konfiguracja pakietu dpkg --list
nazwa_pakietu.deb - wyswiatlenie listy pakietów o
podanym wzorcu nazwy dpkg --unpack nazwa_pakietu
- rozpakowanie pakietu TGZ installpkg
nazwa_pakietu.tgz - instalacja removepkg
nazwa_pakietu.tgz - usuniecie
31Instalacja programów ze zródel
- Rozpakowanie
- tar -zxvf gettheport.tar.gz
- gunzip plik.tar.gz
- bunzip2 plik.tar.bz2
- configure sprawdza, czy w systemie
zainstalowane sa wymagane biblioteki lub
programy, co ustrzeze Cie przed bledami
kompilacji. makefile przeprowadza caly proces
kompilacji programu. Dzieli sie przewaznie na
trzy czesci - make - sekcja kompilujaca zródla
- install - sekcja instalujaca skompilowane pliki
- uninstall - sekcja odinstalowujaca pliki
zainstalowane - Configure
- Make
- Make install
32- Linux to Kernel (jadro systemu) plus ZBIÓR
oprogramowania. Nie ma jednego systemu Linux, a
tylko Kernel jest ustandaryzowany. W
przeciwienstwie do znanego powszechnie Windows ,
Linux dziala bez okienek. Wynika to zreszta z
historii systemu, który pierwotnie byl dostepny
tylko w wersji tekstowej i wymagal znajomosci
komend unixowych. Okienka (np. KDE, Gnome) sa sa
wiec dodatkowym oprogramowaniem, tzw. "nakladka"
na powloke tekstowa (shella). - Kolejnosc czynnosci podczas startu systemu
- Pierwszy uruchamiany jest program LILO (ew. GRUB)
Dane tam zawarte pozwalaja procesorowi na
ustawienie ekranu, uruchomienie wlasciwego
Kernela itp.
33- 2. Zostaje odpalony pierwszy proces Kernela,
czyli init. Zawsze ma on identyfikator procesu
PID o wartosci 1. Wiekszosc dystrybucji Linuksa
uzywa 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 zamontowal odnotowuje w pliku /etc/mtab - Nastepnie sa czytane skrypty startowe w
katalogach /etc/rc.d/rc?.d/ (beda wówczas
wlaczone demony w ramach osobnych procesów) oraz
plik /etc/rc.d/sysinit . - W zaleznosci od widzimisie admina niektóre
programy moga byc uruchomione za pomoca skryptów
w katalogu /etc/xinetd/ . Mamy wówczas do
czynienia z praca programu nie w osobnym procesie
(te zostaly wlaczone podczas startu systemu za
posrednictwem w/w skryptów /etc/rc.d/rc?.d/), a
pod kontrola nadserwera inetd (lub xinetd)
346. Uruchamiany jest skrypt /etc/rc.d/rc.local . W
nim mozemy (na koncu!) umieszczac odwolania do
wlasnych, autorskich skryptów (np. uruchomienie
polaczenia SDI - patrz ostatnie wiersze
pliku). 7. Gdy system zakonczy ladowanie np. w 3
levelu (w powloce tekstowej), to automatycznie
zostanie wlaczony program login umozliwiajacy
zalogowanie do systemu. Po zalogowaniu zostana
uruchomione skrypty konfigurujace
shella. 8. Jezeli system odpalil w 3 levelu (w
powloce tekstowej), a uzytkownik zechce pracowac
w okienkach np. KDE, to wielki final wykona
skrypt /usr/bin/X11/startx (uruchamiany poprzez
wpisanie zlecenia startx i wcisniecie klawisza
ENTER).
351) LILO LILO to program (bootloader)
uruchamiajacy system Linux. Innym, choc na razie
mniej popularnym bootloaderem jest GRUB. LILO
jest umieszczane standardowo na dyskietce 1,44
lub w MBR dysku twardego, zas konfig LILO czyli
plik lilo.conf na dysku twardym, w katalogu /etc.
362) INIT Gdy program LILO ustawi parametry
startowe, nastapi uaktywnienie pierwszego procesu
Kernela pod nazwa init, którego opcje sa zapisane
w pliku /etc/inittab . Oto przyklad tego
pliku (Tu decydujemy, czy zaladuja sie okienka
5 lub czy system zatrzyma ladowanie na powloce
tekstowej 3. Wiecej informacji umiescilem
ponizej. W naszym przykladzie system wystartuje w
okienkach (5) id5initdefault (wskazanie
miejsca polozenia pliku rc.sysinit - jest to
skrypt konfigurujacy niektóre parametry startowe
systemu) sisysinit/etc/rc.d/rc.sysinit
37Glównym zadaniem pliku /etc/inittab jest
wskazanie poziomu startowego runlevel w wierszu
id5initdefault . Oczywiscie mozemy narzucic
inny niz 5 poziom. Oto ich lista 0 - halt,
czyli zatrzymaj system (nie ustawiaj tego jako
domyslny poziom ) 1 - system jednouzytkownikowy
(bedzie dzialac tylko pod jednym userem), bez
funkcji sieciowych 2 - wielouzytkownikowy system
(tak jak poziom 3), ale z wylaczona funkcja
sieciowa 3 - wielouzytkownikowy system z
funkcjami sieciowymi 4 - unused (nieuzywane ) 5 -
tak jak poziom 3, ale w okienkach (serwer X11) 6
- reboot czyli restart systemu (nie ustawiaj tego
jako domyslny poziom ) Poziom 0 i 6 jest uzywany
przez system do zwyklego restartu lub
zatrzymania, wiec nie powinno sie go wpisywac do
pliku /etc/inittab w wierszu id?initdefault .
Zobaczysz ten runlevel, gdy wydasz zwykle
zlecenie halt, reboot lub np. init 6, telinit 6.
383) Skrypty startowe /etc/rc.d/rc?.d/ w
pracowni komputery startuja w poziomie 3, czyli
powloka tekstowa a okienka uruchamiamy zleceniem
startx. Nalezy wiedziec, ze w zaleznosci od tego
czy system zaladuje sie w powloce tekstowej, czy
w okienkach (np. KDE) - sa wykorzystywane inne
pliki autostartu. Jezeli wybralismy domyslny
poziom dzialania nr 3, to automatycznie
zmusilismy system, by w czasie startu odczytal
zawartosc katalogu /etc/rc.d/rc3.d/ (który dziala
podobnie jak autostart w windowsowm menu START-
PROGRAMY- AUTOSTART). W przypadku startu systemu
w okienkach (czyli poziomie 5), system odczyta
zawartosc katalogu /etc/rc.d/rc5.d/ . Znajduja
sie w nim linki do plików startowych demonów.
Maja one w nazwie literke S (czyli plik startowy)
lub K (kill - koniec, zabity), nr oznaczajacy
kolejnosc uruchomienia i nazwe demona. Skróty
te mozna smialo recznie kasowac (zamiast usuwania
mozna zmienic nazwe, dopisujac na poczatku dolna
kreske "_") lub dodawac w zaleznosci od potrzeb.
Skad sie tam biora? Ano, podczas instalacji
programu np sshd, w katalogu /etc/rc.d/init.d/
zostanie utworzony plik sshd umozliwiajacy
uruchomienie danego demona. To wlasnie do niego
jest dowiazany skrót w /etc/rc.d/rc3.d/.
394) Superserwer inetd (xinetd) Superserwer inetd
(xinetd) to narzedzie bardzo przydatne w systemie
Linux. Jego zaleta jest umiejetnosc nasluchiwania
na wybranych portach i uruchamiania danej uslugi
w razie potrzeby. Wezmy przyklad sshd. Mozna go
odpalic jako osobny proces standalone - wówczas
sshd bedzie pracowal jako demon i zostanie
aktywny CALY CZAS, nawet gdy nie bedzie prób
nawiazania polaczenia. Z punktu widzenia
oszczednosci zasobami komputera, to rozrzutne
choc umozliwiajace natychmiastowa reakcje
rozwiazanie. Mozna tez uruchomic sshd pod inetd
(xinetd) i wówczas nasz superserwer bedzie sie
czail na porcie 22, a gdy uslyszy nawolywanie do
polaczenia - samoczynnie uruchomi nieaktywnego
dotychczas demona sshd. Niestety, wydluza sie
wówczas czas oczekiwania na uruchomienie i
reakcje. Serwer inetd (xinetd) ustala nr portu
pobierajac dane z pliku /etc/services. Plik ten
zawiera liste wszystkich uslug sieciowych wraz z
odpowiadajacymi im portami. Podczas instalowania
demonów (np. proftpd, sshd itd.) tworzone sa w
katalogu /etc/xinetd.d pliki konfiguracyjne o
tytulach zawierajacych nazwe demona. Po
wyedytowaniu dowolnego pliku, znajdziesz parametr
disable (wylaczone). Decyduje on, czy demon
bedzie podporzadkowany xinetd (opcja no) lub czy
wlaczy sie jako jako samodzielny proces (opcja
yes). Demona np. sshd pracujacego pod xinetd
uruchomimy (po dokonaniu zmian w katalogu
/etc/xinetd.d) resetujac superserwer zleceniem
kilall -HUP xinetd lub /etc/rc.d/xinetd restart
405) Skrypt /etc/rc.d/rc.local Mamy wlaczony
system. Dzialaja demony, interfejsy. Zostal
ostatni glówny skrypt startowy rc.local, w którym
informatycy opiekujacy sie dana dystrybucja
Linuksa umieszczaja ostatnie szlifujace
konfiguracje zlecenia.
416) Skrypty konfigurujace shella Proces
uruchamiania shella dla danego usera jest
skomplikowany. Wspomnialem o tym na poczatku
strony. Nas interesuje co sie dzieje od chwili,
gdy program getty zaczyna proces przygotowania
konsoli do uzycia uruchamiajac odpowiednie
programy. Program login pozwolil wpisac nazwe
usera i sprawdzil haslo. Z pliku /etc/passwd
oraz passwd- jest pobierany rodzaj shella
przypisany danemu userowi (plik /etc/shells
zawiera liste wszystkich, dostepnych, systemowych
shelli). Po ustaleniu rodzaju shella (w naszym
przypadku bash) jest czytany plik
/etc/profile Nastepnie ustalana jest zmienna PATH
zgodnie z zawartoscia pliku / .bash_profile lub
jezeli go nie ma, to /bash_login lub jezeli ich
nie ma to /.profile Pozostaje jeszcze plik /
bashrc , który wspólpracuje z plikiem /etc/bashrc
427) Skrypt /usr/bin/X11/startx Przyjmuje, ze
jestesmy zalogowani w 3 levelu, czyli dzialamy w
powloce tekstowej. Jezeli mamy prawa do
odpowiednich plików, to mozemy zleceniem startx
uruchomic okienka.
43Zródla Cwiczenia z systemu Linux, Leszek Madeja,
Mikom 1999 http//www.eioba.pl/c150/linux http//
zsk.tech.us.edu.pl/ogloszenia/romanek/5_7.html htt
p//pl.wikipedia.org/ http//rainbow.mimuw.edu.pl/
SO/Linux/