Trochę historii
description
Transcript of Trochę historii
Trochę historii
Lata 50 – początki systemów operacyjnych, programy batch, minimalizacja przestojów między kolejnymi programami
Lata 60 – pierwsze systemy operacyjne interaktywne. Kilku użytkowników korzystało z tego samego komputera równocześnie. Podział czasu
Wiele różnych zespołów, wiele projektów, jednym z nich był Multics
1
Trochę historii Bell Labs opuścił zespół pracujący nad systemem
Multics i stworzył własny system operacyjny, Unix. Początkowo rozprowadzany za darmo, zdobył dużą popularność w uniwersytetach
Lata 90 – pozycja Unixa stała się mocna, ale został produktem komercyjnym i drogim.
Tani, podobny do Unixa system Minix był ubogi, napisany w celach dydaktycznych. 386BSD, prekursor systemów NetBSD, FreeBSD, OpenBSD był niedojrzały i potrzebował mocnego sprzętu
2
Trochę historii
Październik 1991 Linus Torvalds używał Unixa na uniwersytecie w Helsinkach, chciał mieć podobny system w domu. Próbował systemu Minix, ale chciał coś lepszego. Rozpoczął pisanie własnego systemu operacyjnego
Po opublikowaniu pierwszej działającej wersji system przyciągnął uwagę innych programistów. Zaczął się dynamicznie rozwijać
3
Trochę historii
Linux to tylko jądro systemu (zarządzanie pamięcią, drivery urządzeń, zarządzanie wielozadaniowością itp). Pozostałe oprogramowanie systemowe, w tym najaważniejszy – kompilator C pochodziły z Free Software Foundation's GNU project.
Free Software Foundation's GNU project rozpoczął sie w 1984 roku, ma za cel stworzenie kompletnego farmowego wzorowanego na Unixie systemu operacyjnego. Linux czasami jest nazywany GNU/Linux.
4
Trochę historii Lata 92 i 93 – Linux wzbogacił się o protokół
TCP/IP i środowisko graficzne (X Window), mogł zastąpić w stacjach roboczych Unixa. Wiele małych firm zajęło się rozwojem i dystrybucją Linuxa, pojawiły się grupy użytkowników
Początek 1994 – rozpoczęto wydawanie Linux Magazine
Marzec 1994 – jądro 1.0 1997 rok – Netscape udostępniło swoje
oprogramowanie bezpłatnie. Powstał model oprogramowania typu “open source”
5
Co to takiego Linux to wzorowany na systemie Unix
wielozadaniowy i wielodostępny system operacyjny dla 32 i 64 bitowych procesorów, działający na wielu platformach. Programy pisane dla UNIX działają na Linux po rekompilacji
Linux, podobnie jak Unix był od początku projektowany jako wielozadaniowy. Wielozadaniowość musi być brana pod uwagę w całym systemie operacyjnym, systemy do których dodano ja później, robią to gorzej (przykład: win95 – win NT)
6
Co to takiego
Dobra ochrona pamięci, program użytkowy nie może zniszczyć innego
Linux był pisany na Intel 386, teraz działa na Sun SPARC i UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64 and CRIS – procesory 32 i 64 bitowe
7
Co to takiego
Skalowalność – działa w komputerach wbudowanych, telefonach komórkowych, mainframe, ....
Dzięki technologii cluster np. Beowulf działa na superkomputerach
8
Co to takiego
Pierwsze aplikacje to oprogramowanie naukowe, bazy danych, sieci komputerowe. Interfejs z linii komend.
Pierwsze poważne zastosowania – jako serwery plików, poczty, baz danych
Środowisko graficzne - KDE, Gnome pozwoliło na powstanie aplikacji dla zwykłych użytkowników, na przykład Open Office.
9
Dystrybucje
Linux i jego oprogramowanie rozwijane jest przez wiele zespołów
Możliwe jest samodzielne zebranie oprogramowania i jego zainstalowanie
Wygodniej jest skorzystać z gotowego zestawu, dystrybucji
10
Dystrybucje
Dystrybucja to jądro systemu, program instalacyjny i zestaw programów użytkowych
Istnieją setki dystrybucji, ogólnego przeznaczenia i wyspecjalizowane. Różnią się programem instalacyjnym, konfiguracją jądra, zestawem programów użytkowych i ich wersją
Najważniejsze dystrybucje ogólnego przeznaczenia - Red Hat, SuSE, Debian ....
11
UNICS 1969
Siódma edycja 1978
Szósta edycja 1976
Piąta edycja 1973
BSD 1979SYSV (5) 1983
Solaris/SUNOS 5.x (SUN)
AIX (IBM)IRIX (SGI)
HP-UX (HP)Digital Unix (DEC)SCO UNIX (SCO)
SUNOS 4.x (SUN)NextStep (NeXT)FreeBSD (Open
Source)OpenBSD (Open
Source)NetBSD (Open
Source)
Linux (Open Source)
1991
Użytkownicy
Aplikacje Programysystemowe
Shell, GUI
Biblioteki systemowe
Jądro (kernel)
Sprzęt (procesor, pamięć, dyski itp.)
Budowa systemu - jądro Jądro systemu – tworzy wirtualny komputer dla
procesów użytkowych Interfejs do sprzętu (kart sieciowych, pamięci RAM,
dysków itp) Ładowalne moduły do obsługi urządzeń, sieci,
systemu plików itp. Pracuje w trybie uprzywilejowanym Cały kod i struktury danych w jednej przestrzeni
adresowej Interfejs do bibliotek systemowych (system libraries)
14
Budowa systemu - jądro
Pięć głównych podsystemów: PSHED(process sheduler) odpowiada za dostęp
do CPU MM (memory manager) odpowiada za
bezpieczne użycie pamięci przez wiele procesów, obsługuje pamięć wirtualną
NET (network interface) zapewnia dostęp do urządzeń sieciowych w różnych standardach
15
Budowa systemu - jądro
Pięć głównych podsystemów: VFS (virtual filesystem) ukrywa dla procesów
szczegóły fizycznego dostępu do urządzeń pamięci zewnętrznej. Obsługuje wiele formatów, kompatybilnych z innymi systemami operacyjnymi (vfat, cdfs, ntfs itp.)
IPC (inter process communication) dostarcza mechanizmów do komunikacji między różnymi procesami na tej samej maszynie
16
Budowa systemu – biblioteki systemowe Procesy użytkowe chcąc skorzystać z jadra wywołują
funkcje bibliotek systemowych. Biblioteki systemowe nie działają w trybie
uprzywilejowanym, wykonują te funkcje systemu, które tego trybu nie wymagają, na przykład buforowanie wejścia/wyjścia
Pełnią też zadania, które nie mają odpowiedników w funkcjach jądra, np. sortowanie, operacje matematyczne
Zapewniają zgodność ze standardami – POSIX, UNIX itp.
17
Budowa systemu – programy użytkowe
Interpretatory poleceń – sh, csh, tcsh, bash Programy obsługujące zewnętrzne polecenia
systemowe – ls, ps, netstat, grep .... Programy działające w tle – daemony Kompilatory i biblioteki Aplikacje użytkowników
18
System plików 19
FHS 2.3.1
System plików - / (Root)
Musi zawierać wszystko, co potrzebne do uruchomienia systemu, jego odtworzenia lub naprawienia
Nie powinien być duży Musi umożliwić zamontowanie pozostałych
systemów plików
20
System plików - /bin
Zawiera podstawowe polecenia używane przez administratora i wszystkich użytkowników
Musi zawierać polecenia niezbędne do zamontowania filesytemów
21
System plików - /boot
Zawiera wszystko, co niezbędne do uruchomienia systemu, dane potrzebne zanim jądro systemu rozpocznie działanie
Jadro systemu może być w kartotece /boot lub w kartotece /
22
System plików - /dev
Zawiera pliki specjalne lub pliki urządzeń Jeśli w kartotece /dev możliwe jest tworzenie
nowych plików urządzeń, musi zawierać polecenie MAKEDEV do ich tworzenia
23
System plików - /etc
Zawiera pliki konfiguracyjne Nie może zawierać programów binarnych Zawiera podkartoteki na konfiguracje aplikacji
24
System plików - /home
Zawiera pliki użytkowników Nie musi występować w systemie
25
System plików - /lib
Zawiera podstawowe biblioteki systemu Musi występować w systemie Musi zawierać zbiory: libc.so.* podstawowa biblioteka C ln (linker/loader)
26
System plików - /media
Zawiera punkty montowania dla mediów wymiennych, CDROM, dyskietki, taśmy itp.
27
System plików - /mnt
Zawiera punkty montowania dla filesystemów montowanych tymczasowo
28
System plików - /sbin
Programy używane przez administratora systemu Inne lokalizacje tych programów - /usr/sbin,
/usr/local/sbin
29
System plików - /tmp
Kartoteka na zbiory tymczasowe Dostępna do zapisu dla wszystkich
użytkowników Podczas przeładowania systemu jej zawartość
może i powinna być usunięta Alternatywnym miejscem dla zbiorów
tymczasowych jest /var/tmp – zawartość tej kartoteki nie jest kasowana przy przeładowaniu systemu
30
System plików - /usr
Kartoteka na pozostałe zbiory systemu Nie powinna być używana do zapisu przez
użytkowników i aplikacje Podkartoteki bin, sbin, share, lib, include, local Może zawierać inne podkartoteki, np, X11R6,
src
31
System plików - /var
Kartoteka na zmieniające się pliki, np. logi systemowe, kolejki drukarek, kolejki poczty
Zawiera podkartoteki cache, lib, local, lock, log, opt, run, spool, tmp
Może zawierać opcjonalnie np. mail, games
32
System plików - /proc
Opcjonalny, lecz często występujący w systemach Unix
Zawiera informacje o stanie systemu – procesach, urządzeniach, pamięci, przerwaniach itp.
Wirtualny, tworzony podczas pracy systemu. Poprzez modyfikację zbiorów w tym systemie
plików można zmienić działanie systemu, np. włączyć routing
33
System plików - rodzaje plików
Kartoteki Zwykłe pliki Link symboliczny, zwykły Pipe Pliki urządzeń – znakowych i blokowych
34
System plików - prawa do plików
Prawo do zapisu, odczytu, wykonania Grupy praw dla właściciela, grupy i pozostałych
użytkowników Zapisywane często ósemkowo, kolejne bity
oznaczają kolejno czytanie, zapis, wykonanie. Kolejne cyfry ósemkowe odnoszą się do właściciela, grupy i pozostałych. Na przykład754 oznacza:7 – czytanie, zapis i wykonanie dla właściciela5 – czytanie i wykonanie dla grupy4 – czytanie dla pozostałych użytkowników
35
System plików - prawa do plików
Sticky bit Dla plików dawniej nakazywał przechowywanie
w swap, obecnie w Linuxie ignorowany Dla kartotek – kasować i zmieniać nazwę
zbiorów w nich może tylko root lub właściciel. Używane np. w kartotece /tmp
36
System plików - prawa do plików
set-UID set-GID uruchomienie pliku przez zwykłego użytkownika
spowoduje nadanie procesowi praw jego właściciela (grupy)
Niezbędne dla niektórych programów, np. passwd – modyfikuje shadow
Niebezpieczne, jeśli użytkownik podstawi własny program (np. shell) z set-UID
37
System plików - prawa do plików
Kolejne bity:4 set-UID2 set-GID1 sticky bit4 odczyt – właściciel2 zapis – właściciel1 wykonywanie – właściciel4 odczyt – grupa2 zapis – grupa1 wykonywanie – grupa4 odczyt – wszyscy2 zapis – wszyscy1 wykonywanie - wszyscy
38
System plików - prawa do plikówInny zapis:chmod [ugoa...][[+-=][rwx]
u – user – właściciel
g- group – grupa
o, a other, all – pozostali
r, w, x – odczyt, zapis, wykonywanie (dostęp do kartoteki)
+ dodaj
- usuń
= usuń wszystkie i pozostaw tylko te podane
39
System plików – montowanie i odmontowanie 40
W dowolnym miejscu hierarchii systemu plików dołączyć możemy kolejny system plików
miejsce, gdzie nowy system plików dołączymy nazywa się punktem montowania.
Punkt montowania musi być kartoteką, po zamontowaniu jej ewentualna zawartość zostanie przesłonięta nową zawartością.
Zamontować można dyskietkę, partycję dysku, cdrom, dysk udostępniany przez sieć itp
System plików – montowanie i odmontowanie 41
Do zamontowana systemu plików służy komenda mount, do odmontowania - umount
Typowe użycie:mount -t typ urzadzenie punkt_montowaniaumount urzadzenieumount punkt montowania
urzadzenie to plik specjalny w /devpunkt to kartoteka, w której chcemy zamontować system plików
System plików – montowanie i odmontowanie 42
typ określa fizyczny format zapisu na montowanym nośniku, może to być fat, vfat, cdfs, ntfs, ufs, ext2, ext3, nfs ....
Odmontować system plików można podając urządzenie lub punkt jego zamontowania. Nie można odmontować systemu plików, jeśli jest używany
System plików – montowanie i odmontowanie 43
Podczas startu systemu automatycznie montowane są systemy wskazane w zbiorze /etc/fstab:
LABEL=/1 / ext3 defaults 1 1none /dev/pts devpts gid=5,mode=620 0 0none /proc proc defaults 0 0none /dev/shm tmpfs defaults 0 0LABEL=/usr1 /usr ext3 defaults 1 2LABEL=/var1 /var ext3 defaults 1 2/dev/hda2 swap swap defaults 0 0/dev/hda7 /home ext3 defaults 1 2
System plików – tworzenie filesystemu 44
fdisk – program do podziału dysku na partycje
fdisk urządzenie (np. /dev/hda)p – wyświetla istniejącą tablicę partycjin – tworzy nową partycjęd - kasuje partycjęl – wyświetla listę znanych typów partycjim – wyświetla helpt – zmienia typ partycjiw- zapisuje tablicę partycji na dyskuq – wyjście bez zapisania zmian
System plików – tworzenie filesystemu 45
mke2fs – program do tworzenia w partycji filesystemu ext2/ext3mkfs – program do tworzenia w partycji filesystemu. Jeśli nie podamy typu, utworzy ext2. Potrafi utworzyć filesystemy msdos, vfat, reiserfs, jfs... Wszystkie, dla których zainstalowano programy mkfs.typUżycie:
mke2fs urzadzenie (np. /dev/hda0)mkfs -t typ urzadzenie
System plików – tworzenie filesystemu 46
fdformat – program do formatowania dyskietki w formacie dosfdformat [-n] urzadzenieurzadzenie to /dev/fd0 (/dev/fd1) lub/dev/fd0d360 (minor = 4)/dev/fd0h1200 (minor = 8).../dev/fd0H1440 (minor = 28)n – bez weryfikacjiw niektórych systemach urządzenia inne niż fd0 trzeba utworzyć przez MAKEDEV
System plików – użyteczne polecenia 47
ls – wyświetla zawartość kartoteki cp – kopiuje pliki i kartotekimv – przenosi plik w inne miejsce lub zmienia nazwę plikumore – wyświetla zawartość pliku znakowegood – wyświetla zawartość pliku ósemkowo, dziesiętnie, szesnastkowo lub znakowo df – wyświetla zajętość systemu plikówdu – wyświetla wielkość podkartotekmount – (bez parametrów) wyświetla zamontowane systemy plików
System plików – użyteczne polecenia 48
touch – tworzy nowy, pusty zbiór cat - wyświetla zawartość pliku lub plików, umożliwia łączenie plikówgrep – wyszukuje wzorcowy łańcuch w plikachtail – wyświetla koniec plikurm – usuwa plik lub kartotekęrmdir – usuwa kartotekę mkdir – tworzy kartotekęln – tworzy symboliczny linkmkfifo – tworzy pipechmod – zmienia prawa plikuchown – zmienia właściciela pliku
ln plik nazwa_linku – tworzy twardy link do wskazanego pliku
ln -s plik nazwa_linku – tworzy miękki link do wskazanego pliku
Twardy link tworzy nowy wpis w kartotece wskazujący na zbiór, musi wskazywać na istniejący plik w tym samym filesystemie, usunięcie oryginału nie spowoduje usunięcia linku
49
? * - zastępują jeden i wiele znaków w nazwie
[abxeo3-8] zastępuje pojedynczy znak jednym z wymienionych w nawiasach(znak '-' podaje przedział znaków)
{ala,ola}.txt – iloczyn kartezjański łańcuchów w nawiasach
. .. - bieżąca kartoteka, nadrzędna kartoteka
50
Pewne znaki mają znaczenia specjalne. Aby to znaczenie specjalne wyłączyć, należy:
poprzedzić go znakiem \
ująć tekst w pojedynczych apostrofach ' ' - wyłącza specjalne znaczenie wszystkich znaków
ująć tekst w podwójnych apostrofach ” ” - wyłącza specjalne znaczenie większości znaków
Uwaga, apostrofy ` ` działają inaczej!
51
Postawy języków shell 52
Jeden z podstawowych programów systemu Unix Interpreter języka poleceń wydawanych w linii
komend lub ze zbioru Klasyczna wersja – sh, odmiany csh, tcsh, bash, ksh W systemach Linux używany jest jako podstawowy
bash - GNU Bourne-Again Shell, kompatybilny z SH
Tworzy interfejs użytkownika do systemu Unix, do jego jądra, dlatego nazywany często powłoką
Postawy języków shell - bash 53
Separator (blank) – jedna lub więcej spacji lub znaków tabulacji Potok (pipeline) – znak | kieruje wyjście z jednego polecenia do wejścia następnego, na przykład: cat moj_list | grep Aniawyświetli te linie w zbiorze moj_list w których występuje wyraz Ania Lista (lists) – jeden lub więcej potoków oddzielonych operatorem ; & && lub ||, zakończonych opcjonalnie przez ; & lub nową linię
Postawy języków shell - bash 54
Potoki oddzielone operatorem ; wykonywane są sekwencyjnie – po skończeniu jednego wykonuje się kolejny
Potoki oddzielone operatorem & wykonywane są równolegle – po uruchomieniu pierwszego wykonuje się kolejny. Będą pracowały równocześnie
pipeline1 && pipeline2 – pipeline2 wykona się tylko wtedy, jeśli pipeline1 zakończy działanie bez błędu (status 0)
pipeline1 || pipeline2 – pipeline2 wykona się tylko wtedy, jeśli pipeline1 zakończy działanie błędem (status <>0)
Postawy języków shell – bash. Polecenia złożone 55
for name [ in word ] ; do list ; doneLista word jest rozwijana, każde wystąpienie przypisywane jest zmiennej name i wykonywana jest lista listPrzykład:
>$ for I in a* ; do file $I ; done
aaa: ASCII textaaa.zip: Zip archive data, at least v2.0 to extractaplik: directory
Postawy języków shell – bash. Polecenia złożone 56
if list; then list; [ elif list; then list; ] ... [ else list; ] fiWykonywana jest lista po if. Jeśli zakończy się sukcesem, wykonywana jest lista po then, w przeciwnym wypadku wykonywane są kolejne elif. Jeśli żadna lista po if i elif nie zakończy się sukcesem, wykonywana jest lista po else.Przykład:>$ if ls | grep -q zip; then echo "jest"; else echo "brak"; fibrak>$ touch aaa.zip>$ if ls | grep -q zip; then echo "jest"; else echo "brak"; fijest
Postawy języków shell – bash. Quoting 57
Pewne znaki i wyrazy mają specjalne znaczenie dla bash. Aby to zmienić, należy użyć 'quoting':znak \ wyłącza specjalne znaczenie następnego znaku. Jeśli następnym znakiem jest nowa linia, to sekwencja taka oznacza kontynuację linii. Dwa kolejne znaki \ oznaczają pojedynczy \Ujęcie sekwencji znaków w parę ' wyłącza specjalne znaczenie wszystkich znaków w tej sekwencjiUjęcie sekwencji znaków w parę “ wyłącza specjalne znaczenie wszystkich znaków w tej sekwencji za wyjątkiem $, ` i \. Znaki * i @ uzyskują nowe znaczenie
Postawy języków shell – bash. Parameters 58
Parameter służy do przechowywania wartości. Może być to nazwa, liczba albo znak specjalny.Zmienna to parameter który jest nazwą. Tworzymy ją:nazwa=[wartosc]Jesli wartosc nie wystąpi, to tworzona jest zmienna, której wartością jest zerowy łańcuchPrzykład:>$Imie=”Ewa”>$echo $ImieEwa
Postawy języków shell – bash. Parameters 59
Positional parameter – określony jedną cyfrą różną od 0 lub kilkoma cyframi. Ich wartościami są kolejne parametry wywołania komendy.Przykład:>$cat -> aaaecho $1:$2:$3>$chmod 777 aaa>$./aaa Nic nie rozumiemNic:nie:rozumiem
Postawy języków shell – bash. Special Parameters 60
? - status ostatnio wykonanego potoku$ - nasz numer procesu0 – nazwa programu, który uruchomił nasz proces
Przykład:>$cat -> aaaecho $0__$1:$2:$3>$chmod 777 aaa>$./aaa Nic nie rozumiem./aaa__Nic:nie:rozumiem
Postawy języków shell – bash. Expansion 61
mkdir /tmp/{kart1,kart2,kart3} tworzy trzy kartoteki o nazwach kart1, kart2, kart3 w kartotece /tmpecho ~uzytkownik wyświetla domyślną kartotekę użytkownika. Bez podania nazwy użytkownika wyświetla domyślną kartotekę aktualnego użytkownika${parameter} – zostaje rozwinięte jako wartość parameter. Nawiasy są konieczne, jeśli po nazwie są znaki, które do niej nie należą, na przykład:>$Imie=Ewa>$echo ${Imie}12Ewa12
Postawy języków shell – bash. Expansion 62
`polecenie` lub $(polecenie) – wykonywane jest polecenie, a to, co wyświetli, staje się częścią linii polecenie, w której konstrukcja została użyta. Na przykład:
>$touch /tmp/{a,b,c,akuku}>$ls /tmpa b c akuku>$cat -> aaaa b c>$rm `cat aaa`>$la /tmpakuku
Postawy języków shell – bash. Przekierowanie wejścia i wyjscia
63
Każdy proces w unixie, jeśli tego nie zmienimy, pobiera dane ze standardowego wejścia (stdin), wysyła na standardowe wyjście (stdout). Ewentualne komunikaty o błędach kierowane są na standardowe wyjście błędów (stderr).W interaktywnym shell stdin to klawiatura, a stdout i stderr to ekran. Te trzy strumienie w sh można przekierować:> przekierowuje stdout< przekierowuje stdinstdin, stdout i stderr mają odpowiednio file descriptor 0, 1 i 2
Postawy języków shell – bash. Przekierowanie wejścia
64
[n]<wordFile descriptor n będzie pobierał dane z pliku word. Jeśli n zostanie pominięte, zostanie przyjęte 0, czyli stdin.
Postawy języków shell – bash. Przekierowanie wyjścia
65
[n]>wordUżycie >> spowoduje dopisanie wyjścia do istniejącej zawartości zbioru.Wyjście do file descriptor n zostaje przekierowane do pliku word. Jeśli n zostanie pominięte, zostanie przyjęte 1, czyli stdout. Na przykład:ps ax >aaa 2>/dev/nullspowoduje wyświetlenie stanu wszystkich procesów i zapisanie tego wydruku w zbiorze aaa. Ewentualne komunikaty o błędach zostaną zniszczone.
Postawy języków shell – bash. Alias 66
Pozwala na zastąpienie słowa ciągiem znaków. Słowo to użyte jako pierwsze w poleceniu zostanie zastąpione tym ciągiem znaków. Używane tylko w trybie interaktywnym.
alias ll='ls -l'unalias ll
alias bez parametrów wyświetla listę zdefiniowanych aliasów.
Postawy języków shell – bash. Operatory arytmetyczne i logiczne
67
i++ i-- ++i –i zwiększenie/zmniejszenie zmiennej i po/przed operacją o 1+ - znak (unary + -)! ~ negacja logiczna i bitowa** potęgowanie+- dodawanie, odejmowanie<< >> przesunięcie bitowe w lewo i prawo<= >= < > porównanie== != równość i nierówność
Postawy języków shell – bash. Operatory arytmetyczne i logiczne
68
= *= /= %= += -= <<= >>= &= ^= |= przyporządkowanie wartości& ^ | bitowe and, xor, or&& || logiczne and, orexpr1?expr2:expr3 obliczenie warunkowe – jeśli expr1 = 1, to wykonywane expr2, jeśli 0, to expr3expr1 , expr2 wyrażenie przecinkowe – wykonywane kolejno expr1, expr2, ale pozostaje tylko wynik expr2
Postawy języków shell – bash. Zadania (jobs) 69
Wykonując potok shell uruchamia zadanie. Może ono byś wykonywane w pierwszym planie (foreground) lub w tle (background). ^z przeniesienie zadania do background (jego wykonywanie zostanie wstrzymane)jobs – wyświetlenie zadań w backgroundfg – przeniesienie zadania do foregroundbg %n – uruchomienie wstrzymanego zadania w backgroundkill %n – usunięcie zadania z background
Postawy języków shell – bash. Historia poleceń 70
Bash pamięta historię wydawanych poleceń (domyślnie 1000) w zbiorze ~/.bash_history!n !-n, !! – powtórz linię n, bieżącą minus n, poprzednią!lancuch – powtórz linię zaczynającą się od łańcucha!?lancuch[?] - powtórz linię zawierającą łańcuch^lancuch1^lancuch2^ powtórz ostatnią linię, zastąp lańcuch1 łańcuchem2klawisze starzałek w górę i w dół wyświetlają kolejne polecenia
Postawy języków shell – bash. Funkcje wbudowane 71
break [n] opuść pętlę for, while, until, select (lub n poziomów)cd dir – zmień kartotekęcontinue n – kontynuuj wykonywanie for, while, until (n – który poziom w górę)echo [arg ...] wyświetl argumenty oddzielone spacjami, zakończone nową liniąexit [n] zakończenie pracy shell z kodem nhelp [wzór] – podpowiedź.history – wyświetla historię poleceńpwd – wyświetl bieżącą ścieżkę
Postawy języków shell – bash. Funkcje wbudowane 72
test expr lub [ expr ] - wylicza wyrażenie expr i zwraca wartość 0 lub 1! expr - negacjawyrazenie1 -a wyrazenie2 – and (-o - or)lancuch1 = lancuch2 łańcuchy równe (!= - nierówne)stala1 -eq stala2 – stałe równe (-ge, -gt, -le, -lt, -ne)plik1 -ef plik2 – plik1 nowszy (-ot – starszy) niż plik2-c plik – istnieje plik i jest znakowy (-d – kartoteka, -e – po prostu istnieje)-r plik – istnieje i jest do odczytu (-w – do zapisu)
Postawy języków shell – bash. Przykład 73
#!/bin/sh
echo "*******************************************"echo -e "Poczatek archiwizacji `date`"
cd /home/automaty/kopie
# usun stare kopie, zostanie jeden zestaw, z# ostatniego przebiegurm *.gz
NAME=fksa`date +%d%m%y`echo $NAMEtar -cf $NAME /reszta1/fkdbfsa/*.dbf /reszta1/fkdbfsa/*.mem 2>/dev/nullgzip $NAME
Postawy języków shell – bash. Przykład 74
echo Skladowanie na tasme:
tar -cvf /dev/nst0 *.gz 2>/dev/nullmt -f /dev/nst0 rewoffl
# przeslij ftp do innego komputeraftp alpha.huta
echo -e "Koniec archiwizacji `date`"
Uruchamianie i zatrzymywanie systemu 75
Pierwszy uruchamiany program - manager bootowania (boot loader).
Lilo, GNU Grub – używane w LinuxiePrzekazują sterowanie do jądra systemu (lub innego systemu operacyjnego)
zbiory konfiguracyjne - /etc/lilo.conf, /etc/grub.confzmiany w lilo.conf trzeba zapisać poleceniem /sbin/lilo
Grub jest nowszy, ma większe możliwości
Uruchamianie i zatrzymywanie systemu 76
Pierwszym procesem uruchamianym po załadowaniu jądra jest init. Jest on ojcem wszystkich innych procesów
Odczytuje plik /etc/inittab opisujący jakie procesy uruchomić
Linia zawierająca initdefault podaje, w jakim trybie uruchomić system, np:id:5:initdefault:
Uruchamianie i zatrzymywanie systemu 77
0 – halt (zatrzymanie systemu, nie używac w inittab)1 – single user – tryb jednoużytkownikowy2 – wieloużytkownikowy, bez NFS3 – wieloużytkownikowy4 – nie używany5 – X116 – reboot (przeładowanie systemu)tryby 7 – 9 są poprawne, ale nie używaneZmiana trybu pracy – tellinit n n = 0, 1, 2, 3, 5 lub 6 – przełączenie do innego trybun= s lub S – do trybu 1n = Q lub q - ponowne odczytanie inittab
Uruchamianie i zatrzymywanie systemu 78
W linuxie skrypty startowe są w kartotece /etc/rc.dPierwszym uruchamianym skryptem jest rc.sysinit. Inicjuje on nazwę komputera, urządzenia, parametry jądra, ustawia czas systemowy, montuje swap i filesystemy, łąduje moduły jądra itp.Po jego skończeniu uruchamiane są skrypty w kartotece /etc/rc.d/rcn.d (n to numer poziomu). Uruchamiane są tylko te, których nazwa zaczyna się od litery S. Skrypty te to linki do plików w kartotece /etc/rc.d/init.d
Uruchamianie i zatrzymywanie systemu 79
Skrypty w kartotece /etc/rc.d/init.d pozwalają na zatrzymanie, uruchomienie, restart, sprawdzenie stanu zainstalowanych w systemie składników oprogramowania:# ./syslog stopShutting down kernel logger: [ OK ]Shutting down system logger: [ OK ]# ./syslog startStarting system logger: [ OK ]Starting kernel logger: [ OK ]#./syslog statussyslogd (pid 571) is running...klogd (pid 575) is running..
Uruchamianie i zatrzymywanie systemu 80
Skrypty startowe systemu czytają konfigurację ze zbiorów w /etc/sysconfig. Są tam informacje o strefie czasowej, języku, układzie klawiatury, wyglądzie konsoli, ustawieniach sieci itp.Są tam również skrypty do konfigurowania urządzeń, na przykład interfejsów sieciowych
Uruchamianie i zatrzymywanie systemu 81
Procesy uruchamiane podczas startu systemu mogą zakończyć swoje działanie po wykonaniu swojego zadania, albo pracować przez cały czas.Procesy które działają ciągle, świadcząc pewne usługi nazywamy daemonami.Niektóre procesy obsługujące usługi internetowe, które są potrzebne czasami uruchamiane są na żądanie przez superdaemon xinetd (inetd)
Monitorowanie stanu systemu 82
ps – procesy w systemiew – aktywni użytkownicytop – najaktywniejsze procesyvmstat – pamięć wirtualna, plik wymiany, obciążenie we/wy, procesoralsof – otwarte plikidf – zamontowane filesystemy i ich zajętośćdu – rozmiar podkartoteklast – historia logowania użytkowników (zbiór wtmp)
Monitorowanie stanu systemu 83
dmesg - komunikaty jądra systemulsmod – załadowane moduły jądralspci – sprzęt przyłączony do szyny PCIlsusb – urządzenia przyłączone do USBfilesystem /proc – informacje o procesach, zajętych zasobach, sprzęcie itp.
Monitorowanie stanu systemu 84
find – wyszukuje pliki o wskazanej nazwie, wielkości, czasie utworzenia, właścicielu (grupie), bez właściciela (grupy), prawach. Umożliwia dla znalezionych plików wykonanie dodatkowych operacji, na przykład:
find . -mtime +14 -name "*.gz" -exec rm -f {} \;
wyszukaj w bieżącej kartotece pliki modyfikowane (utworzone) dawniej niż 14 dni, z nazwą *.gz” i usuń je.
Funkcje sieciowe 85
Sterowniki urządzeń sieciowych ładowane jako moduły jądra, przez skrypt:
/etc/rc.d/rc.sysinit
Sterowniki użytkownika zdefiniowane w:/etc/sysconfig/modules
Funkcje sieciowe 86
/etc/sysconfig/networkuruchamiany przez /etc/rc.d/rc.sysinit, ustawia zmienne środowiskowe, czytane później przez skrypty startowe /etc/rc.d/init.d/network i skrypty w /etc/sysconfig/network-scripts
NETWORKING=yesHOSTNAME=kempnyGATEWAY=195.164.200.62GATEWAYDEV=eth0FORWARD_IPV4="yes"
Funkcje sieciowe 87
/etc/sysconfig/network-scriptsskrypty startowe i konfiguracja interfejsów sieciowych
$>more ifcfg-eth0# Broadcom Corporation|BCM4401 100Base-TDEVICE=eth0BOOTPROTO=staticBROADCAST=195.164.200.255HWADDR=00:02:E3:3A:52:FCIPADDR=195.164.200.52NETMASK=255.255.255.0NETWORK=195.164.200.0ONBOOT=yesTYPE=Ethernet
Funkcje sieciowe 88
Interfejs sieciowy może mieć więcej niż jeden adres:
$>more ifcfg-eth0:0# Broadcom Corporation|BCM4401 100Base-TDEVICE=eth0:0BOOTPROTO=staticBROADCAST=195.164.199.255IPADDR=195.164.199.5NETMASK=255.255.255.0NETWORK=195.164.199.0ONBOOT=yesTYPE=Ethernet
Funkcje sieciowe 89
Ifconfig – programuje interfejsy sieciowe, wyświetla ich ustawienia i statystyki:
ifconfig eth0eth0 Link encap:Ethernet HWaddr 00:02:E3:3A:52:FC inet addr:195.164.200.52 Bcast:195.164.200.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:152 errors:0 dropped:0 overruns:0 frame:0 TX packets:132 errors:0 dropped:0 overruns:0 carrier:4 collisions:0 txqueuelen:1000 RX bytes:20858 (1.9 Mb) TX bytes:988724 (965.5 Kb) Interrupt:3
Funkcje sieciowe 90
Ifconfig – programuje interfejsy sieciowe, wyświetla ich ustawienia i statystyki:
ifconfig eth0:0 195.164.199.52 netmask 255.255.255.0
Tworzy wirtualny interfejs eth0:0 i przypisuje mu adres IP 195.164.199.52 z maską 255.255.255.0
Funkcje sieciowe 91
Ścieżka default i ścieżki do sieci przyłączonych bezpośrednio do interfejsów tworzone są przy starcie systemu lub po zaprogramowaniu nowego interfejsuPozostałe ścieżki dodać (usunąć) możemy poleceniem route:route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
Funkcje sieciowe 92
Wyświetlenie tablicy routingu – polecenie route lub netstat -rn
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface195.164.199.0 * 255.255.255.0 U 0 0 0 eth0195.164.200.0 * 255.255.255.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0127.0.0.0 * 255.0.0.0 U 0 0 0 lodefault 195.164.200.250 0.0.0.0 UG 0 0 0 eth0
Funkcje sieciowe 93
Dynamiczne tworzenie tablicy routingu – daemony routed (protokół RIP) i gated (protokoły RIP, BGP, EGP, OSPF)
Nie uruchamiać bez wyraźnej potrzeby!!
Aby Linux pracował jako router, potrzebny wpis FORWARD_IPV4="yes" w /etc/sysconfig/network. Czasami ten wpis jest ignorowany, wtedy:
echo 1 > /proc/sys/net/ipv4/ip_forward
Funkcje sieciowe 94
$> cat /etc/host.conforder hosts,bind
$> cat /etc/resolv.confdomain stanpol.com.pl#nameserver 195.164.200.3nameserver 195.164.200.62
W /etc/resolv.conf zdefiniowane jest nazwa domeny DNS. Polecenie domainname wyświetla i ustawia nazwę domeny NIS/YP !
Funkcje sieciowe 95
$> cat /etc/hosts127.0.0.1 localhost.localdomain localhost
$> cat /etc/servicestelnet 23/tcptelnet 23/udp# 24 - private mail systemsmtp 25/tcp mailsmtp 25/udp mailtime 37/tcp timservertime 37/udp timserver
Funkcje sieciowe 96
netstat – stan połączeń sieciowych. Z opcjami alp wyświetla, które programy słuchają na portachping - diagnostyka sieci, wysyła ramki ICMP. Opcje - -n bez DNS, -f flood, -s rozmiar ramki, -b na adres broadcast, -R zapis trasytraceroute, mtr - wyświetlenie trasy ramek. Traceroute używa domyślnie UDP (można zmienić na ICMP)nslookup, host – konwersja adresów IP i nazw z użyciem DNS
Funkcje sieciowe 97
ipchains – filtrowanie pakietów z dokładnością do interfejsu, adresów nadawcy i odbiorcy, portówiptables – firewallarpwatch – śledzi przyporządkowanie adresów IP adresom MACnmap – narzędzie do skanowania zasobów sieciowych i wykrywania luk w bezpieczeństwieettercap – sniffer, man in the middle – czasami przydatny dla administratoraarp – wyświetla i modyfikuje tablicę ARP
Funkcje sieciowe 98
Serwery sieciowe działają jako samodzielne daemony, albo uruchamiane na żądanie przez daemon xinetdsendmail – poczta elektroniczna SMTPapache – serwer WWWsquid – serwer w3cachevuftpd, vsftpd – serwery ftptftp – serwer tftppop3d, imap.d – serwery po3, imap4lpd, cups – serwery drukareksamba – serwer (i klient) plików w sieciach Microsoftntpd – serwer czasutelnetd, sshd – serwery telnet, ssh ....
Kopie bezpieczeństwa systemu 99
Dump – składuje filesystem lub jego część na taśmę (opcjonalnie do zbioru lub pipe)Poziomy 0-9. 0 - składuj wszystkie pliki, n<>0 składuj tylko te pliki, które zostały utworzone lub zmienione od ostatniego dump niższego poziomuZbiór /etc/dumpdates zawiera informacje które filesystemy, kiedy i z jakim poziomem były składowaneTypowe użycie dump -0u -f /dev/st0 /usr
Kopie bezpieczeństwa systemu 100
restore – odtwarza filesystem lub pojedyncze zbiory z kopii utworzonej przez dumpz opcją -i wchodzi w tryb interaktywny umożliwiając odtworzenie pojedynczych zbiorówTypowe użycie:mke2fs /dev/sda1mount /dev/sda1 /mntcd /mntrestore rf /dev/st0
Jeśli były wykonywane częściowe dumpy, najpierw należy odtworzyć dump poziomu 0, później kolejno dumpy wyższych poziomów
Kopie bezpieczeństwa systemu 101
tar – program do składowania zbiorów na taśmę i odtwarzania ich. Może też składować do pliku.Użycie:tar opcje zbiory_do skopiowaniatypowe opcjec – utwórz archiwumx – odtwórz zbiory z archiwumt – wyświetl zbiory z archiwumv – verbose, wyświetlaj co jest wykonywanef – zbiór z archiwum (domyślnie /dev/rmt0)C kartoteka – odtwórz pliki do wskazanej kartoteki
Kopie bezpieczeństwa systemu 102
Typowe użycie:
tar -cvf /tmp/kopia /etcw zbiorze /tmp/kopia zostanie utworzone archiwum wszystkich zbiorów z kartoteki (i podkartotek) /etc
tar -vxf /tmp/kopiaw bieżącej kartotece odtworzy wszystkie zbiory z archiwum w /tmp/kopia
Kopie bezpieczeństwa systemu 103
Polecenia tar i dump mogą opcjonalnie poddawać pakowane zbiory kompresji. Jeśli składowanie odbywa się do zbioru, lepiej jest jednak poddać kompresji archiwum, jednym z dostępnych programów:compress, gzip, bzip2, zip, arj
Kopie bezpieczeństwa systemu 104
Polecenia tar i dump w przypadku składowania na taśmę działają powoli. Niewielkie ilości danych wygodnie jest zarchiwizować do pliku na dysku lokalnym i przesłać na dysk innego komputera (samba, nfs, ftp), składując na taśmie jedynie okresowe kopie.Składowanie najlepiej uruchamiać daemonem cronWażnym jest opracowanie i opisanie szczegółowych procedur wykonywania kopii bezpieczeństwa. Jest to bardzo przydatne podczas odtwarzania systemu po awarii.
Edytory ed, vi - ed 105
Ed – edytor liniowy
operuje zawsze na pojedynczej linii tekstuoperuje na kopii zbioru w buforze, oryginalny zbiór
jest modyfikowany dopiero podczas zapisu buforadwa tryby pracy – komend i wprowadzaniaPrzydatny do obróbki bardzo dużych zbiorów, do
wielokrotnej zamiany tekstu w dużej części zbioru lub kiedy nie jest dostępny tryb pełnoekranowy (niektóre awarie systemu)
użycie – ed plik
Edytory ed, vi - ed 106
W trybie wprowadzania wszystko, co wprowadzimy z klawiatury jest wpisywane do pliku
wejście w tryb wprowadzania: i – przed zaadresowaną linią, a – za zaadresowaną linią
wyjście z trybu wprowadzania i powrót do trybu komend – linia zawierająca tylko jedną kropkę
Edytory ed, vi - ed 107
W trybie komend wszystko, co wprowadzimy z klawiatury traktowane jest jako polecenia.
Adresowanie linii:. bieżąca linia$ ostatnia linian linia n (liczona od 1)- poprzednia linia (-n – n-ta poprzednia linia)+ następna linia (+n – n-ta kolejna linia)/re/ (?re?) następna (poprzednia) linia zawierająca regular expression
Zakres linii – dwa adresy linii oddzielone znakiem ,
Edytory ed, vi ed 108
Przykładowe komendy(.)a – dodaj tekst za zaadresowaną linią(.,.)d – usuń linie z zakresu(.)i - dodaj tekst przed zaadresowaną linią(.,.)s/wzor1/wzor2/ – w podanym zakresie w każdej linii zamienia pierwsze wystąpienie wzor1 na wzor2.(.,.)s/wzor1/wzor2/g – jak wyżej, ale zamienia wszystkie wystąpienia w każdej linii z zakresu.
Edytory ed, vi - ed 109
Podstawowe komendy
q – opuszczenie edytoraw [plik] - zapisanie zmian, opcjonalnie do innego pliku r plik -wczytanie zbioru i dopisanie za bieżącą linią
Edytory ed, vi - ed 110
Przykładowa sesja
>$ cd /etc>$ ed inittab1666/\:initdefaultid:5:initdefault:s/5/3/w1666q>$
Edytory ed, vi - vi 111
vi - edytor ekranowy (vim, vi IMproved) potężne możliwości rozumie składnię wielu języków programowania możliwość pracy w trybie liniowym makropolecenia pracuje na każdym terminalu ze sterowaniem
kursorem
Edytory ed, vi - vi 112
Uruchomienie:vi plik
:q! wyjście z anulowaniem zmian:wq lub ZZ – zapis zmian i wyjście:r zbiór wczytanie zbioru i dopisanie za bieżącą linią:w [plik] zapisanie zmian, opcjonalnie w innym pliku
Edytory ed, vi - vi 113
tryb wprowadzania tekstu tryb komend tryb liniowy
Edytory ed, vi - vi 114
W trybie liniowym można wprowadzać polecenia edytora ed
Wejście w tryb liniowy – poprzedzenie polecenia znakiem :
Przykłady::1,45s/zmienna_c/stala_c/g w liniach 1 – 45 zamieni łańcuch zmienna_c na stala_c:1,.d usunie linie od pierwszej do bieżącej:= wyświetli numer bieżącej linii:5 przeniesie kursor do linii 5
Edytory ed, vi - vi 115
Poruszanie się po tekście – strzałki lub klawisze:k – w góręh – w lewo l – w prawoj – w dół
w niektórych wersjach vi poruszanie się w górę i w dół nie działa w trybie wprowadzania tekstu
Wyszukiwanie tekstu:/wzor przeniesie kursor na początek wzoru. Kolejne pojedyncze / wyszukają jego kolejne wystąpienia
Edytory ed, vi - vi 116
Podstawowe komendyi – wejdź w tryb wprowadzania tekstu, ustaw kursor przed bieżącym znakiem (a – za nim, I – na początku linii, A – na końcu linii)esc – wyjście z trybu wprowadzania tekstur – zastąp jeden znak nowym[n]s – zastąp n znaków nowymi, pozostań w trybie wprowadzania[n]x – usuń znak (n znaków) pod kursorem (X – na lewo od niego) zapamiętaj je w buforze. powtórz ostatnia komendę:h – wyświetl help
Edytory ed, vi - vi 117
Podstawowe komendy
[n]dd usuń n linii (zapamiętaj je w buforze)[n]yy skopiuj do bufora n liniip - wstaw zawartość bufora pod bieżącą linię (P – nad nią). Jeśli w buforze są znaki usunięte komendą x, to wstaw zawartość bufora za kursorem (P - przed)
Edytory ed, vi – vi 118
Makropolecenia
Zapamiętanie makropolecenia:q{rejestr}ciag komend do zapamietaniaqjako rejestr może być użyta dowolna litera a -zWykonanie makropolecenia[n] @{rejestr}wykonane zostaną wszystkie zapamiętane poprzednio w rejestrze polecenia. n wskazuje, ile razy makropolecenie ma zostać wykonane
Pakiety rpm 119
Klasyczny sposób instalacji oprogramowania w Unix -programy w wersji źródłowej, spakowane tar>$ tar -vxf pakiet.tar>$ cd pakiet>$ ./configure>$ make>$ make install>$ make clean
Podstawowa wada – po zainstalowaniu trudno zapanować, gdzie zostały skopiowane poszczególne komponenty
Pakiety rpm 120
Pakiety rpm zawierają archiwum plików i dane pomocnicze używane do instalowania i usuwania plików z archiwum
Po zainstalowaniu pakietu w bazie danych pamiętana jest informacja o zainstalowanych składnikach – gdzie zostały zainstalowane, jaka powinna być ich suma MD5 i atrybuty – umożliwia to dokładne odinstalowanie oprogramowania i sprawdzenie jego zgodności z oryginałem
Pakiety rpm 121
Pakiety rpm występują w dwu wariantach, zawierających skompilowane, binarne programy do zainstalowania (binary rpm) lub programy źródłowe i zasady ich kompilacji (source rpm)
Do zarządzania pakietami rpm służy program rpmBaza danych zainstalowanych pakietów przechowywana jest w /var/lib/rpm
Pakiety rpm 122
Instalowanie nowych pakietówrpm {-i|--install}[install-options] PACKAGE_FILE ...
Uaktualnianie pakietów:rpm {-U|--upgrade}[install-options] PACKAGE_FILE ...
PACKAGE_FILE może być podane jako URL - http lub ftp.
Ważniejsze opcje:--force – wymuszaj instalację nawet gdy jest konflikt z innymi pakietami--nodeps – nie sprawdzaj zależności od innych pakietów
Pakiety rpm 123
Usuwanie pakietówrpm {-e|--erase}[--nodeps] [--test] PACKAGE_FILE ...
--test – nie usuwaj pakietu, symuluj usuwanie
Pakiety rpm 124
Pytania o pakiety rpm {-q|--query} [select-options] [query-options]
Ważniejsze select-options:PACKAGE_FILE – zainstalowany pakiet o tej nazwie-all – wszystkie zainstalowane pakiety-f PLIK – pakiet do którego należy PLIK-p PACKAGE_FILE nie zainstalowany pakiet o tej nazwieWażniejsze query-options:-i, --info – podaj nazwę, wersję i opis pakietu-l, --list – wyświetl pliki w pakiecie
Pakiety rpm 125
Pytania o pakiety
Przykład:rpm -q -all -i |grep Name
wyświetli nazwy wszystkich zainstalowanych pakietów
rpm -q ethtool -i
wyświetli informacje o zainstalowanym pakiecie ethtool
Pakiety rpm 126
Weryfikacja pakietów rpm {-V|--verify} [select-options] [verify-options]
select-options jak przy query, verify-options umożliwia wyłączenie niektórych sprawdzeń
Sprawdza rozmiar, sumę MD5, pozwolenia, typ, właściciela i grupę każdego pliku z pakietu porównując z zapamiętaną w bazie danych.Przykład:rpm -V -f /etc/inittab..5....T c /etc/inittabS.5....T c /etc/rc.d/rc.local
Pakiety rpm - yum 127
yum [opcje] [komenda] pakiet...]komendy:installupdate (upgrade)remove (erase)localinstall, localupdate (instaluj z lokalnego rpm, ewentualne zależności z repozytorium)
Interfejsy graficzne 128
Protokół X opracowano w połowie lat 80, pierwotnie dla Unix
Obecnie wersja X11R6.8.2Architektura klient-serwerInaczej niż w Windows, klient i serwer mogą komunikować się przez sieć
Serwer obsługuje ekran, klientem jest aplikacja, która z niego korzysta
Interfejsy graficzne 129
Serwer:
Wyświetla informację na ekranieOdpowiada na pytania klienta Wysyła komunikaty o błędachWysyła komunikaty o zdarzeniachObsługuje mysz, klawiaturę i ekranTworzy i zamyka okienka, wyświetla informacje w okienkach
Interfejsy graficzne 130
Klient:
Wysyła polecenia do serweraOdbiera informacje o zdarzeniach od serwera (np. o kliknięciu myszką)
Odbiera informacje o błędach od serwera
Interfejsy graficzne 131
Konfiguracja Xserwera w zbiorze /etc/xorg.conf (dawniej - /etc/X11/XF86config)
Opisuje:monitor (typ, częstotliwości odchylania)mysz (liczba klawiszy, rolka)klawiaturę (liczba i układ klawiszy, wersja językowa)kartę wideosposób korzystania z czcionek
Interfejsy graficzne 132
Czcionki obsługuje serwer czcionek, xfs
Konfiguracja xfs w zbiorze /etc/X11/fs/config
Komunikacja pomiędzy xfs i X serwerem poprzez sieć
Interfejsy graficzne 133
Serwer czcionek uruchamiany jest skryptem /etc/rc.d/init.d/xfs
X-serwer uruchamia skrypt /usr/X11R6/bin/startx
Startx ustawia konfigurację (zbiory /etc/X11/xinit/xinitrc i .xinitrc), po czym uruchamia program binarny /usr/X11R6/bin/xinit
Interfejsy graficzne 134
Managery windows – programy zarządzające oknami w X serwerze
FVWM, AfterStep, Enlightenment, IceWM, Sawfish...Umożliwiają zmianę tła, wyglądu okien itp.
Interfejsy graficzne 135
Managery pulpitu – programy zapewniające pełniejszy interfejs do systemu operacyjnego, zawierają własne wbudowane narzędzia i aplikacje
KDE i Gnome
Interfejsy graficzne 136
KDE – nowoczesny manager pulpitu utworzony w QTZawiera własny manager okien – kwmPosiada przeglądarkę WWW, wbudowany help, przeglądarkę PDF, HTML, klienta poczty i wiele innych
Przetłumaczony na ponad 50 języków
Interfejsy graficzne 137
GNOME – nie posiada własnego managera okien, najczęściej używany jest Sawfish, ale działa też z innymi (Icewm, enlightenment)
Zawiera własny manager okien – kwmZdobywa coraz większą popularnośćDo współpracy z GNOME powstaje coraz więcej aplikacji