Instalacja,administracja i zastosowania systemu cz.1





Wprowadzenie



1.1 Podstawowe własnosci systemu
Linux jest nowoczesnym, wielozadaniowym, wielouzytkownikowym systemem operacyjnym podobnym do systemu UNIX. Posiada miedzy innymi:
• prawdziwa wielozadaniowosc (preemptive multitasking)
• ochrone pamieci (jeden proces nie moze uszkodzic innego procesu ani tym bardziej systemu)
• zaawansowany system plików (długie nazwy, wielkosc do 4TB) • wbudowana obsługe wielu protokołów sieciowych (TCP/IP, IPX, SMB, Appletalk, AX.25)
• wielowatkowosc
Pod wzgledem wydajnosci, szybkosci i stabilnosci smiało konkuruje z kosztownymi komercyjnymi
systemami operacyjnymi. Ponadto, duza jego zaleta jest pełna dostepnosc kodu zródłowego. Bazujac swoje rozwiazania na Linuxie nie inwestuje sie w zamknieta technologie, uzalezniona od łaski i niełaski jednej firmy, lecz w otwarty system, do którego wiele firm jest w stanie zapewnic wsparcie i doradztwo. Dodatkowym atutem Linuxa jest to, ze działa na wielu platformach sprzetowych: w tej chwili pełne dystrybucje dostepne sa na procesory Intel x86, DEC Alpha (21064 i 21164), SPARC, MIPS, Motorola 680x0 PowerPC, ARM oraz PA-RISC.
Warto pamietac o tym, ze nazwa Linux dotyczy wyłacznie jadra systemu, zas jadro z reszta oprogramowania niezbednego do pracy systemu okresla sie mianem dystrybucji. Bardziej znane dystrybucje to np. RedHat, Mandrake, Slackware. Linux jest dostepny za darmo, na licencji GPL (General Public Licence). Oznacza to w skrócie, ze mozna go stosowac takze do celów komercyjnych, lecz jezeli chce sie go sprzedawac (ew. tworzac zmodyfikowane wersje), trzeba udostepnic równiez kod zródłowy. Istotne jest, ze to wymaganie nie dotyczy programów pisanych pod Linuxa – a wiec mozna stworzyc np. system finansowo – ksiegowy i sprzedawac go jak dowolne inne oprogramowanie.

1.2 Rys historyczny
Linux został stworzony przez Linusa Torvaldsa na bazie publicznie dostepnej wersji systemu UNIX na komputery PC o nazwie MINIX. Pierwsze jadro systemu zostało opublikowane w sieci wraz z zaproszeniem do współpracy w roku 1991. Samo jadro systemu, bez programów uzytkowych nie nadaje sie do pracy. Dopiero uzupełnienie jadra o programy uzytkowe tworzy system operacyjny. Pierwsze programy rozpowszechniane z jadrem systemu zostały zapozyczone z projektu GNU (GNU’s Not Unix) prowadzonego przez FSF (Free Software Foundation). Od czasu opublikowania Linux rozwija sie bardzo dynamicznie. W skrócie kolejne etapy rozwoju mozna strescic w nastepujecych punktach
• adaptacja darmowego oprogramowania z innych systemów operacyjnych
, • powstanie projektów których pierwotna platforma jest Linux,
• rozwój oprogramowania komercyjnego.

1.3 Zródła informacji o systemie
. Obok publikacji ksiazkowych oraz czasopism dotyczacych Linux’a istnieje wiele materiałów rozpowszechnianych elektronicznie. Integracja rozproszonej w ielu miejscach dokumentacji systemu zajmuje sie inicjatywa LDP (Linux Documentation Project. Witryna internetowa projektu mozna odwiedzic łaczac sie z adresem http://www.ldp.org/ lub jego polskim „odbiciem lustrzanym” http://www.ldp.org.pl/. Mozna tam znalezc m. in.
• Pliki HOWTO, polskie tłumaczenia – projekt JTZ http://www.jtz.org.pl,
• ksiazki Linux Installation and Getting Started , The Linux System Administrators’
Guide , The Network Administrators’ Guide , The Linux Programmer’s Guide , The Linux Kernel , Linux Kernel Module Programming Guide
• strony man,
• pliki info,

1.4 Zródła oprogramowania
Zródeł oprogramowania pod Lnux’a jest w internecie bez liku. Ponizej wymienie kilka najwazniejszych
• http://www.sunsite.icm.edu.pl/pub/Linux,
• http://freshmeat.net/,
• http://linux.com/,
• http://slashdot.org/,
• http://sourceforge.net/.

1.5 Instalacja
Instalacja kazdej dystrubucji składa sie z nastepujacych etapów:
• przydzielenie przestrzeni dyskowej,
• wybór oprogramowania i jego kopiowanie na dysk,
• ustalenie hasła uzytkownika root,
• konfiguracja startu systemu.
Opcjonalnie (choc w zasadzie jest to juz kanonem) moga byc wykonane nastepujace czynnosci • lokalizacja systemu (wybór strefy czasowej, jezyka),
• konfiguracja interfejsu graficznego X Windows.
• konfiguracja usług (np. WWW, FTP) uruchamianych przy starcie systemu.

1.5.1 Podstawowe wiadomosci o dyskach twardych
Urzadzenia do zapisu imformacji dzielimy na znakowe lub blokowe. W urzadzeniach znakowych w jednym cyklu przesyłany jest jeden bajt danych. Do typowych urzadzen znakowych zaliczyc nalezy port szeregowe oraz drukarki. Z kolei w urzadzeniach blokowych w jednym cyklu przesyłany jest zbiór znaków. W komputerach PC rozmiar bloku 512 znaków. Dostep do danego bloku danych uzyskuje sie poprzez podanie jego numeru. Z logicznego punktu widzenia urzadzenie blokowe jest widziane jako zestaw bloków o stałej długosci. Do klasycznych
urzadzen blokowych naleza dyskietki oraz dyski twarde. Bloki danych na urzadzeniach dyskowych nazywane sa sektorami. Zazwyczaj dane zapisane na urzadzeniach blokowych zapisane w postaci plików, które z kolei moga byc umieszczane w katalogach. Istnieje wiele sposobów translacji akcji podejmowanych na katalogach i plikach na akcje podejmowane na urzadzeniu blokowym. Struktura posredniczaca miedzy iluzja plików i katalogów a rzeczywistym interfejsem zapisu pojedynczych bloków jest system plików. Zadaniem systemu plików jest wiec odpowiednia organizacja danych na urzadzeniu. Najbardziej znanymi przykładami systemów plików sa: system oparty FAT (ang. File Allocation Table) stosowany MS DOS oraz jego ulepszona wersja pozwalajaca na zapis długich nazw, tzw. VFAT stosowany w systemach Windows.
Systemy operacyjne obsługuja jeden lub kilka dla zachowania zgodnosci z poprzednimi wersjami systemów plików. Linux jest tutaj chlubnym wyjatkiem. Lista obsługiwanych systemów plików jest bardzo długa: minix, ext, ext2, xiafs, hpfs, msdos, umsdos, vfat, proc, nfs, iso9660, smbfs, ncpfs, smbfs, affs, ufs, romfs, sysv, xenix, ntfs, reiserfs, ext3. System plików moze byc utworzony na całym urzadzeniu blokowym (np. dyskietce) lub na jego czesci (partycja dysku twardego). W systemach czerpiacych swe korzenie w UNIX’ie obowiazue sztywna struktura katalogów. Oznacza to, ze system operacyjny i programy spodziewaja sie znalezc w okreslonych katalogach okreslone pliki. Najczesciej miejsca gdzie poszukuja plików sa stałymi kompilacji na trwałe „zaszytymi” w program. Drzewo katalogów rozpoczyna sie od katalogu głównego /. W katalogu głównym znajduje sie z góry zdefiniowana struktura podkatalogów. Najwazniejsze z nich to


boot – jadro systemu,
bin – binaria niezbedne do działania systemu,
sbin – podstawowe narzedzia administtratora,
lib – podstawowe biblioteki,
dev – pliki specjalne urzadzen,
home – katalogi uzytkowników systemu,
usr – aplikacje,
var – dane pomocnicze, logi systemowe,
tmp – katalog na pliki tymczasowe.
W Linux’ie nie ma pojecia „napedów” i przypisanych im liter. Aby uzyskac dostep do danych zapisanych na okreslonym urzadzeniu nalezy skojarzyc je z katalogiem. Proces tworzenia powiazania urzadzenia ! katalog nazywamy montowaniem. Realizuje je komenda mount o nastepujacej składni
mount -t
mount -t -o loop
Parametry , i oznaczaja: identyfikator systemu plików na urzadzeniu, plik specjalny odpowiadajacy danemu urzadzeniu oraz katalog w którym ma byc widoczna zawartosc urzadzenia. Przed instalacja systemu musimy zapoznac sie z konwencja nazywania urzadzen w Linux’ie. Dostep do urzadzen w Linux’ie uzyskujemy przez zapis i/lub odczyt ze specjalnego pliku umieszczonego w katalogu /dev/. Kazde urzadzenie ma swój własny plik. Urzadzenia odpowiadajace dyskietkom maja przedrostek fd?. Na przykład fd0 odpowiada pierwszej stacji dysków, fd1 – drugiej, itd. Podobnie sprawa ma sie z dyskami twardymi. Urzadzenia odpowiadajace dyskom twardym IDE maja przedrostek hd?. Pierwszy dysk to /dev/hda, drugi – dev/hdb, itd. Dla dysków SCSI przedrostek ma postac sd?. Dostep do kolejnych partycji na dysku uzyskujemy uzupełniajac nazwe urzadzenia dysku numerem partycji. Na przykład dla dysku /dev/hda pliki specjalne odpowiadajace kolejnym partycjom maja postac: /dev/hda1, /dev/hda2, /dev/hda3 itd. Na jednym dysku moga byc utworzone 4 partycje główne (Primary). Gdy 4 partycje sa niewystarczajace, nalezy zamiast jednej partycji głównej nalezy utworzyc partycje rozszerzona (Extended). Pełni ona role pojemnika na inne partcyje. Partycje załozone wewnatrz partycji rozszerzonej nosza nazwe partycji logicznych (Logical ). Przydzielane im sa numery wieksze badz równe 5.
Kazda z partycji dyskowych ma swój typ. Typ partycji to nic innego jak jednobajtowy identyfikator informujacy system operacyjny które partycje powinien podejrzewac, ze znajduja sie na niej jego pliki. Identyfikator ten jest róznie interpretowany pzrez rózne systemy operacyjne: niektóre odmawiaja współpracy z partycjami innych typów niz swoje, inne z kolei w zasadzie ignoruja ten identyfikator. Najwazniejsze typy partycji to
6 FAT16 (DOS),
7 HPFS/NTFS,
b Win95 FAT32,
c Win95 FAT32 (LBA),
e Win95 FAT16 (LBA),
82 Linux swap,
83 Linux native,
85 Linux extended
Aby na dysku mógł byc zainstalowany Linux niezbedne jest utworzenie co najmniej dwóch partycji: Linux native i Linux swap. Na partycje Linux native zostana skopiowane programy, natomiast partycja Linux swap bedzie słuzyc jako plik wymiany. Oczywiscie mozliwe jest utowrzenie wiekszej liczby partycji Linux native i przypisanie im róznych katalogów. Utworzenie parycji to oczywiscie zbyt mało, aby mógł byc na niej zainstalowany system operacyjny. Przed nagraniem skopiowaniem systemu nalezy partycje sformatowac, tj. nagrac na nia struktury danych zwiazane z konkretnym systemem plików. Obecnie domyslnym systemem
plików Linux’a jest ext2 (Extended Filesystem version 2 ), jednak jego pozycja zaczyna byc zagrozona, bowiem do konkurencji zaczynaja wkraczac systemy plików z dziennikowaniem (Journaling Filesystems). Do najwazniejszych konkurentów naleza tutaj reiserfs i ext3. Mozliwe jest równiez tworzenie systemów plików w których dane sa szyfrowane korzystajac z cfs (Cryptographic Filesystem).

1.5.2 Start systemu
Pierwszym programem uruchamianym przez BIOS (Basic Input Output System) jest procedura POST (Power On self Test). Po jej wykonaniu ładowany jest pierwszy sektor z urzadzenia wybranego w programie BIOS Setup jako startowe. Jezeli w przeczytanym sektorzez znajduje sie odpowiedni znacznik, BIOS identyfikuje zawartosc sektora jako program ładujacy i przekazuje mu sterowanie. Na dyskach twardych twardych pierwszy sektor nazywany jest MBR (Master Boot Record). Z kolei pierwszy sektor kazdej partycji nazywany jest BR (Boot Record). Systemy operacyjne spod znaku Windows nagrywaja program którego jedynym zadaniem jest stwierdzenie która z partycji jest zaznaczona jako aktywna, wczytanie jej pierwszego sektora i przekazanie sterowania programowi tam zawartemu. Z kolei program zawarty w BR podczas formatowania partycji (dysku C:) został uzupełniony informacja gdzie na dysku znajduje sie jadro systemu. Jego zadaniem jest wczytania jadra systemu do pamieci operacyjnej i przekazanie mu sterowania.
Start systemu Linux jest mozliwy dzieki podmianie programu znjadujacemu sie MBR lub BR na inny program ładujacy, który potrafi uruchomic jadro Linux’a. Najbardziej znanym programem ładujacym jest LILO (LInux LOader). Wybierajac instalacje LILO w MBR nadpisujemy domyslny program ładujacy. W przypadku rezygnacji z Linux’a mozemy go odtworzyc po wystartowaniu DOS’a z dyskietki systemowej komenda fdisk /MBR Mozliwa jest równiez bezinwazyjna instalacja LILO. Mianowicie instalujemy LILO BR partycji z Linuxem i zaznaczamy ja jako aktywna. Oryginalny program z MBR podczas startu systemu załaduje pierwszy sektor z partycji aktywnej, a wiec LILO. Deinstalacji Linux’a przebiega bezbolesnie, wystarczy bowiem deaktywowac partycje z Linukx’em i aktywowac partycje z Windows.

1.5.3 Modułowa budowa jadra
Moduły mozna nazwac inaczej (choc mniej scisle) sterownikami do róznego rodzaju urzadzen. Ładowanie modułów mozna wyłaczyc przekazujac jadru nomodules jako parametr podczas ładowania systemu. Moduły jadra znajduja sie w katalogu /lib/modules/. Podstawowe komendy obsługi modułów to
lsmod – wyswietlenie listy aktualnie załadowanych modułów,
insmod – dołaczenie modułu do działajacego jadra systemu,
rmmod – usuniecie modułu z jadra systemu.
Poniewaz miedzy modułami moga istniec dosc skomplikowane zaleznosci wstawianie modułów przy uzyciu insmod moze okazac sie dosc uciazliwe. Do rozwiazania tego problemu słuzy komenda modprobe pozwalajaca ładowac i usuwac moduły z uwzglednieniem zaleznosci miedzymodułowych. Komenda modprobe korzysta z listy zaleznosci umieszczonej w pliku /lib/modules//modules.dep Plik ten tworzony jest komenda depmod która powinna byc uruchomiona po kazdorazowej zmianie zawartosci katalogów z modułami.
Jadro Linuksa potrafi ładowac moduły „w locie”, gdy zajdzie potrzeba skorzystania z danego interfejsu. Do ustanowienia zwiazku miedzy nazwa interfejsu a nazwa sterownika słuzy plik /etc/conf.modules. Np. karty sieci Ethernet zainstalowane w systemie maja nazwy eth0, eth1, eth2, eth2, itd. Jezeli karta konfigurowana jako pierwsza jest karta zgodna z NE2000 w pliku /etc/conf.modules umieszczamy
alias eth0 ne
options ne irq=5 io=0x300
Powyzszy wpis informuje jadro, ze funkcje pierwszej karty sieciowej realizuje sterownik ne i podczas ładowania sterownika powinny mu byc przekazane parametry z linii options, tj. karta pracuje na przerwaniu nr 5 i obszar portów IO rozpoczyna sie od adresu 0x300. Jezeli sterownik jest nie uzywany przez pewien okres czasu odpowiedni moduł usuwany jest z obszaru jadra. Moduły załadowane automatycznie maja ustawiona flage autoclean. Szybsze usuniecie nie uzywanych modułów z flaga autoclean realizuje komenda modprobe -r.

1.5.4 Podstawowe wiadomosci o sieciach TCP/IP
Protokół IP jest beztsanowym protokołem warstwy sieciowej. Adres komputera w sieciach IP stanowia 4 bajty. W sieciech IP adres komputera musi byc unikalny, stad adresy sa centralnie przydzielane.
Protokół IP to protokół Internetu (ang. Internet Protocol). Z kolei Internet to siec szkieletowa łaczaca sieci komputerowe rozmieszczone na całym swiecie.Wtakich warunkach trudno sobie wyobrazic centralny przydział adresów IP dla stacji koncowych. Z tego wzgledu sieciom przyłaczonym do Internetu przydzielane sa zakresy adresów, zas sprawa przydziłau adresu IP do konkretnej stacji jest sprawa administratora sieci lokalnej. Stad podział adresu IP na czesc zwiazana z siecia i czesc zwiazana z adresem hosta (własnie ta czesc ustala administrator sieci lokalnej). Zaleznie od rozmiaru sieci lokalnej administrator moze ubiegac sie o przydział adresu klasy A – 224 adresów, klasy B – 216 adresów lub klasy C – 28 adresów. O tym czy dany adres sieciowy nalezy do okreslonej klasy decyduje kilka najstarszych bitów pierwszego bajtu adresu IP. Taka organizacja adresów zapewnia łatwe sterowanie ruchem pakietów.
Odpowiednie zaleznosci ilustruje Tab. #1 Przykładowe adresy poszczególnych klas ilustruje Tab. #1 Dla sieci klasy A i B liczba hostów jest olbrzymia (224 − 2 i 216 − 2, odpowiednio). Oczywiscie zarzadzanie tak wielkimi sieciami jest bardzo trudne. Dlatego dopuszczono
„wewnetrzny” podział sieci na podsieci. Koncepcja jest bardzo prosta, pozyczamy czesc bitów z czesci adresujacej hosta i traktujemy je jako adres sieci. I tak np. jezeli dla sieci klasy B pozyczymy jeden bajt, to maska podsieci wyniesie 255.255.255.0. Dzieki takiej operacji przekształcilismy siec klasy B w 28 − 2 podsieci klasy C. Musimy odjac 2 bowiem podsiec o numerze x.x.0 miałaby adres identyczny z adresem sieci „matki”, zas bajt o wartosci 255 zarezerwowany jest na broadcast (rozgłoszenie do wszystkich stacji w podsieci).
klasa adr. pocz. (bin) adr. pocz. (dec) adr. kon. (bin) adr. kon. (dec)
A 0 0000000 0 0 1111110 126
loop-back 0 1111111 127 0 1111111 127
B 10 000000 128 10 111111 191
C 110 00000 192 110 11111 223
D 1110 1111 224 1110 1111 239
E 11110 111 240 11110 111 247
Klasa netmask podział adresu przykładowy adres hosta adres sieci
A 255.0.0.0 N.H.H.H 10.0.1.123 10.0.0.0
B 255.255.0.0 N.N.H.H 157.158.1.3 157.158.0.0
C 255.255.255.0 N.N.N.H 200.150.189.31 200.150.189.0
Ciezar zarzadzanie podsieciami spoczywa na włascicielu adresu klasy B. Utworzone podsieci maja dostep do internetu za posrednictwem własciciela adresu B.
Oczywiscie, mozliwe jest wydzielenie podsieci ustalajac podział adresu na czesc sieciowa i „hostowa” wewnatrz z któregos bajtów. Dla objasnienia rozwazmy podział sieci klasy C na podsieci. Wydzielmy najstarsze 3 bity ostatniego bajtu na czesc sieciowa. Wówczas maska sieci wyniesie 255.255.255.224 (ostatni bajt binarnie 11100000). Numery powstałych w ten sposób podsieci oraz odpowiadajacy im zakres adresów hostów przedstawia Tab. #1 Wprowadzenie adresu podsieci powoduje, ze nie mozemy juz wnioskowac o masce podsieci na podstawie jej numeru IP. Stad czesto stosuje sie zapis adresów sieci w postaci ˇadres IPż/ˇliczba bitów maski ustawionych na 1ż. Oznacza to, ze adresy IP sieci z Tab. #1 mozemy zapisac jako 10.0.0.0/8, 157.158.0.0/16, 200.150.189.0/24.
Rozwazmy konfiguracje piatej z rozwazanych podsieci (przypuscmy, ze podsiec skonfigurowano w Instytucie Elektroniki, przydzielona do IE podsiec ma adres 157.158.17.0): adres maska (bin) maska (dec) adr. pocz. (dec) adr. kon. (dec)
001 00000 32 33 62
010 00000 64 65 95
011 00000 96 97 126
100 00000 128 129 158
101 00000 160 161 190
110 00000 192 193 223
podsieci – 157.158.17.160, maska podsieci – 255.255.255.224 (lub inaczej adres podsieci – 157.158.17.160/21) adresy hostów – 157.158.17.161÷190, adres rozgłoszeniowy (broadcast) – (157.158.17.160) + ¬ (255.255.255.244) = 157.158.17.191.
Powyzszy przykład ilustruje równiez „utrate” adresów IP przy podziale na podsieci. Gdy siec 157.158.17.0 potraktujemy jako siec klasy C, to mamy do dyspozycji 28−2 = 254 adresów IP dla stacji. Tymczasem proste sumowanie poprawnych adresów z Tab. #1 prowadzi do liczby 180. Oto gdzie tracimy dostepne adresy:
• mamy 6 podsieci a wiec tracimy 6 × 2 = 12 adresów na adresy sieci i broadcasty, • ze wzgledu na to, ze nie moze byc podsieci o numerze 0 tracimy 32 adresy (0 ÷ 31), • tracimy równiez adresy powyzej 224 bowiem nie moze byc podsieci o numerze 11100000 (binarnie) tj. 31 adresów.
Sumujac otrzymujemy liczbe 76.
Czesc adresów IP została wydzielona z puli przydzielanych adresów i zaden host (czy inne urzadzenie sieciowe) podłaczone bezposrednio do internetu nie moze miec takiego adresu IP. Te wydzielone pule adresów moga byc uzywane wewnetrznie w sieciach lokalnych jednak nie moga byc „widziane” z zewnatrz. Adresy wydzielonych sieci to: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.

Instalacja


W niniejszym rozdziale zamiescimy skrót z instalacji nastepujacych czterech dystrybucji
• RedHat 7.2 (2 płyty zasadnicze + PowerTools),
• Mandrake 8.0 (2 płyty),
• Mandrake 8.1 (3 płyty),
• SuSE 7.2 (7 płyt).

2.1 Przygotowanie do instalacji
Przygotowanie do instalacji wymaga posiadania nastepujacych przygotowan:
• przygotowanie wolnego miejsce na dysku, ile przeznaczamy dla partycji /, ile na swap,
• zgromadzenie podstawowych danych o sprzecie: mysz, klawiatura, karta graficzna, karta dzwiekowa, karta sieciowa, modem. • zdobycie podstawowych parametrów sieci: adres IP, netmask, gateway lub adres serwera DHCP lub numer tel. do ISP + adres IP serwera nazw,
• do jakich celów ma słuzyc system: router/firewall, serwer sieciowy, stacja robocza,
• jakie usługi sieciowe ma oferowac system: e-mail, ftp, http, nfs, smb, dns,
• wybór interfejsu uzytkownika: virtualna konsola i/lub srodowisko graficzne (KDE lub GNOME).
Linux’a da sie zainstalowac nawet gdy cały dysk komputera zajety jest przez partycje Windows. W pierwszym kroku uruchamiamy pod Windows program defrag. Jegozadanie jest uporzadkowanie danych na dysku i umieszczenie ich w jego poczatkowej czesci. Nastepnie z płyty z dystrybucja Linux’a przegrywamy i uruchamiamy program fips. Program ten słuzy do bezinwazyjnego (tj. bez utraty danych) skrócenia partycji Windows (DOS). Miejsce odzyskane przez program fips bedzie zaznaczone jako wolne podczas instalacji systemu. Po przygotowaniu miejsca na dysku przystepujemy do instalacji. Jako urzadzenie wybieramy CDROM, wkładamy płyte z Linux’em i restartujemy komputer. Gdy nasz komputer ma antyczny BIOS który nie umozliwia startu z płyty CD, to jedyna rada jest skorzystanie z dyskietek startowych rozprowadzanych w postaci plików z omawianymi dystrybucjami. Pliki te stanowia obrazy binarne dyskietek, tzn. sa to kolejne sektory dyskietki umieszczone w jednym pliku. Do utworzenia dyskietki z pliku-obrazu słuzy program rawrite. Zaleznie od dystrybucji konieczne jest utworzenie jednej lub dwóch dyskietek startowych. Po uruchomieniu systemu z dyskietek lub płyty CD otrzymujemy zaproszenie do instalacji. Dalszy przebieg wydarzen zalezy od programu instalacyjnego danej dystrybucji. Programy instalacyjne nowej generacji najpierw zbieraja niezbedne informacje i dopiero gdy posiadaja wszystkie dane przystepuja do instalacji. W programach starszej generacji działania instalacyjne (np. zakładanie partycji, ich formatowanie) sa podejmowane na biezaco, tuz po wydaniu odpowiednich zlecen przez uzytkownika.

2.2 Mandrake 8.0
2.2.1 Instalacja
Program instalacyjnych przygotowuje instalacje na biezaco, np. nowa tablica partycji jest zapisywana na dysk natychmiast po jej zatwierdzeniu.
1. Jezyk instalacji. Program instalacyjny wspiera jezyk polski. Wybieramy „Polish”. Jezyk ten bedzie równoczesnie jezykiem obowiazujacym w systemie.
2. Rodzaj instalacji. Wybieramy „Dla eksperta”. W instalacji typowej brakuje wielu narzeddzi do samodzielnej kompilacji pakietów.
3. Wybór nosnika. Program instalacyjny zbiera informacje o tym z ilu płyt CD bedzie instalowany system.
4. Mysz. Mysz wykrywana jest automatycznie.
5. Klawiatura. Model klawiatury wykrywany jest automatycznie. Mamy do wyboru polska klawiature w układzie programisty lub w układzie maszynistki. Oczywiscie wybieramy ten pierwszy.
6. Bezpieczenstwo. Aktywacja mechanizmu filtrowania pakietów IP:
• Wysoki: filtrowane sa wszystkie ramki za wyjatkiem DHCP i DNS.
• Sredni: zablkowany dostep do portów ponizej 1024, serwer NFS – port 2049, zdalne sesje X Windows – port 6000, 6001 itd. , serwer fontów X Windows – port 7100.
• Niski: bez filtrowania ramek.
7. Partycjonowanie dysku. Obszar dysku prezentowany jest w formie graficznej. Klikajac na wolny obszar mozemy utworzyc nowa partycje. Wybranie juz istniejacej partycji pozwala na zmiane jej parametrów. Mozliwy jest równiez wybór automatycznego repartycjonowania dysków. Po nacisnieciu przycisku „Zrobione” nowa tablica partycji zostaje zapisana na dysk.
• Zakładamy partycje na system plików root („/”). Zalecane przeznaczenie około 2GB przestrzeni dyskowej.
• Zakładamy partycje „swap” o wielkosci 2*RAM, nie wiecej niz 128MB. 8. Formatowanie Utworzona partycje zaznaczamy do sformatowania.
9. Wybór grup pakietów. Komputer biurowy, Korzytsanie z multimediów, Korzystanie z Internetu, Komputer sieciowy (klient), Konfiguracja, Stacja robocza dla naukowca, Programowanie, WWW/FTP, Serwer sieciowy, Stacja robocza z KDE. W sumie 1091 MB. Rezygnujemy z samodzielnego wyboru pakietów.
10. Instalacja serwerów Wybór serwerów które moga stanowic potencjalne zagrozenie dla bezpieczenstwa systemu powoduje pojawienie sie ostrzezenia.
11. Instalacja pakietów Wybrane pakiety sa instalowane na dysk twardy.
12. Dostep do systemu. Hasło root’a i utworzenie zwykłego uzytkownika. Mozna jedynie korzystac z systemu NIS (tzw. yellow pages) zarzadzania kontami.
13. Interfejs sieciowy. Program sprawdza czy w systemie jest karta ethernet lub modem. Zaleznie od wykrytego sprzetu wybierana jest metoda konfiguracji interfejsu sieciowego.
• Karta ethernet moze byc skonfigurowana automatycznie jezeli w sieci lokalnej znajduje sie serwer DHCP lub statycznie. W drugim przypadku nastepujace parametry musimy dostac od administratora sieci: numer IP, netmask, hostaname, domainname, gateway IP, server DNS główny i ew. zapasowe. Zaznaczamy aktywacje interfejsu przy starcie systemu.
14. Konfiguracja posredników Dla ograniczenia ruchu w sieci oraz dla ochrony stacji znajdujacych sie za sciana ogniowa do komunikacji ze swiatem zewnetrznym wykorzystywane sa tzw. serwery posrednie („proxy”). Jezeli w Twojej sieci działaja takie serwery to nalezy je w tym punkcie podac.
15. Jezyk systemu. Polish
16. Strefa czasowa. Europe/Warsaw
17. Karta dzwiekowa W procesie instalacji karty dzwiekowe wykrywane i konfigurowane sa automatycznie.
18. Konfiguracja drukarki W pierwszym rzedzie musimy podjac decyzje którego demona wydruku bedziemy uzywac. Do wyboru mamy CUPS („Common Unix Printing System”) oraz stary i sprawdzony lpd. Zalecam zdecydowac sie na CUPS. Po zainstalowaniu demona drukowania przeprowadzona jest konfiguracja drukarki. Definiujemy sposób dostepu (lokalna czy zdalna), nazwe kolejki, typ drukarki oraz metode wydruku (tzw. filtr).
19. Konfiguracja usług startowych Proponuje zaznaczyc jedynie: alsa, crond, cups, harddrake, httpd, ipchains, keytable, kudzu, kheader, netfs, network, numlock, portmap postfix, random, rawdevices, sshd, syslog, xfs, xinted.
20. Program ładujacy. Zawsze tworzymy dyskietke startowa. Instalujemy LILO jezeli na komputerze nie ma Windows NT. LILO wgrywamy do MBR lub pierwszego sektora jednej z partycji. Aby program ładujacy z pierwszego sektora partycji mógł byc uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR powinieni byc program ładujacy z DOS’a lub Windows. Domyslny program ładujacy mozna wgrac poleceniem DOS’a:
fdisk /MBR Zamiast LILO mozna uzyc innego programu ładujacego onazwie GRUB. Mamy równiez mozliwosc wyboru sposobu startu systemu: linux – start w trybie graficznym, linuxnonfb – start w trybie tekstowym. Proponuje wybrac linux-nonfb jako domyslny.
21. Konfiguracja X Windows. Koniecznie nalezy znac zakresy czestotliwosci odchylania pionowego i poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki (automatycznie),
• monitor (automatycznie)
• rodzdzielczosc i liczba bitów na piksel,
Zaleznie od rodzaju karty mamy mozliwosc instalacji X serwera w wersji: XFree 3.3.6 lub XFree 3.3.6 z akceleracja sprzetowa lub XFree 4.0.3. Rozwiazanie konserwartywne do instalacja XFree 3.3.6. Poprawnosc wyboru testujemy.
22. Logowanie Na koniec procesu instalacji podejmujemy decyzje o uruchomieniu programu XDM (logowanie w trybie graficznym).

2.2.2 Dostrajanie
1. Konfiguracja drukarki. W okienku K! Konfiguracja! Drukowanie ! QT-CUPS mozna zmienic parametry juz zdeiniowanych drukarek (a dokładniej kolejek drukowania). Z kolei w K!Konfiguracja!Drukowanie !KUPS mozna ustawiac nowe kolejki lub usuwac istniejace.
2. Polskie teksty w graficznym ekranie logowania. W okienku K! Konfiguracja! KDE! System! Menedzer logowania. wybieramy Country: Polska i czczionki z kodowaniem ISO 8859-2.
3. Konfiguracja czczionki terminala. Uruchamiamy terminal: K! Terminale! Terminal. W okienku Settings! Czczionka! Definiuj wybieramy biznet-fixed o rozmiarze 16. UWAGA! Koniecznie nalezy kliknac przycisk domyslne kodowanie. Rozmiar terminala dostosowujemy poleceniem Settings! Rozmiar! 80x25 (ibmpc). Zmiany zachowujemy poleceniem Settings! Save settings.
4. Konfiguracja Netscape. Uruchamiamy netscape (K! Internet! Netscape Communicator). Dodajemy jezyk polski w Edycja! Ustawienia! Navigator! Jezyki.
5. Doinstalowujemy program Midnight Commander. Wkładamy płyte CD 1 i wykonujemy rpm -Uvh /mnt/cdrom/RedHat/RPMS/mc-*.rpm Napedu nie trzeba montowac bowiem do odczytu dyskietek, napedów ZIP i CD uzywany jest mechanizm supermount (patrz plik /etc/fstab). Po instalacji uruchamiamy mc i wybieramy ˇF9ż! Opcje! Wyswietlanie znaków. Zaznaczamy: Pełne 8 bitowe oraz Pełne osmiobitowe wejscie.
6. Konfiguracja usług startowych Pod X Windows uruchamiamy program drakxservices. Zaznaczamy w nim które usługi powinny byc aktywowane podczas startu systemu.
7. Łaczenie z internetem przez modem Uruchamiamy program K! Siec! Zdalny dostep! Łaczenie z internetem Konfiguracje programu wykonujemy wybierajac Ustawienia. W zakładce Modem wybieramy Testuj modem aby sprawdzic rodzaj modemu. Zakładka Połaczenia słuzy do konfiguracji połaczen z róznymi dostawcami internetu.
8. Konfiguracja sprzetu Do konfiguracji sprzetu słuzy program harddrake K! Konfiguracja ! Sprzet! HardDrake
9. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc pod adresem ftp://ftp.task.gda.pl/pub/linux/Mandrake/

2.2.3 Błedy i niedoróbki

1. Podczas inicjalizacji sieci przez DHCP nie jest aktualizowana nazwa hosta na podstawie wpisu w DNS’ie. Ponizszy skrypt nalezy umiescic w skryptach startowych systemu, tuz za inicjalizacja sieci (usługa network). #!/bin/sh
DEVICE=eth0
IPADDR=‘LANG= LC_ALL= ifconfig $DEVICE | grep ’inet addr’ |
awk -F: ’{ print $2 } ’ | awk ’{ print $1 }’‘
FQHOSTNAME=‘LANG= LC_ALL= host $IPADDR | awk ’{print $5}’‘
HOST=‘echo $FQHOSTNAME | sed ’s/\..*\.//’‘
DOMAIN=‘echo $FQHOSTNAME | sed ’s/^[^\.]*\.//’ | sed ’s/\.$//’‘
echo $IPADDR
echo $FQHOSTNAME
echo $HOST
echo $DOMAIN
hostname $FQHOSTNAME
echo "$HOST" > /etc/HOSTNAME
if ! grep search /etc/resolv.conf >/dev/null 2>&1; then
echo "search $DOMAIN" >> /etc/resolv.conf fi
2. Wskład dystrybucji nie wchodzi program ogonkify rozprowadzany równiez z pakietem a2ps. Aby drukowac polskie znaki diakrytyczne z Netscape’a nalezy go skompilowac i zainstalowac. Strony WWW zawierajace polskie znaki narodowe drukujemy (Plik! Drukuj) komenda ogonkify -AT -N | lpr lub drukujemy do pliku netscape.ps i przetwarzamy go komenda ogonkify -AT -N netscape.ps > netscape-pl.ps Wynik konwersji sprawdzamy przegladarka gv gv netscape-pl.ps

2.3 Mandrake 8.1
2.3.1 Instalacja
Program instalacyjnych przygotowuje instalacje na biezaco, np. nowa tablica partycji jest zapisywana na dysk natychmiast po jej zatwierdzeniu.
1. Jezyk instalacji. Program instalacyjny wspiera jezyk polski. Wybieramy „Polish”. Jezyk ten bedzie równoczesnie jezykiem obowiazujacym w systemie.
2. Rodzaj instalacji. Wybieramy „Dla eksperta”. W instalacji typowej brakuje wielu narzeddzi do samodzielnej kompilacji pakietów.
3. Mysz. Mysz wykrywana jest automatycznie.
4. Klawiatura. Model klawiatury wykrywany jest automatycznie. Mamy do wyboru polska klawiature w układzie programisty lub w układzie maszynistki. Oczywiscie wybieramy ten pierwszy.
5. Bezpieczenstwo. Aktywacja mechanizmu filtrowania pakietów IP:
• Wysoki: filtrowane sa wszystkie ramki za wyjatkiem DHCP i DNS.
• Sredni: zablkowany dostep do portów ponizej 1024, serwer NFS – port 2049, zdalne sesje X Windows – port 6000, 6001 itd. , serwer fontów X Windows – port 7100.
• Niski: bez filtrowania ramek.
6. Partycjonowanie dysku. Obszar dysku prezentowany jest w formie graficznej. Klikajac na wolny obszar mozemy utworzyc nowa partycje. Wybranie juz istniejacej partycji pozwala na zmiane jej parametrów. Mozliwy jest równiez wybór automatycznego repartycjonowania dysków. Po nacisnieciu przycisku „Zrobione” nowa tablica partycji zostaje zapisana na dysk.
• Zakładamy partycje na system plików root („/”). Zalecane przeznaczenie około 2GB przestrzeni dyskowej.
• Zakładamy partycje „swap” o wielkosci 2*RAM, nie wiecej niz 128MB.
7. Formatowanie Utworzona partycje zaznaczamy do sformatowania.
8. Wybór nosnika. Program instalacyjny zbiera informacje o tym z ilu płyt CD bedzie instalowany system.
9. Wybór grup pakietów. Komputer biurowy, Korzytsanie z multimediów, Korzystanie z Internetu, Komputer sieciowy (klient), Konfiguracja, Stacja robocza dla naukowca, Programowanie, WWW/FTP, Serwer sieciowy, Stacja robocza z KDE. Zaznaczamy Samodzielny wybór pakietów i sprawdzamy czy zostana zainstalowane kde-i18n-pl, a2ps, mc.
10. Instalacja serwerów Wybór serwerów które moga stanowic potencjalne zagrozenie dla bezpieczenstwa systemu powoduje pojawienie sie ostrzezenia.
11. Instalacja pakietów Wybrane pakiety sa instalowane na dysk twardy.
12. Dostep do systemu. Hasło root’a i utworzenie zwykłego uzytkownika. Mozna korzystac z systemu NIS (tzw. yellow pages) oraz LDAP zarzadzania kontami.
13. Interfejs sieciowy. Program sprawdza czy w systemie jest karta ethernet lub modem. Zaleznie od wykrytego sprzetu wybierana jest metoda konfiguracji interfejsu sieciowego.
• Karta ethernet moze byc skonfigurowana automatycznie jezeli w sieci lokalnej znajduje sie serwer DHCP lub statycznie. W drugim przypadku nastepujace parametry musimy dostac od administratora sieci: numer IP, netmask, hostaname, domainname, gateway IP, server DNS główny i ew. zapasowe. Zaznaczamy aktywacje interfejsu przy starcie systemu.
• Jezeli wykryty zostanie modem zostana zadane pytania o dostawce internetu, uzytkownika, hasło oraz sposób aktywacji połaczenia.
14. Konfiguracja posredników Dla ograniczenia ruchu w sieci oraz dla ochrony stacji znajdujacych sie za sciana ogniowa do komunikacji ze swiatem zewnetrznym wykorzystywane sa tzw. serwery posrednie („proxy”). Jezeli w Twojej sieci działaja takie serwery to nalezy je w tym punkcie podac.
15. Jezyk systemu. Polish
16. Strefa czasowa. Europe/Warsaw
17. Karta dzwiekowa W procesie instalacji karty dzwiekowe wykrywane i konfigurowane sa automatycznie.
18. Konfiguracja drukarki W pierwszym rzedzie musimy podjac decyzje którego demona wydruku bedziemy uzywac. Do wyboru mamy CUPS („Common Unix Printing System”), LPRng oraz PDQ („Print, Don’t Queue”). Wybór ostatniej opcji oznacza, ze nie bedzie zainstalowany spooler drukarki. Po zainstalowaniu demona drukowania przeprowadzona jest konfiguracja drukarki. Definiujemy sposób dostepu (lokalna czy zdalna), nazwe kolejki, typ drukarki oraz metode wydruku (tzw. filtr).
19. Konfiguracja usług startowych Proponuje zaznaczyc jedynie: alsa, crond, cups, harddrake, httpd, ipchains, keytable, kudzu, kheader, netfs, network, numlock, portmap postfix, random, rawdevices, sshd, syslog, xfs, xinted.
20. Program ładujacy. Zawsze tworzymy dyskietke startowa. Instalujemy LILO jezeli na komputerze nie ma Windows NT. LILO wgrywamy do MBR lub pierwszego sektora jednej z partycji. Aby program ładujacy z pierwszego sektora partycji mógł byc uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR powinieni byc program ładujacy z DOS’a lub Windows. Domyslny program ładujacy mozna wgrac poleceniem DOS’a:
fdisk /MBR
Zamiast LILO mozna uzyc innego programu ładujacego onazwie GRUB. Mamy równiez mozliwosc wyboru sposobu startu systemu: linux – start w trybie graficznym, linuxnonfb – start w trybie tekstowym. Proponuje wybrac linux-nonfb jako domyslny. 21. Konfiguracja X Windows. Koniecznie nalezy znac zakresy czestotliwosci odchylania pionowego i poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki (automatycznie),
• monitor (automatycznie)
• rodzdzielczosc i liczba bitów na piksel,
Zaleznie od rodzaju karty mamy mozliwosc instalacji X serwera w wersji: XFree 3.3.6 lub XFree 3.3.6 z akceleracja sprzetowa lub XFree 4.0.3. Rozwiazanie konserwartywne do instalacja XFree 3.3.6. Poprawnosc wyboru testujemy. 22. Logowanie Na koniec procesu instalacji podejmujemy decyzje o uruchomieniu programu XDM (logowanie w trybie graficznym).

2.3.2 Dostrajanie
1. Polski jezyk w KDE. Wybieramy K! Configuration! KDE! Personalization ! Country and Language. Ustawiamy jezyk polski oraz kodowanie ISO 8859-2. Aby ustawienia zaczeły obowiazywac w KDE musimy sie wylogowac i zalogowac ponownie. 2. Konfiguracja drukarki. W okienku K! Konfiguracja! Inne! Centrum sterowania Mandrake wybieramy zakładke Sprzet!Drukarka. Pojawi sie okienko w którym mozna zmienic parametry juz zdefiniowanych drukarek (a dokładniej kolejek drukowania) oraz utworzyc nowe.
3. Konfiguracja Netscape. Uruchamiamy netscape (K!Internet!Netscape Communicator). Dodajemy jezyk polski w Edycja! Ustawienia! Navigator! Jezyki. Strony WWW zawierajace polskie znaki narodowe drukujemy (Plik! Drukuj) komenda ogonkify -AT -N | lpr lub drukujemy do pliku netscape.ps i przetwarzamy go komenda ogonkify -AT -N netscape.ps > netscape-pl.ps Wynik konwersji sprawdzamy przegladarka gv gv netscape-pl.ps
4. Doinstalowujemy program Midnight Commander. Wkładamy płyte CD 1 i wykonujemy mount /mnt/cdrom rpm -Uvh /mnt/cdrom/Mandrake/RPMS/mc-*.rpm umount /mnt/cdrom Po instalacji uruchamiamy mc i wybieramy ˇF9ż! Opcje! Wyswietlanie znaków. Zaznaczamy: Pełne 8 bitowe oraz Pełne osmiobitowe wejscie.
5. Konfiguracja usług startowych Pod X Windows uruchamiamy program drakxservices. Zaznaczamy w nim które usługi powinny byc aktywowane podczas startu systemu.
6. Łaczenie z internetem przez modem Uruchamiamy program K! Siec! Zdalny dostep! Łaczenie z internetem Konfiguracje programu wykonujemy wybierajac Ustawienia. W zakładce Modem wybieramy Testuj modem aby sprawdzic rodzaj modemu. Zakładka Połaczenia słuzy do konfiguracji połaczen z róznymi dostawcami internetu.
7. Konfiguracja sprzetu Do konfiguracji sprzetu słuzy program harddrake K! Konfiguracja ! Sprzet! HardDrake
8. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc pod adresem ftp://ftp.task.gda.pl/pub/linux/Mandrake/

2.3.3 Błedy i niedoróbki
1. Podczas inicjalizacji sieci przez DHCP nie jest aktualizowana nazwa hosta na podstawie wpisu w DNS’ie. Ponizszy skrypt nalezy umiescic w skryptach startowych systemu, tuz za inicjalizacja sieci (usługa network).
#!/bin/sh
DEVICE=eth0
IPADDR=‘LANG= LC_ALL= ifconfig $DEVICE | grep ’inet addr’ |
awk -F: ’{ print $2 } ’ | awk ’{ print $1 }’‘
FQHOSTNAME=‘LANG= LC_ALL= host $IPADDR | awk ’{print $5}’‘
HOST=‘echo $FQHOSTNAME | sed ’s/\..*\.//’‘
DOMAIN=‘echo $FQHOSTNAME | sed ’s/^[^\.]*\.//’ | sed ’s/\.$//’‘
echo $IPADDR
echo $FQHOSTNAME
echo $HOST
echo $DOMAIN
hostname $FQHOSTNAME
echo "$HOST" > /etc/HOSTNAME
if ! grep search /etc/resolv.conf >/dev/null 2>&1; then
echo "search $DOMAIN" >> /etc/resolv.conf fi

2.4 RedHat 7.1

2.4.1 Instalacja
Program instalacyjny zbiera informacje niezbedne do instalacji i po ich ostatecznym zatwierdzeniu wykonuje czynnosci instalacyjne.
1. Jezyk instalacji. Program instalacyjny nie wspiera jezyka polskiego.Wybieramy „English”. 2. Klawiatura. Model klawiatury wykrywany jest automatycznie, wybieramy polski układ klawiatury oraz właczone „dead keys”.
3. Mysz. Nalezy zwrócic uwage czy wykryta została poprawnie liczba przycisków.
4. Rodzaj instalacji. Wybieramy „Custom System” aby miec wpływ na grupy instalowanych pakietów.
5. Partycjonowanie dysku. Wybieramy partycjonowanie reczne („Manually partition with Disk Druid”).
• Zakładamy partycje na system plików root („/”). Zalecane przeznaczenie około 2GB przestrzeni dyskowej.
• Zakładamy partycje „swap” o wielkosci 2*RAM, nie wiecej niz 128MB.
6. Formatowanie Utworzona partycje zaznaczamy do sformatowania.
7. Program ładujacy. Zawsze tworzymy dyskietke startowa. Instalujemy LILO jezeli na komputerze nie ma Windows NT. LILO wgrywamy do MBR lub pierwszego sektora jednej z partycji. Aby program ładujacy z pierwszego sektora partycji mógł byc uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR powinieni byc program ładujacy z DOS’a lub Windows. Domyslny program ładujacy mozna wgrac poleceniem DOS’a:
fdisk /MBR
8. Interfejs sieciowy. Karta ethernet jest wykrywana i konfigurowana podczas instalacji. Połaczenia modemowe konfiguruje sie po instalacji. Karta ethernet moze byc skonfigurowana automatycznie jezeli w sieci lokalnej znajduje sie serwer DHCP lub statycznie. W drugim przypadku nastepujace parametry musimy dostac od administratora sieci: numer IP, netmask, hostname, domainname, gateway IP, server DNS główny i ew. zapasowe. Zaznaczamy aktywacje interfejsu przy starcie systemu.
9. Bezpieczenstwo. Aktywacja mechanizmu filtrowania pakietów IP:
• High: filtrowane sa wszystkie ramki za wyjatkiem DHCP i DNS.
• Medium: zablkowany dostep do portów ponizej 1024, serwer NFS – port 2049, zdalne sesje X Windows – porty 6000, 6001 itd. , serwer fontów X Windows – port 7100.
• No firewall: bez filtrowania ramek.
Reguły narzucone przez Medium i High mozna uzupełnic podajac w opcji customize usługi które nie beda odfiltrowane przez firewall.
10. Jezyk systemu. Polish
11. Strefa czasowa. Europe/Warsaw
12. Dostep do systemu. Hasło root’a i utworzenie zwykłego uzytkownika.
13. Zarzadzanie kontami uzytkowników. Wybieramy wyliczanie skrótów haseł jednokierunkowa funkcja MD5. Skróty powinny byc przechowywane w pliku /etc/shadow (właczone „shadow passwords”). Pozostałe usługi dotycza stacji w duzych sieciach: NIS, LDAP, Kerberos sa metodami centralnego zarzadzania kontami uzytkowników i ewentualnego szyfrowanie transmisji.
14. Wybór grup pakietów. Printer, X Windows, KDE, Graphics, Multimedia, NetworkedWorkstation, DialUpWorkstation,Web Server, Development, Authoring/Publishing w sumie: 1085 MB
15. Konfiguracja X Windows. Koniecznie nalezy znac zakresy czestotliwosci odchylania pionowego i poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki,
• monitor,
• rodzdzielczosc i liczba bitów na piksel
Poprawnosc wyboru sprawdzamy przyciskiem „Test settings”

2.4.2 Dostrajanie
1. Konfiguracja drukarki.Wokienku K!System!Printer Configuration lub Controlpanel ! Printer wprowadzamy nazwe, typ kolejki (drukarka zdalna lub lokalna), oraz sterownik. Ustawienia sprawdzamy drukujac strone testowa. Jezeli wszystko jest OK restartujemy demona drukowania (Plik!Restart lpd) i konczymy konfiguracje (Plik! Save Changes i Plik! Zakoncz).
2. Konfiguracja karty dzwiekowej. Wybieramy Control Panel! Sound lub w terminalu uruchamiamy sndconfig. Postepujemy wg wskazan programu.
3. Polskie teksty w graficznym ekranie logowania. W okienku K! Preferencje! System! Menedzer logowania. wybieramy Country: Polska i czczionki z kodowaniem ISO 8859-2.
4. Konfiguracja czczionki terminala. Uruchamiamy terminal: K! System! Terminal. W okienku Settings! Czczionka! Definiuj wybieramy misc-fixed o rozmiarze 16. Rozmiar terminala dostosowujemy poleceniem Settings! Rozmiar! 80x25 (ibmpc). Zmiany zachowujemy poleceniem Settings! Save settings.
5. Konfiguracja Netscape. Uruchamiamy Netscape (K! Internet! Netscape Communicator). Dodajemy jezyk polski w Edit! Preferences! Navigator! Language. Strony WWW zawierajace polskie znaki narodowe drukujemy (File! Print) komenda ogonkify -AT -N | lpr lub drukujemy do pliku netscape.ps i przetwarzamy go komenda ogonkify -AT -N netscape.ps > netscape-pl.ps Wynik konwersji sprawdzamy przegladarka gv gv netscape-pl.ps
6. Doinstalowujemy program Midnight Commander. Wkładamy płyte CD 1 i wykonujemy mount /mnt/cdrom
rpm -Uvh /mnt/cdrom/RedHat/RPMS/mc-*.rpm
umount /mnt/cdrom
Po instalacji uruchamiamy mc i wybieramy ˇF9ż! Opcje! Wyswietlanie znaków. Zaznaczamy: Pełne 8 bitowe oraz Pełne osmiobitowe wejscie.
7. Konfiguracja usług startowych Wybieramy Control Panel! Services lub uruchamiamy w terminalu ntsysv Proponuje uruchomic jedynie: crond, gpm, ipchains, keytable, kudzu, lpd, netfs (eth), network (eth), nfslock (eth), portmap (eth), pppoe (eth), random, sendmail (eth, dialup), xfs, http. W nawiasach zaznaczono usługi uruchomione na stacjach z kartami ethernet lub wyposazonymi w modemy.
8. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc pod adresem ftp://ftp.task.gda.pl/pub/linux/redhat/linux/

2.4.3 Błedy i niedoróbki
1. W Control Panel! Kernel pojawia sie informacja, ze nalezy zainstalowac pakiet kernelcfg. Takiego pakietu nie ma w dystrybucji.
2. Pozycja Control Panel! Apache nie uruchamia programu do konfiguracji serwera. Mozna ja wykonac uruchamiajac program apacheconf.

2.5 SuSE 7.2

2.5.1 Instalacja
Instalacja moze byc wykonana przy uzyciu dwóch programów: YaST2 – w trybie graficznym, lub YaST1 – w trybie tekstowym. Program instalacyjny YaST2 najpierw zbiera informacje niezbedne do instalacji. W dowolnym momencie mozna z niej zrezygnowac. Z kolei YaST1 dokonuje zmian na biezaco.
1. Tryb instalacji Po restarcie systemu z płyty CD mamy 5 sekund na decyzje czy instalacja ma byc wykonana automatycznie („Installation”) lub z duza doza interwencji uzytkownika („Manual installation”). Wybieramy pierwsza mozliwosc.
2. Jezyk instalacji. W trybie automatycznym program instalacyjny (YaST2) nie wspiera jezyka polskiego. Wybieramy „English”. Jezyk ten bedzie równoczesnie jezykiem obowiazujacym w systemie tuz po instalacji.
3. Klawiatura i strefa czasowa. Wybieramy polski układ klawiatury (jest to układ programisty) oraz strefe czasowa „Europe/Poland”.
4. Tryb instalacji. Do wyboru mamy instalacje całkowicie nowego systemu, aktualizacje juz istniejacego oraz start juz zainstalowanego systemu. Wybieramy pierwsza mozliwosc.
5. Podział dysku na partycje. Decydujemy sie na „Custom partitioning”. W przeciwnym razie program instalacyjny sam zagospodaruje dostepna przestrzen dyskowa.
6. Partycjonowanie Nowe partycje tworzymy uzywajac przycisku „Create”. Istniejacym partycjom mozemy przydzielic punkt montowania oraz zaznaczyc je do sformatowania wybierajac przycisk „Edit”. Do unikalnych opcji programu instalacyjnego niewatpliwie nalezy zaliczyc mozliwosc utworzenia na partycji systemu plików z katalogowaniem (ReiserFS ) i/lub jego zaszyfrowanie. Nie jest dozwolone szyfrowanie partycji z systemem plików „/”. Przejscie do nastepnego punktu instalcji nie powoduje jeszcze wpisu nowej tablicy na dysk.
7. Instalacja pakietów. Instalowane pakiety mozemy wybrac wg jednej z pieciu predefiniowanych konfiguracji. Wybieramy „Default System” (954 MB). Swój wybór mozemy zmienic korzystajac z przycisku „Detailed selection ...”. Oprogramowanie mozna równiez uzupełnic uruchamiajac YaST2 w juz działajacym systemie.
8. Program ładujacy. Jezeli program instalacyjny wykryje na dysku inny system operacyjny, to proponuje instalacje LILO na dyskietce. Domyslna konfiguracje LILO mozna zmienic wybierajac „Custom LILO installation”. LILO wgrywamy do MBR lub pierwszego sektora jednej z partycji jezeli na komputerze nie Windows NT. W przeciwnym razie LILO wgrywamy na dyskietke. Aby program ładujacy z pierwszego sektora partycji mógł byc uruchomiony partycja powinna byc zaznaczona jako aktywna a w MBR powinieni byc program ładujacy z DOS’a lub Windows. Domyslny program ładujacy mozna wgrac poleceniem DOS’a:
fdisk /MBR
9. Dostep do systemu. Okreslamy hasło root’a oraz nazwe i hasło zwykłego uzytkownika.
10. Potwierdzenie instalacji.Wtym momencie program instalacyjny posiada juz wszystkie dane do wykonania instalacji. Przejscie do nastepnego ekranu spowoduje instalacje systemu.
11. Start systemu. Po wgraniu wybranych pakietów zainstalowany system jest uruchamiany (bez restartu maszyny) w trybie tekstowym.
12. Tryb logowania. Automatycznie uruchamiany jest program postinstalacyjny.Wpierwszej kolejnosci musimy zdecydowac czy do systemu bedziemy sie logowac w trybie tekstowym lub graficznym. Wybieramy otoczenie graficzne. Automatycznie uruchamiany jest program sax2 do konfiguracji X Windows.
13. Konfiguracja X Windows. W ramce podane sa parametry wykrytego sprzetu. Mozna je zmienic przyciskiem „Change”. Niestety X Server wybierany jest automatycznie i nie mamy mozliwosci jego zmiany. Poprawnosc ustawien sprawdzamy wybierajac przycisk „Test”. Konfiguracja X Windows konczy proces instalacji. System bez restartu przechodzi do odpowiedniego trybu działania.
14. Konfiguracja sprzetu W toku instalacji mozemy opcjonalnie skonfigurowac peryferia takie jak modem, karta dzwiekowa i drukarka. Konfiguracja tego sprzetu mozemy równiez wykonac po zakonczeniu instalacji uruchamiajac program YaST2.

2.5.2 Dostrajanie
1. X Windows Program sax2 konfiguruje serwer XFree 4.0.3 zapisujac konfiguracje w /etc/X11/XF86Config. Jezeli serwer z serii nam nie odpowiada konfiguracje XFree 3.3.6 wykonujemy programem sax. Niezbedne pakiety zostana automatyczne załadowane z nosnika. Koniecznie nalezy znac zakresy czestotliwosci odchylania pionowego i poziomego monitora. Konfigurowane sa nastepujace elementy:
• karta grafiki (automatycznie),
• monitor (automatycznie)
• rodzdzielczosc i liczba bitów na piksel,
2. Konfiguracja drukarki. W okienku terminala uruchamiamy yast2 lub wybieramy K!SuSE!System!Configuration!YaST2 Wsekcji Hardware wybieramy Printer. Dla drukarki definiujemy nazwe kolejki, sterownik, rozmiar papieru, itd. 3. Konfiguracja modemu. W okienku terminala uruchamiamy yast2 lub wybieramy K! SuSE! System! Configuration! YaST2 W sekcji Network/Basic wybieramy Modem configuration.
4. Konfiguracja karty sieciowej. W okienku terminala uruchamiamy yast2 lub wybieramy K! SuSE! System! Configuration! YaST2 W sekcji Network/Basic wybieramy Network Card Configuration. Karta ethernet moze byc skonfigurowana automatycznie jezeli w sieci lokalnej znajduje sie serwer DHCP lub statycznie. W drugim przypadku nastepujace parametry musimy dostac od administratora sieci: numer IP, netmask, hostaname, domainname, gateway IP, server DNS główny i ew. zapasowe. Zaznaczamy aktywacje interfejsu przy starcie systemu.
5. Konfiguracja karty dzwiekowej W okienku terminala uruchamiamy yast2 lub wybieramy K!SuSE!System!Configuration!YaST2 Wsekcji Hardware wybieramy Sound.
6. Dogrywamy lokalizacje KDE. W okienku terminala uruchamiamy yast2 lub wybieramy K! SuSE! System! Configuration! YaST2 W sekcji Software wybieramy moduł Install/Remove Software. Wazne aby w momencie uruchomienia modułu pierwsza płyta zestawu była włozona do napedu CD. Wybieramy przycisk Search i wpisujemy kde-i18n. Z listy wyswietlonych pakietów zaznaczamy do instalacji (podwójne kliniecie) kde-i18n-pl. Wybór zatwierdzamy przyciskiem OK.
7. Polska czczionka na konsoli Uruchamiamy program yast2, wybieramy zakładke misc, a nastepnie przycisk RC-Config Editor. Wybieramy zakładke Base-Administation! Console! console font. Jako wartosc zmiennej wpisujemy lat2-16.psfu. Nowe ustawienia beda obowiazywały dopiero po restarcie systemu. Aby wymienic font na konsoli w uruchomionym systemie w terminalu wpisujemy /etc/init.d/kbd restart.
8. Polski jezyk w sytemie. Uruchamiamy program yast2, wybieramy zakładke misc, a nastepnie przycisk RC-Config Editor. Wybieramy zakładke Base-Administation! Localisation. Do zmiennych rc lang i rc lc * wpisujemy wartosc pl PL. Jezeli lokalizacja systemu ma równiez obowiazywac dla uzytkownika root to do zmiennej root uses lang równiez wpisujemy pl PL.
9. KDE po polsku dla root’a. Wybieramy K!Preferences !Personalization!Country and Language. Ustawiamy polski jezyk oraz kodowanie ISO 8859-2. Wylogowujemy sie z KDE.
10. Polskie teksty w graficznym ekranie logowania. W okienku K! Preferences! System! Login Menager. wybieramy Country: Polska i czczionki z kodowaniem ISO 8859-2.
11. Konfiguracja czczionki terminala. Uruchamiamy terminal: K! Terminale! Terminal. W okienku Settings! Czczionka! Definiuj wybieramy misc-fixed o rozmiarze 16 i kodowaniu ISO 8859-2. Rozmiar terminala dostosowujemy poleceniem Settings! Rozmiar! 80x25 (ibmpc). Zmiany zachowujemy poleceniem Settings! Save settings.
12. Konfiguracja Netscape. Uruchamiamy Netscape (K!SuSE!Internet!WWW! Netscape Communicator). Dodajemy jezyk polski w Edit! Preferences! Navigator ! Languages. Strony WWW zawierajace polskie znaki narodowe drukujemy (File ! Print) komenda ogonkify -AT -N | lpr lub drukujemy do pliku netscape.ps i przetwarzamy go komenda ogonkify -AT -N netscape.ps > netscape-pl.ps Wynik konwersji sprawdzamy przegladarka gv gv netscape-pl.ps
13. Aktualizacje i poprawki. Aktualizacje, poprawki i dodatkowe pakiety mozna znalezc pod adresem ftp://ftp.task.gda.pl/pub/linux/SuSE-Linux/i386/

2.5.3 Błedy i niedoróbki
1. Podczas inicjalizacji sieci przez DHCP nie jest aktualizowana nazwa hosta na podstawie wpisu w DNS’ie. Ponizszy skrypt nalezy umiescic w skryptach startowych systemu, tuz za inicjalizacja sieci.
#!/bin/sh
DEVICE=eth0
IPADDR=‘LANG= LC_ALL= ifconfig $DEVICE | grep ’inet addr’ |
awk -F: ’{ print $2 } ’ | awk ’{ print $1 }’‘
FQHOSTNAME=‘LANG= LC_ALL= host $IPADDR | awk ’{print $5}’‘
HOST=‘echo $FQHOSTNAME | sed ’s/\..*\.//’‘
DOMAIN=‘echo $FQHOSTNAME | sed ’s/^[^\.]*\.//’ | sed ’s/\.$//’‘
echo $IPADDR
echo $FQHOSTNAME
echo $HOST
echo $DOMAIN
hostname $FQHOSTNAME
echo "$HOST" > /etc/HOSTNAME
if ! grep search /etc/resolv.conf >/dev/null 2>&1; then
echo "search $DOMAIN" >> /etc/resolv.conf fi

2.6 Wydruki z własnych programów
Najlepiej drukowac do postscriptu. Jezeli korzystamy z polskich fontów (ISO-8859-2) to najlepiej bezposrednio dołaczyc je do pliku wynikowego. Musimy dysponowac wersja zródłowa fontu (pliki z rozszerzeniem *.pfa) Oto fragment programu w C++ generujacego wyjscie w postscripcie korzystajacego z polskich fontów Courier
#define FONT_NORMAL "Courier"
#define FONT_NORMAL_FILE "cour-iso2.pfa"
#define FONT_BOLD "Courier-Bold"
#define FONT_BOLD_FILE "courb-iso2.pfa"
// wygeneruj nagłówek pliku
cout << "%!PS-Adobe-2.0" << endl ;
copyfile(FONT_NORMAL_FILE,cout) ;
cout << endl ;
copyfile(FONT_BOLD_FILE,cout) ;
cout << endl ;
// wybierz font
cout << "/" << FONT_NORMAL << " findfont 12 scalefont setfont" << endl ;
// teksty
.........
// zmien font
cout << "/" << FONT_BOLD << " findfont 12 scalefont setfont" << endl ;
// teksty

Elementy systemu


3.1 Uzytkownicy sytemu
Linux jest systemem wielodostepnym. W jednym czasie moze wiec z zasobów stacji roboczej korzystac wiele osób. Aby osoba mogła uzykac do zasobów musi miec załozone tzw. konto. Konto identyfikowane jest przez nazwe, inaczej okreslana mianem uzytkownika. Dostep do konta uzyskuje sie po podaniu własciwego hasła. Z kontem zwiazanych jest szreg informacji o charakterze administracyjnym. Dla kazdego uzytkownika (konta) przydzielony jest katalog domowy. Własciciel konta ma prawo tworzenia, zmieniania i niszczenia plików w tym katalogu. W prawidłowo skonfigurowanym systemie uzytkownik nie powinien miec mozliwosci zmiany plików poza swoim katalogiem domowych. Z kontem uzytkownika moze byc zwiazane ograniczenie wykorzystania przestrzeni dyskowej, tzw. quota.
Uzytkownicy systemu moga miec rózne prawa. Aby ułatwic zarzadzanie dostepem do zasobów systemu wprowadzono pojecie grupy. Grupa to po prostu podzbiór uzytkowników, która ma pewne szczególne prawa, np. dostep do stacji CD-ROM. Uzytkownik moze nalezec do wielu grup. Prawa uzytkownika nalezacego do wielu grup sa suma praw przydzielonych poszczególnym grupom.
Wykaz uzytkowników systemu znajduje sie w pliku /etc/passwd. pz:x:501:501:Piotr Zawadzki:/users/pz:/bin/bash Obok nazwy uzytkownika okreslone sa tam: dane identyfikacyjne takie jak nazwisko, telefon, itp. oraz katalog domowy. W starszych systemach plik ten zawierał równiez zaszyfrowane hasła uzytkowników. Obecnie praktykuje sie umieszczania zaszyfrowanych haseł w pliku /etc/shadow, do którego dostep ma jedynie administrator systemu.
pz:p2SxDhYqIK/j2:11592:0:99999:7:0::
W pliku /etc/group zawarte jest przyporzadkowanie uzytkowników systemu do grup.

3.2 Pliki
Z punktu widzenia uzytkownika systemu przestrzen dyskowa jest zbiorem plików. Porzadek i hierarchiczna strukture w zbiorze plików zapewniaja katalogi. Kopiowanie, przesuwanie i usuwanie plików zapewniaja komendy cp, mv, rm.

3.2.1 Atrybuty plików
Kazdy plik i katalog ma przyporzadkowanego uzytkownika i grupe. Czesto mówi sie, ze plik nalezy do uzytkownika i grupy. Do zmiany przyporzadkowania słuzy komenda chown. Kazdy plik i katalog ma przydzielone prawa do odczytu, zapisu i wykonania. Osobny zestaw praw przydzielony jest włascicielowi, grupie oraz pozostałym uzytkownikom systemu. Tak wiec prawa do pliku lub katalogu kontrolowane sa przez 9 bitów. Prawa dostepu do pliku ustala sie komenda chmod. Znaczenie atrybutu wykonywalnosci, oraz praw do odczytu i zapisu dla zwykłych plików jest oczywiste. Dla katalogów interpretacja praw jest nastepujaca: atrybut wykonywalnosci oznacza mozliwosc przejscia do katalogu (np. komenda cd), prawo do odczytu oznacza mozliwosc wylistowania zawartosci katalogu (np. komenda ls), a prawo do zapisu oznacza mozliwosc tworzenia plików w katalogu (np. komenda touch).

3.2.2 Dowiazania symboliczne
Jak zauwazylismy na wstepie system plików pozwala na zarzadzanie przestrzenia dyskowa poprzez pojecia plików i katalogów. O pliku mozna w pierwszym przyblizeniu myslec jak o dowiazaniu okreslonej nazwy do fragmentu przestrzeni dysku. W Linuksowych systemach plików (ext2, ext3, reiserfs) do okreslonego fragmentu przestrzeni dyskowej mozna utworzyc wiele dowiazan, lub inaczej mówiac, mozna jej nadac wiele nazw. Poprzez wskazanie do tego samego fragmentu dysku istnieje scisły zwiazek miedzy plikami. Zwiazek ten nazywamy twardym dowiazaniem (ang. hardlink ). Zmiany naniesione w jednym z plików sa natychmiast widoczne w drugim. Kontrola nad danym fragmentem przestrzeni dyskowej jest zachowana tak długo, jak długo przypisana jest do niego co najmniej jedna nazwa, a kasowanie pliku polega jedynie na usunieciu dowiazania o ile tylko nie jest to ostatnie wskazanie na plik. Sama istota dowiazan twrdych wymaga, aby oba powiazane ze soba pliki nalezały do tego samego pliku. Do tworzenia dowiazan twardych słuzy komenda ln. Istnieje jeszcze jeden typ dowiazan, tzw. dowiazania symboliczne (ang. symbolic link ). Dowiazanie symboliczne realizowane sa niejako w wyzszej warstwie systemu plików. W pierwszym przyblizeniu o dowiazaniu symbolicznym mozna myslec jako o wskazniku do nazwy pliku. Oznacza to, ze utworzenie dowiazania symbolicznego wymaga zuzycia dodatkowej przestrzeni dyskowej (wskaznik przechowuje co najmniej nazwe pliku który wskazuje). Niewatpliwa zaleta dowiazan symbolicznych jest mozliwosc rozmieszczenia dowiazan na rozłacznych systemach plików.

3.2.3 Kontrola montowania systemów plików
W Linuksie nie ma pojecia napedów dysków. Systemy plików umieszczone na urzadzeniach blokowych moga byc integrowane z głównym drzewem katalogów przy uzyciu komendy mount. Komenda mount wymaga podania typu systemu plików na urzadzeniu, nazwy urzadzenia blokowego oraz katalogu w którym bedzie widoczna zawartosc katalogu. Jednak kazdorazowe montowanie niezbednych systemów plików po uruchomieniu systemu byłoby bardzo uciazliwe. Do automatyzacji procesu montowania systemów plików wykorzystuje sie plik /etc/fstab. W pliku tym zawarte sa niezbedne dane do wykonania procesu montowania uzupełnione szeregiem pozytecznych opcji. W pliku /etc/fstab podaje sie m.in. czy na systemie plików obowiazuje kontrola przydziału przestrzeni dyskowej, czy integralnosc systemu plików powinna byc sprawdzana po nieprawidłowym zakonczeniu pracy systemu, czy wreszczie system plików moze byc zamontowany przez nieuprzywilejowanego uzytkownika. Montowanie systemów plików okreslonych w /etc/fstab jest bardzo uproszczone, bowiem komendzie mount wystarczy przekazac nazwe punktu montowania. Pozostałe sa ustalane na podstawie pliku /etc/fstab.
/dev/hda1 /mnt/windows vfat user,exec,umask=0,codepage=852,iocharset=iso8859-2
0/dev//dev/hda5 /users ext2 defaults 1 2
/dev/fd0 /mnt/floppy vfat noauto,owner 0 0
Obok tradycyjnego mechanizmu montowania systemu plików jadro Linuksa wyposazone jest w mechanizm supermount. Mechanizm ten pozwala na wymiane płyt CD i dyskietek bez uprzedniego montowania i odmontowania, które to operacje wykonywane sa przez jadro gdy jest to konieczne. Wada tego podejscia jest wyłaczenie buforowania dla tak udostepnionych systemów plików.
/mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom 0 0
/mnt/zip /mnt/zip supermount user,fs=vfat,dev=/dev/zip 0 0

3.3 Kontrola urzadzen zewnętrznych
Komunikacja z urzadzeniem zewnetrznym wymaga wykonania nastepujacych kroków: instalacji sterownika do urzadzenia zapewniajacego jednolity interfejs dla danej klasy urzadzen oraz przekazywania i odbierania danych interpretowanych przez sterownik.

3.3.1 Moduły jadra
W starszych wersjach Linuksa sterwonik urzadzenia musiał byc wkompilowny w jadro. W praktyce oznaczało to, ze w zasadzie po instalacji systemu nalezało wykonac rekompilacje jadra aby umiescic w nim sterowniki do posiadanego sprzetu i wyrzucic balast zajmujacy pamiec RAM, jakim były sterowniki do pozostałaych urzadzen. Obecnie jadro Linuksa ma budowe modułowa. Oznacza to, ze elementy jadra moga byc ładowane i usuwane z pamieci w czasie działania systemu. Do zarzadzania modułami słuza komendy lsmod, insmod i rmmod. Moduły jadra sa ze wzajemnie ze soba powiazane i poprawne działanie niektórych modułów wymaga załadowania innych. Ładowanie modułów komenda insmod nie uwzglednia zaleznosci miedzymodułowych, co powoduje, ze uzycie w/w komendy jest w niektórych przypadkach bardzo utrudnione.
Zarzadzanie modułami z uwzglednieniem zaleznosci umozliwiaja komendy depmod i modprobe. Pierwsza z nich bada wzjemne zaleznosci i zapisuje je w pliku /lib/modules/- /modules.dep. Zazwyczaj baza danych zawarta w tym pliku jest budowana przy kazdorazowym starcie systemu. Druga z komend jest odpowiedzialna jest za ładowanie i usuwanie modułów z pamieci z uwzglednieniem zaleznosci ustalonych przez depmod. Jadro systemowe zapewnia abstrakcje obsługi wielu typów urzadzen, np. kart sieciowych Ethernet, strowników SCSI, kart dzwiekowych, kart telewizyjnych. Do obsługi tych urzadzen jadro korzysta z wewnetrznych nazw tych interfejsów. I tak pierwszej karcie sieciowej odpowiada
urzadzenie o nazwie eth0, drugiej – eth1, sterownikowi SCSI – scsi hostadapter,
pierwszej karcie dzwiekowej – sound-slot-0, drugiej – sound-slot-1, karcie telewizyjnej –
char-major-81.
alias scsi_hostadapter ncr53c8xx
alias char-major-81 bttv
alias sound-slot-0 opl3sa2
alias synth0 opl3
options opl3 io=0x388
options opl3sa2 isapnp=1
Gdy moduł ładowany jest recznie kod zawarty w module informuje jadro do jakiej klasy nalezy moduł. Jednak ładowanie reczne modułów przy kazdorazowym starcie systemu moze byc uciazliwe. Ponadto załadowane moduły pozostaja w pamieci niezaleznie od tego czy sa uzywane czy nie. W Linuksie mozna zorganizowac ładowanie modułów „na zadanie”, tj. moduł jest ładowany gdy jadro zamierza skorzystac z usług urzadzenia danej klasy i usuwany, gdy pozostaje przez pewien zadany czas w bezczynnosci. Na przykład gdy jadro chce skomunikowac sie z urzadzeniem danej klasy to zada usługi od odpowiadajacego urzadzniu interfejsu, np. aby wysłac ramke do sieci Ethernet, zada odpowiedniej usługi od interfejsu eth0. Jednak konkretny sterownik zapewniajacy obsługe urzadzenia zalezny jest od konkretnych rozwiazan sprzetowych. Stad istnieje wiele sterowników obsługujacych rózny sprzet a zapewniajacych jednolity interfejs dla jadra systemowego. Do ustalenia zwiazku miedzy abstrakcyjnym interfejsem
urzadzenia danej klasy a konkretnym sterownikiem słuzy plik /etc/modules.conf. Inaczej mówiac, w pliku tym znajduje sie informacja który moduł odpowiedzialny jest za obsługe danego interfejsu jadra. System wyposazony w taka informacje moze ładowac dany sterownik tylko gdy z niego korzysta. Sterowniki nie uzywane moga byc automatycznie usuniete z pamieci.

3.3.2 Pliki urz±dzeń
Z punkyu widzenia jadra sterwnik realizuje okreslonu interfejs. Zgdonie z filozofia systemu, w którym virtualnie wszystko jest plikiem, komunikacja programów z urzadzeniami zewnetrznymi odbywa sie poprzez pliki. Kazdemu urzazdeniu przypisany jest odpowiedni plik. Jezeli nastepuje próba zapisu lub odczytu z pliku urzadzenia, zadaniem jadra jest sprawdzenie czy dane moze byc obsłuzone i ewentualne załadowanie sterownika na podstawie zawartosci /etc/modules.conf. Pliki specjalne odpowiedzialne za obsługe urzadzen znajduja sie w katalogu /dev. Najwazniejszym podziałem jest podział na urzadzenia blokowe i znakowe. W kazdej z tych grup urzadzenia identyfikowane sa przez dwa bajtowe numery: główny (ang. major) i pomocniczy (ang. minor). Pierwszy z numerów identyfikuje typ urzadzenia (karta sieciowa, karta dzwiekowa, itd.) lub inaczej mówiac rodzaj interfejsu, drugi zas jest numerem kolejnym urzadzenia w danej klasie. Przypisanie numerów do klas urzadzen mozna znalezc w pliku /usr/src/- linux/Documentation/devices.txt. Pliki urzadzen tworzy sie komenda mknod.

3.4 Procesy
Linux jest systemem wielozadaniowym, tzn. moze w nim pracowac wiele programów jednoczesnie. Sytem operacyjny kazdemu programowi przydziela chroniony obszar pamieci (inny proces nie ma dostepu do tego obszaru pamieci) oraz czesc czasu procesora. W terminologii UN*X’a kazdy uruchomiony program nazywamy procesem. Uruchomienie procesu odbywa sie zawsze za posrednictwem innego procesu. Proces odpowiedzialny za uruchomienie danego procesu nazywany jest procesem przodkiem, natomiast proces uruchomiony – procesem potomnym. Kazdy proces w systemie ma przydzielony swój identyfikator, tzw. PID. Prawa procesu w systemie sa co najwyzej takie, jak prawa uzytkownika który go uruchomił. Aby proces miał wieksze prawa, a dokładniej prawa własciciela lub grupy posiadajacej plik z programem, plik ten musi miec ustawiony atrybut SUID i/lub GUID. Mimo iz istnienie programów z takimi strybutami jest w systemie niezbedne, to stanowia one potencjalne zagrozenie dla bezpieczenstwa systemu. Inteligentne wykorzystanie błedów w programach z atrybutami SUID i GUID moze byc uzyte do powiekszenia swoich praw w systemie, w szczególnym przypadku – uzyskania przywilejów administratora. Procesy uruchomione w systemie sprawdzamy komenda ps, a podział czasu procesrora pomiedzy procesy podaje komenda top. Z procesem mozna komunikowac sie wysyłajac do niego sygnały (UN*X’owy odpowiednik przewan). Do wysyłania sygnałów słuzy komenda kill, Aby zatrzymac działanie procesu nalezy wysłac do niego sygnał SIGTERM lub SIGKILL.

3.5 Interfejs użytkownika
Komplet klawiatura, mysz, monitor moga byc w Linuksie uzywane jednoczesnie do prowadzenia wielu sesji. Jest to mozliwe dzieki koncepcji konsoli wirtualnej. Konsola wirtualna moze byc obsługiwana w trybie tekstowym lub graficznym. Zdarzenia wejscia/wyjscia obsługiwane sa przez konsole biezaca. Przełaczanie miedzy konsolami w trybie tekstowym wykonujemy klawiszami ˇCtrlż ˇFxż gdzie x oznacza numer konsoli. Liczba konsoli tekstowych jest konfigurowalna. Dystrybucje Linuksa zazwyczaj sa skonfigurowane na 6 konsoli tekstowych. Pozostałe konsole tj. o numerach wiekszych od 6, moga byc wykorzystywane jako konsole graficzne. Konsola inicjowana jest do trybu graficznego przez system X Window. Przełaczanie miedzy konsolami w trybie graficznym realizuje kombinacja klawiszy ˇCtrlżˇAltżˇFxż gdzie ponownie x oznacza numer konsoli. Powyzsza kombinacja pozowala równiez na przełaczanie sie miedzy trybem tekstowym i graficznym.

3.5.1 Logowanie do systemu
Logowanie do systemu moze odbywac sie w trybie tekstowym (na konsolach od 1 do 6) lub w trybie graficznym na konsoli 7. konfiguracje konsoli omówimy bardziej szczegółowo podczas omawiania programu init. Po zalogowaniu w trybie tekstowym uzytkownik wydaje korzystajac z interfejsu powłoki. Powłoka jest UN*X’owym odpowiednikiem programu DOS’owego command.com. Jednak w Linuksie mamy do wyboru kilka róznych powłok, z których najbardziej popularne to bash i tcsh. Linuksowe powłoki wyposazone sa jezyk programowania (specyficzny dla danej powłoki) pozwalajacy na realizacje działan warunkowych, petli, itp. Zarzadzanie plikami z poziomu powłoki jest dosc uciazliwe, dlatego dobrze jest skorzystac z programu mc. Jest to program bardzo podobny w idei działania do programu Norton Commander.
Pracujac w trybie tekstowym mozemy w dowolnym momencie uruchomic graficzny interfejs uzytkownika komenda startx. Graficzny interfejs realizuje serwer X Windows realizowany w ramach projektu XFree86. Sam serwer jest jedynie obszarem ekranu na którym rózne programy moga umieszczac dane. Srodowisko okienkowe, tj. przesuwanie, zamykanie realizuje nastepna warstwa oprogramowania nazywana zarzadca okien (ang. Window Manager). Istnieje wiele programów pełniacych funkcje zarzadcy okien. Najwazniejsze z nich to WindowMaker, fvwm, AfterStep. Obok zarzadców okien powstały dwa projekty, których zadaniem jest stworzenie graficznego srodowiska pracy, obejmujace programy pocztowe, zarzadce plików, przegladarke WWW, programy typu PIM (ang. Personal Information Management). Projekty te to GNOME i KDE rozprowadzone obecenie z wiekszoscia dystrybucji. Graficzny zarzadca logowania XDM (lub jeden z odpowiedników KDM, GDM)

Start systemu


4.1 Ładowanie jadra sytemu
Najczestsza metoda bootowania Linuksa jest korzystanie z LILO (ang. LInux LOader). LILO jest programem który pozwala na wybór systemu opracyjnego podczas startu systemu. Po właczeniu zasilania i rozpoznaniu zainstalowanych urzadzen BIOS usiłuje uruchomic program ładujacy (wg. wskazan ustawionych w SETUP). Zazwyczej urzadzeniem z którego bedzie ładowany program ładujacy jest pierwszy dysk na pierwszym kontrolerze (choc wiele BIOS’ów pozwala obecnie na wybór innego dysku), czyli w terminologii Linuksowej /dev/hda. Najpierw kontrola przekazywana jest do programu zawartego w pierwszym sektorze urzadzenia z którego nastepuje start. Pierwszy sektor na dysku twardym nosi nazwe Master Boot Record (MBR). W przypadku systemów operacyjnych producenta „wiodacego” na rynku oprogramowania program z MBR przekazuje kontrole do programu zawartego w pierwszym sektorze (tzw. boot sector) partycji oznaczonej jako aktywna (ew. bootable). LILO moze byc zainstalowane zarówno w MBR, jak i pierwszym sektorze aktywnej partycji. Decyzja o miejscu instalacji jest podejmowana w czasie wstepnej konfiguracji systemu. Ewentualne zmiany moga byc zawsze wprowadzone recznie w pliku /etc/lilo.conf lub przy uzyciu programu konfiguracyjnego zaleznego od dytsrybucji (np. linuxconf w dystrybucji RedHat). Nalezy pamietac, ze plik /etc/lilo.conf nie jest plikiem konfiguracyjnym programu ładujacego, a jedynie opisem jak program ładujacy ma byc skonfigurowany w systemie. Do utworzenia i/lub aktualizacji opcji programu ładujacego słuzy komenda /sbin/lilo. Po jakiejkolwiek zmianie /etc/lilo.conf nalezy wiec uruchomic /sbin/lilo. Przykładowy plik konfiguracyjny dla lilo zamieszczono ponizej
boot = /dev/hda
prompt
timeout = 500
read-only
default = linux
image = /boot/vmlinuz-2.2.14-5.0
label = linux
root = /dev/hda6
other = /dev/hda3
label = win
Opcja boot definiuje gdzie bedzie zainstalowany program ładujacy. Ustawienie /dev/hda oznacza MBR pierwszego dysku na pierwszym kontrolerze. Przykładowe inne dozwolone ustawienie to /dev/hda1 oznaczajace pierwszy sektor pierwszej partycji. Opcja prompt oznacza, ze zostanie wyswietlone zaproszenie do wyboru systemu operacyjnego w postaci LILO:. Opcja timeout okresla czas (w milisekundach) na reakcje uzytkownika po wyswietleniu zaproszenia.
Przy braku reakcji zostanie uruchomiony system zdefiniowany opcja default. Opcja read-only ma wpływ jedynie na proces ładowania Linuksa, i oznacza, ze podczas startu systemu jadro powinno zamontowac system plików „/” w trybie tylko do odczytu1. Dlasza czesc pliku podzielona jest na tzw. sekcje. Sekcja zaczyna sie słowem image lub other i konczy poczatkiem nastepnej sekcji lub koncem pliku. Sekcja image definiuje lokalizacje jadra systemu orza jego etykiete podawana podczas wyboru. Nastepnie podawana jest lista parametrów przekazanych do jadra systemu przy jego uruchomieniu. W podanym przykładzie opcja root definiuje system plików który bedzie zamontowany jako /. Parametry przekazywane do jadra mozna zmienic podczas startu systemu w linii wyboru systemu operacyjnego np. aby partycja /dev/hdc7 była uzywana jako system plików / musimy wpisac
LILO: linux root=/dev/hdc7
Sekcja other definuje etykiete do uruchomienia systemu operacyjnego innego niz Linux, oraz partycje z której zostanie uruchomiony program ładujacy dany system. Oczywiscie sekcji other i image moze byc wiele. Opis wszystkich mozliwych parametrów jadra znajduje sie w pliku kernel-parameters.txt w katalogu /usr/src/linux/Documentation2

4.2 Proces init
Jadro po załadowaniu sie do pamieci, rozpoznaniu zainstalowanego sprzetu i zamontowaniu partycji „/” jako read-only uruchamia proces init. init jest przodkiem wszystkich procesów uruchomionych w systemie. Jest to zarazem jedyny proces który nie ma przodka. Proces init ma zawsze PID = 1. Plikiem konfiguracyjnym procesu init jest plik /etc/inittab. Start systemu odbywa sie poprzez interpretacje własnie tego pliku. Tak wiec plik /etc/inittab jest odpowiednikiem pliku CONFIG.SYS z systemów operacyjnych pewnego „wiodacego” na rynku producenta. Proces init moze uruchomic system w kilku trybach (tzw. poziomach uruchomienia, ang. runlevel ). Tryby maja oznaczenia cyfrowe od 0 do 6. Tryby pracy 0,1 i 6 sa zarezerwowane: 0 – zatrzymanie systemu (tzn. aby zatrzymac system musimy zarzadac od init uruchomienia systemu w trybie 0), 1 – praca w trybie jednego uzytkownika, 6 – ponowne uruchomienie (reboot) systemu. Pozostałe tryby wykorzystywane sa róznie w zaleznosci od dystrybucji. 1Dopiero w po sprawdzeniu systemu plików jest on montowany w trybie do odczytu i zapisu. 2Nalezy wczesniej zainstalowac pakiet kernel-doc. Składnia pliku /etc/inittab opisana jest na stronie pomocy (man inittab). Elementy pliku /etc/inittab maja nastepujaca składnie id:runlevels:action:process gdzie id jest dowolnym dwuliterowym identyfikatorem, runlevels lista poziomów uruchomienia w których dany element pliku jest aktywny (np. wpis 0123 oznacza, ze dany element bedzie aktywny w poziomach uruchomienia 0, 1, 2 i 3), action opisuje jakie ma podejmowac xinit przy wykonywaniu programu wymienionego w polu process. Dozwolone wartosci pola action to initdefault Ustawienie typowego poziomu uruchomienia. Pole process jest ignorowane, natomiast w polu runlevels powinien wystepowac oznaczenie tylko jednego poziomu uruchomienia.
respawn Wymieniony proces jest uruchamiany i init przetwarza plik konfiguracyjny nie czekajac na zakonczenie jego działania. Gdy proces zakonczy swoje działanie jest automatycznie uruchamiany ponownie. wait Proces zostanie uruchomiony jeden raz i przetwarzanie pliku /etc/inittab zostanie wstrzymane dopóki proces nie zakonczy swojego działania. once Proces jest uruchamiany jeden raz. Po uruchomieniu procesu przetwarzanie /etc/inittab jest kontynuowane.
boot Proces jest uruchamiany tylko podczas startu systemu. Pole zawierajace poziomy uruchomienia jest ignorowane, proces nie jest uruchamiany podczas zmiany poziomu uruchomienia działajacego systemu. bootwait Podobnie jak boot, z tym, ze przetwarzanie /etc/inittab jest wznawiane po zakonczeniu procesu. sysinit To samo co bootwait. ctlraltdel proces jest wykonywany gdy nacisniete zostana „trzy magiczne klawisze”. powerfail Proces jest wykonywany gdy system otrzyma sygnał od UPS o braku zasilania. powerok Proces jest wykonywany gdy po krótkotrwałym braku zasilania zostaje ono przywrócone.
Dalej przeanalizujemy zawartosc /etc/inittab z dystrybucji RedHat 6.2. W systemie RedHat oprócz trybów zarezerwowanych wykorzystywane sa nastepujace poziomy uruchomienia:
2 tryb wielodostepny z wyłaczonym NFS,
3 tryb 2 + NFS,
5 tryb 3 + grafczny interfejs logowania.

4.2.1 Inicjalizacja systemu
Przedstawione nizej elementy pliku /etc/initab sa odpowiedzialne za podstawowa incjalizacje sytemu.
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ud::once:/sbin/update
Widzimy, ze w podanym przykładzie standardowy tryb uruchomienia to 5. Nastepnie uruchamiany jest proces /etc/rc.d/rc.sysinit (odpowiednik AUTOEXEC.BAT). Proces init czeka, az rc.sysinit skonczy sie wykonywac. Nastepnie wykonywany jest skrypt /etc/rc.d/rc odpowiedzilany za konfiguracje usług specyficznych dla danego poziomu uruchomienia.
Numer poziomu uruchomienia przekazywany jest do /etc/rc.d/rc jako parametr. Ostatnim elementem podstawowej konfiguracji jest uruchomienie demonów (programów rezydentnych)
odpowiedzialnych za zapisywanie buforów dyskowych. Funkcjonalnie, działanie /sbin/update jest bardzo podobne do działania programu SmartDrive.

4.2.2 Zdarzenia wyjatkowe
Przez zdarzenia wyjatkowe rozumiemy tutaj zdarzenia, które wystepuja stosunkowo rzadko i wymagaja szybkiej reakcji systemu. Takim zdarzeniom odpowiadaja nastepujace wartosci pola action: ctrlaltdel. powerfail, powerok. ca::ctrlaltdel:/sbin/shutdown -t3 -r now pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" Jak widac reakcja na wszystkie te zdarzenia wymaga skorzystania z komendy shutdown. Znaczenie poszczególnych opcji mazna znalezc na stronie pomocy (man shutdown). Znaczenie komend odpowiadajacych poszczególnym kluczom jest nastepujace ctrlaltdel natychmiast ururuchom ponownie komputer. powerfail poczekaj 2 minuty i zamknij system. Uzytkownikom systemu wyslij komunikat o zaniku mocy. powerfail zrezygnuj z zamkniecia systemu. Ostatnie dwa zdarzenia moga wystapic w systemie który jest przyłaczony do UPS. Komunikacje z UPS zapewnia demon powerd.

4.2.3 Logowanie do systemu
Do systemu mozemy logowac sie zarówno w trybie tekstowym jak i graficznym.
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
Obsługe konsol tekstowych realizuje program mingetty 3. Program rezerwuje odpowiednie urzadzenie /dev/tty? odpowiadajace konsoli tekstowej, wyswietla na niej plik /etc/issue i uruchamia program login odpowiedzialny za uwierzytelnienie uzytkownika. W podanym przykładzie inicjowanych jest 6 konsol tekstowych (id = 1 ÷ 6 uruchamianych w poziomach uruchomienia 2 ÷ 5.
Graficzny interfejs logowania zarówno z lokalnej konsoli, jak i poprzez siec moga realizowac nastepujace programy: xdm (XFree86), gdm (GNOME), kdm (KDE). W omawianym przykładzie uruchamiany jest skrypt /etc/X11/prefdm. Zadaniem tego skryptu jest wybór i uruchomienie preferowanego w danym systemie menedzera logowania. Preferencje ustalane sa na podstawie zawartosci pliku /etc/sysconfig/desktop (patrz rozdział ??).

4.3 Skrypty startowe
W systemie RedHat 6.2 inicjalizacja systemu wzorowana UNIX System V. Pliki startowe systemu znajduja sie w katalogu /etc/rc.d, przy czym
• za konfiguracje niezalezna od poziomu uruchomienia odpowiedzialne sa pliki rc.*,
• skrtypty startowe poszczególnych usług znajduja sie w podkatalogu init.d,
• usługi które maja byc uruchomione dla danego poziomu uruchomienia sa okreslone
w podkatalogach rc?.d przez umieszczenie dowiazania symbolicznego do odpowiedniego skryptu z katalogu init.d.

4.3.1 Podstawowa inicjalizacja systemu
Za podstawowa konfiguracje systemu RedHat 6.2 odpowiedzialny jest skrypt /etc/rc.sysinit. Oto lista zadan które sa realizowane przez ten skrypt.
1. Odczytanie podstawowych parametrów konfiguracyjnych sieci z pliku /etc/sysconfig/network. 3Logowanie do systemu z terminala podłaczonego do portu szeregowego obsługuje program mgetty
2. Załadowanie i wykonanie funkcji pomocniczych dla procesu startu systemu z pliku /etc/rc.d/ init.d/functions. Konfiguracja bootowania systemu znajduje sie w pliku /etc/sysconfig/init,
3. Zamontowanie systemu plików proc zapewniajacego dostep do biezacej konfiguracji jadra systemu.
4. Ustawienie parametrów jadra systemu poleceniem sysctl na podstawie pliku konfiguracyjnego /etc/sysctl.conf. Zazwyczaj ustawiane parametry dotycza trybu współpracy jadra sytemu z siecia.
5. Na podstawie pliku /etc/sysconfig/clock ustawiany jest zegar systemowy zgodnie z zadeklarowana strefa czasowa.
6. Inicjowana jest mapa klawiatury. Jezeli istnieje plik
/etc/sysconfig/console/default.kmap
to jest przyjmowany jako prawidłowa mapa klawiatury. W przeciwnym razie mapa klawiatury ustalana jest na podstawie zawartosci pliku /etc/sysconfig/keyboard. Dostepne mapy klawiatur mozna sprawdzic w katalogu /usr/lib/kbd/keymaps/ . Aktywacje wybranej mapy klawiatury realizuje komenda loadkeys.
7. Załadowanie fontu ekranowego realizowane jest komenda setsysfont. Nazwe fontu definiujemy w pliku /etc/sysconfig/i18n przez przypisanie nazwy fontu do zmiennej SYSFONT.Wcelu otrzymania nazwy pliku zawartosc zmiennej SYSFONT uzupełniana jest o rozszerzenia *.psf.gz lub *.gz. Plik o tak wygenerowanej nazwie poszukiwany jest w katalogach
/etc/sysconfig/console/
/usr/lib/kbd/consolefonts/
8. Aktywowanie partycji wymiany.
9. Ustanowienie nazwy hosta.
10. Ustanowienie domeny NIS (ang. Network Information System) jezeli została skonfigurowana.
11. Nastepnie sprawdzany jest system plików na urzadzeniu zamontowanym jako /. Sprawdzenie jest wykonywane komenda fsck (Linuksowy odpowiednik ScanDisk). Opcje dla komendy ustalane sa na podstawie:
• zawartosci pliku /fsckoptions, plik zazwyczaj nie istnieje,
• trybu startu systemu (szeregowy lub kolorowy tj. z wyswietlanymi napisami OK, FAILED, itp.).
W przypadku powaznych błedów w strukturze plików uruchamiana jest konsola superuzytkownika z prosba o uruchomienie fsck w trybie iteraktywnym. Dla systemów z aktywnym limitowanym przydziałem przestrzeni dyskowej (ang. quota) wystapienie błedów które mozna było usunac automatycznie powoduje ustawienie flagi mówiacej o koniecznosci sprawdzenia miejsca na dysku zajmowanego przez kazdego z uzytkowników. Istnienie pliku /fastboot dezaktywuje sprawdzanie poprawnosci struktury systemu plików.
12. Inicjacja kart ISA PnP. Incjacje kart PnP mozna wyłaczyc przekazujac jadru parametr nopnp. Do inicjacji kart PnP uzywana jest komenda isapnp która standardowo korzysta z pliku konfiguracyjnego /etc/isapnp.conf. Plik konfiguracyjny w dystrybucji RedHat jast zazwyczaj tworzony automatycznie. Reczne utworzenie takiego pliku jest równiez mozliwe przy uzyciu komendy isapnpdump która tworzy plik zawierajacy wszelkie mozliwe ustawienia kart PnP w systemie. tak wygenerowany plik musimy poddac edycji wybierajac dla kazdej z kart bezkonfliktowy przydział przerwan (IRQ), zakresów portów wejscia i wyjscia (IO ports) oraz kanałów bezposredniego dostepu do pamieci (DMA). Plik wygenerowany przez isapnpdump jest bogato komentowany, stad stosunkowo łatwo wybrac własciwa konfiguracje. Szczegółowy opis składni pliku konfiguracyjnego isapnp znajduje sie na odpowiedniej stronie podrecznika systemowego (man isapnp.conf).
13. Przemontowanie systemu plików / do trybu do odczytu i zapisu, oraz aktualizacja pliku /etc/mtab zawierajacego liste aktualnie zamontowanych systemów plików.
14. Sprawdzenie, jezeli to konieczne, ile miejsca zajmuja pliki poszczególnych uzytkowników.
15. Wpisanie nazwy hosta do pliku /etc/HOSTNAME.
16. Statyczne załadowanie modułów jadra obsługujacych dzwiek, tj. interfejsy audio, midi. W celu znalezienia nazw modułów obsługujacych dane interfejsy przeszukiwany jest plik /etc/modules. Poszukiwane sa tzw. aliasy dla nazw sound-slot-0 (audio pierwszej karty dzwiekowej) oraz midi. W ten sposób zidentyfikowane moduły sa ładowane przy uzyciu modprobe.
17. Odtworzenie ustawien mixera realizowane jest tylko gdy spełnione sa wszystkie trzy warunki: interfejs audio jest aktywny, istnieje plik /etc/.aumixrc oraz komenda która z niego korzysta, tj. aumix-minimal.
18. Deaktywacja automatycznego ładowania modułów gdy uzytkownik ustawił podczas startu systemu parametr nomodules.
19. Wykonanie pliku /etc/rc.d/rc.modules (jezeli istnieje!). W pliku tym powinny znajdowac sie komendy ładujace statycznie moduły zdefiniowane przez administratora systemu. Statyczne ładowanie modułów ma sens jedynie gdy chcemy uniknac narzutu zwiazanego z dynamicznym ładowaniem.
20. Aktywacja urzadzen RAID, tj. kilku urzadzen blokowych połaczonych w jeden logiczny system plików (prawdopodobnie z właczonym mirrorowaniem). Informacje nt. róznych trybów pracy urzadzen RAID mozna znalezc pod adresem http://ostenfeld.dk/˜jakob/Software- RAID.HOWTO Interfejs do urzadzen RAID zapewnia sterownik md.
21. Sprawdzenie lokalnych systemów plików wymienionych w /etc/fstab.
22. Zamontowanie pozostałych lokalnych systemów plików (na podstawie zawartosci /etc/fstab) oraz sprawdzenie obszaru dyskowego zajmowanego przez poszczególnych uzytkowników (gdy przy sprawdzaniu systemu plików wystapily błedy). Istnienie pliku /fastboot dezaktywuje sprawdzanie poprawnosci struktury systemu plików.
23. Jezeli istnieje plik /.unconfigured przeprowadzana jest konfiguracja systemu obejmujaca ustawienie: hasła uzytkownika root (passwd), parametrów sieci (netconfig), strefy czasowej (timeconfig), metody uwierzytelniania uzytkowników (authconfig), usług uruchamianych podczas startu (ntsysv),
24. Właczenie mechanizmu limitowania przydziału przestrzeni dyskowej (quota).
25. Usuniecie plików przechowujacych informacje miedzy kolejnymi restartami systemu np. /fastboot.
26. Inicjalizacja plików /var/utmp i /var/wtmp. Pliki te zawieraja informacje kto i kiedy zalogował sie w systemie (komendy who i last).
27. Inicjalizacja katalogów /var/run oraz /var/lock. Usługi uruchamianie przez skrypty z init.d zapisuja identyfikatory procesów (PID) w katalogu /var/run. Dzieki temu zatrzymanie usługi jest łatwe, bowiem odpowiedni PID niezbedny dla komendy kill jest juz zapisany w pliku. Jezeli jakis proces korzysta z zasobu do którego dostep moga miec inne procesy, a chcialby miec ten zasób na wyłacznosc tworzy w katalogu /var/lock plik zamykajacy (ang. lock file). Gdy odpowiedni plik istnieje zasób jest niedostepny dla innych procesów.
28. Oczyszczenie katalogu /tmp z plików pozostawianych przez XSerwer i PostgreSQL.
29. Inicjalizacja portów szeregowych. Inicjalizacja portów szeregowych powinna znajdowac sie w pliku /etc/rc.d/rc.serial. Specjalna inicjalizacja portów szeregowych ma sens jedynie gdy w komputerze mamy zainstalowana karte wieloportowa, ew. wiecej niz jeden modem wewnetrzny.
30. Instalacja obsługi streamera, jezeli jest zainstalowany w systemie.
31. Utworzenie pliku /boot/kernel.h informujacego czy jadro wspiera przetwarzanie równoległe (SMP=1) czy tez obsługuje tylko jeden procesor (UP=1).
32. Utworzenie odpowiednich linków symbolicznych w katalogu /boot wiazacych pliki System.map- z plikiem System.map.
33. Zapis logu bootowania jadra do pliku /var/log/dmesg.
34. Uruchomienie programu getkey w celu sprawdzenia czy wybrano interaktywny tryb startu systemu.

4.3.2 Inicjalizacja zalezna od poziomu uruchomienia
Po zakonczeniu wykonywania rc.sysinit proces init uruchamia skrypt /etc/rc.d/rc przekazujac mu jako parametr wartosc poziomu uruchomienia. Na podstawie numeru poziomu uruchomienia skrypt rc ustala połozenie katalogu zawierajacego dowiazania symboliczne do plików kontrolujacych działanie poszczególnych usług (tj. plików z katalogu init.d). Jako pierwsze wykonywane sa dowiazania o nazwach K. Pole numer jest dwucyfrowe i zapewnia kolejnosc wykonywania komend. Dla plików zatrzymujacych najpierw wykonywane sa pliki o numerach wiekszych. Przed zatrzymaniem usługi sprawdzane jest czy usługa działa (tj. czy istnieje odpowiedni plik w katalogu /var/lock/subsys. Zadanie zatrzymania usługi jest ignorowane jezeli odpowiedni plik nie istnieje. Nastepnie uruchamiane sa skrypty o nazwach S. Tym razem jako pierwsze wykonywane sa pliki z mniejszymi numerami. Przed uruchomieniem usługi sprawdzane jest czy istnieje plik o odpowiedniej nazwie w katalogu /var/lock/subsys). Zadanie usługi usługi jest ignorowane jezeli odpowiedni plik istnieje. Ponadto, w trybie interaktywnym, przed uruchomieniem kazdej usługi uzytkownik proszony jest o potwierdzenie jej uruchomienia. Jako ostatni (ma bowiem numer 99) uruchamiana jest usługa local. Jest to link symboliczny do pliku /etc/rc.d/rc.local co oznacza, ze zawartosc tego pliku bedzie wykonana jako ostatni element inicjalizacji systemu. W pliku tym znajduja sie komendy aktualizujace pliki /etc/issue i /etc/issue.net. Zawartosc tych plików jest wyswietlana przed zaproszeniem do zalogowania (słowo login). Plik /etc/issue wyswietlany jest na konsoli, natomiast /etc/issue.net gdy staramy sie uzyskac dostep do systemu poprzez siec.

Usługi sieciowe


5.1 Interfejsy sieciowe
Podstawowe polecenia słuzace do konfiguracji i sprawdzania poprawnosci działania interfejsów sieciowych w systemie to ifconfig – słuzace do aktywizacji, wyłaczania oraz sprawdzania stanu interfejsów sieciowych,
arp – zwiazane z kartami sieciowymi Ethernet i wyswietlajace tablice translacji adresów IP na adresy sprzetowe.
netstat – słuzace do wyswietlania listy aktywnych połaczen,
route – pozwalajace na sprawdzenie i ustawienie tablicy routowania.
Z urzadzeniem sieciowym jest zwiazana nazwa typu interfejsu zapewnianego przez urzadzenie oraz numer kolejny interfejsu danego typu. Na przykład nazwa interfejsu do sieci Ethernet jest eth, i kolejne karty sieciowe identyfikowane przez system beda miały nazwy eth0, eth1, itd. Nazwy interfejsów sieciowych sa wbudowane w jadro i nie mozna ich znalezc w katalogu /dev/. Najwazniejsze interfejsy to lo – interfejs urzadzenia zapetlajacego (ang. loopback device). Jest to interfejs do urzadzenia logiczne (tzn. nie jest wymagany zadna dodatkowa karta w systemie) którego działanie polega na tym, ze wszystkie dane wysłane na interfejs sa „zawracane” i moga byc z tego interfejsu odczytane.
eth – interfejsy kart do sieci Ethernet, przy czym oznacza numer kolejny karty sieciowej.
ppp – połaczenia PPP.
Pierwszym krokiem konfiguracji interfejsu jest załadowanie modułu obsługujacego dany interfejs. Dla kart sieciowych Ethernet zazwyczaj bedziemy mieli skonfigurowane ładowanie sterownika w razie koniecznosci. Tak wiec w pliku /etc/conf.modules przykładowy wpis bedzie miał postac
alias eth0 ne
options ne irq=5 io=0x300
alias eth1 ne2k-pci
Obsługa kart na magistrali ISA wymaga podania przerwania i portu na którym pracuje karta, natomiast karty PCI konfiguruja sie same. Moduły obsługujace rózne typy kart sieciowych znajduja sie w katalogu /lib/modules/ /etc/rc.d/init.d/network
W dalszej czesci tego punktu szczegółowo omówimy jego działanie. Konfiguracja podstawowych ustawien sieciowych dotyczacych całego systemu znajduje sie w pliku /etc/sysconfig/network. W szczególnosci powinno sie tam znajdowac ustawienie zmiennej
NETWORKING=yes
decydujace czy interfejsy sieciowe w systemie beda konfigurowane. Ponadto w pliku znajduja sie definicje nazwy hosta, adresu standardowo uzywanej bramy oraz nazwa interfejsu który moze sie z ta brama komunikowac. Za konfiguracje poszczególnych interfejsów sieciowych odpowiedzialne sa skrytpy z katalogu /etc/sysconfig/network-scripts. Jezeli w pliku znajduja sie wyłacznie wartosci parametrów to nazwa rozpoczyna sie od przedrostka ifcfg. Natomiast jezeli skrypty zawieraja dedykowane komendy do „podniesienia” lub „opuszczenia” interfejsu to ich nazwy zaczynaja sie od przedrostków ifup oraz ifdown, odpowiednio. Skrypty konfigurujace poszczególne usługi tworzone sa przez programy konfigurujace siec, tj. netconfig, linuxconf, netcfg. Skrypt /etc/rc.d/init.d/network sprawdza zainstalowane interfejsy sieciowe i komenda ifup uaktywnia dany interfejs. Skrypt /sbin/ifup jest dosc złozony i nie bedziemy go szczegółowo omawiac. Warto jednak zapamietac fakt, ze napis Delaying initialization. wyswietlony podczas aktywizacji sieci oznacza niepowodzenie konfiguracji danego interfejsu. Jezeli system obsługuje wiecej niz jedna siec i chemy zbudowac odpowiednia tablice routingu adresy sieci oraz bram do nich prowadzacych powinnismy podac w pliku /etc/sysconfig/static-routes. Oczywiscie najlepiej uzyc do tego celu programu konfigurujacego linuxconf. Jezeli ktos ma ochote na „reczna” konfiguracje interfejsów sieciowych to nieoceniona tu bedzie lektura ksiazki Linux Network Administrator Guide rozprowadzanej w formie elektronicznej w ramach projektu Linux Documentation Project. Ksiazka powinna byc wiec dostepna na jakimkolwiek kompletnym serwerze z Linuksem, np. ftp://ftp.task.gda.pl/pub/linux/LDP/.

5.2 Konfiguracja usług sieciowych
Aplikacje w internecie pracuja wg modelu klient-serwer. Warstwe transportowa miedzy dwoma aplikacjami realizuje protokół TCP lub UDP. Protokół TCP obejmuje mechanizmy odtwarzania kolejnosci odbieranych ramek1 oraz mechanizmy retransmisji zgubionych lub błednych danych. W protokole UDP sama aplikacja musi zapewnic mechanizmy kontroli błedów.

5.2.1 Usługi dostepne w systemie
Wykaz typowych protokołów internetowych znajduje sie w pliku /etc/protocols. Znajdziemy tam m.in.:
# Internet (IP) protocols
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
tcp 6 TCP # transmission control protocol
udp 17 UDP # user datagram protocol
W protokołach warstwy transportowej kazda aplikacja komunikujaca sie poprzez siec jest identyfikowana przez numer IP komputera oraz numer portu na którym nasłuchuje i/lub nadaje. Przestrzen portów dla protokołów TCP i UDP jest rozdzielna. Serwery (demony) nasłuchuja na okreslonych portach czy nie ma jakiegos zadania obsługi, natomiast klienci łacza sie z serwerami informujac je o swoich potrzebach. W zasadzie istnieje dowolnosc przypisania usług do portów. Jednak w celu standaryzacji i zmniejszenia zamieszania uzywa sie tzw. dobrze znany portów (ang. well-known ports). Wykaz zawierajacy przypisanie usług do portów znajduje sie w pliku /etc/services
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
smtp 25/tcp mail
www 80/tcp http # WorldWideWeb HTTP
1kolejnosc po stronie odbiorczej moze byc inna niz po stronie nadawczej np. na skutek wielodrogowosci
www 80/udp # HyperText Transfer Protocol
pop-2 109/tcp postoffice # POP version 2
pop-2 109/udp
pop-3 110/tcp # POP version 3
pop-3 110/udp
imap2 143/tcp # Interim Mail Access Proto v2
imap2 143/udp
ipx 213/tcp # IPX
ipx 213/udp
imap3 220/tcp # Interactive Mail Access
imap3 220/udp # Protocol v3
Typowy komputer UNIX-owy jest serwerem wielu usług. W pierwotnej konfiguracji do kazdej usługi uruchomiony był demon, którego jedynym zadaniem był nasłuch na okreslonym porcie. Aby oddzielic operacje nasłuchu od własciwej obsługi oraz zmniejszyc ilosc uruchomionych demonów (a tym samym obciazenie systemu i zajetosc RAM) wprowadzono demona inetd (Internet Daemon). Jedynym zadaniem tego demona jest nasłuch na okreslonym zestawie portów i w przypadku wykrycia próby połaczenia na pewien port – uruchomienie odwiedniego programu usługi. Plik konfiguracyjny tego demona to /etc/inetd.conf, a jego składnia wyglada nastepujaco
# /etc/inetd.conf: see inetd(8) for further informations.
#
#
#:STANDARD: These are standard services.
ftp stream tcp nowait root /usr/sbin/in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd
Zazwyczaj demon obsługujacy dana usługe moze pracowac samodzielnie lub byc uruchomiony przez inetd. Tryb działania musi byc dla obu przypadków nieco inny bowiem przy uruchumieniu z inetd demon nie musi wykonywac nasłuchu. Aby poinformowac serwer w jakim trybie ma działac czesto wykorzystuje sie mechanizm dowiazan symbolicznych (komenda ln -s), powodujac ze program serwera bedzie istniał w systemie pod dwoma nazwami. Przyjeto konwencje, ze demony przeznaczone do uruchomienia z inetd maja nazwe ropoczynajaca sie od in.* (np. in.telnetd, in.smtp). Dzieki takiej konwencji nazewnictwa demon moze podjac decyzje w jakim trybie nalezy pracowac sprawdzajac wartosc argv[0]. Czesto chcemy ograniczyc dostepnosc usług do okreslonej klasy klientów (np. komputerów z sieci lokalnej). W przedstawionej wyzej konfiguracji inetd kazda usługa musiałaby posiadac mechanizm kontroli kto ma przyzwolenie do korzystania z niej. Konfiguracja systemu byłaby bardzo uciazliwa ze wzgledu na olbrzymia liczbe plików do edycji. W celu rozwiazania powyzszego problemu wprowadzono TCP Wrappers, czyli pakiet do autoryzacji klientów sieciowych. Gdy przychodzi zadanie obsługi, zamiast oryginalnego serwera uruchamiany jest program tcpd. Gdy klient przejdzie autoryzacje z wynikiem pozytywnym uruchamiany jest demon danej usługi sieciowej. Program do uruchomienia po pozytywnej autoryzacji podaje sie tcpd jako argument z linii komend. Plik /etc/inetd.conf po wprowadzeniu ww zmian wyglada nastepujaco
# /etc/inetd.conf: see inetd(8) for further informations. #
#
#:STANDARD: These are standard services.
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
Autoryzacja klienta odbywa sie na podstawie dwóch plików konfiguracyjnych /etc/hosts.allow i /etc/hosts.deny. Kazdy plik zawiera linie w formacie lista_demonów : lista_klientów [ : komenda_shella ] gdzie nawiasy [ ] oznaczaja opcjonalny składnik. Pola lista demonów i lista klientów moga byc zastapione maskami. Dokładny opis składni omawianych plików opisany jest w stronie manuala hosts access(5). Algorytm autoryzacji przebiega jak nastepuje
1. Najpierw sprawdzany jest plik hosts.allow. Jezeli klient zostanie dopasowany do masek to dostep do usługi zostaje mu przydzielony.
2. Nastepnie sprawdzany jest hosts.deny. Jezeli klient zostanie dopasowany to zostaje odrzucony.
3. Jezeli klient nie został znaleziony w zadnym z plików to dostep zostaje mu przydzielony. Najczesciej spotykane sa dwa schematy konfiguracji Defensywny W pliku hosts.deny znajduje sie wpis ALL:ALL, a w pliku hosts.allow sa wpisane komputery dopuszczone do obsługi. Otwarty Plik hosts.allow jest pusty a w pliku hosts.deny znajduja sie wpisy komputerów nie dopuszczonych do usług.

5.3 Poczta elektroniczna
Do obsługi poczty elektronicznej wykorzystywane sa dwa zasadnicze typy programów:
MTA (Mail Transfer Agent) czyli serwer pocztowy, oraz MUA (Mail User Agent) czyli klient. Z poczta elekroniczna zwiazane sa trzy protokoły
SMTP Simple Mail Transfer Protocol uzywany jest do komunikacji miedzy dwoma MTA oraz miedzy MUA i MTA. Protokołowi SMTP przydzielony jest standardowo port 25.
POP Post Office Protocol przeznaczony do komunikacji miedzy MUA i MTA. Powszechnie uzywana wersja tego protokołu to POP3. Przydzielono jej port 110.
IMAP Interactive Mail Access Protocol pełni te same funkcje co POP. Standardowo serwer IMAP nasłuchuje na porcie 220.
Oba protokoły POP i IMAP słuza jedynie do sciagana poczty ze skrzynek odbiorczych, zarzadzania folderami itp., jezeli znajduja sie one na innym komputerze niz uruchomiony program pocztowy (MUA).
Aby wysłac poczte klient ma dwie mozliwosci: skorzystac z usług lokalnego MTA i zlecic mu zadanie wysłania (uzycie komendy sendmail) lub z usług lokalnego lub zdalnego serwera SMTP. Aby klienci mogli korzystac z usług zdalnego serwera SMTP do rozsyłania poczty, to musi on byc skonfigurowany jako tzw. relay.
Linux moze pracowac jako serwer SMTP, POP i IMAP. Najbardziej popularne serwery SMTP to sendmail, smail oraz qmail. Kazdy z tych serwerów ma swoje pliki konfiguracyjne o specyficznej składni. Ogólnie mówiac poprawna konfiguracja poczty jest zadaniem złozonym. Na szczescie pakiety dystrybucyjne z MTA zawieraja konfiguracje która działa dobrze w olbrzymiej wiekszosci przypadków. Plik konfiguracyjny sendmail to /etc/sendmail.cf. Pliki konfiguracyjne smail znajduja sie w katalogu /etc/smail/. Programów pełniacych role MUA jest mnóstwo. Pracuja one w trybie tekstowym (mail, mailx, pine) jak równiez w srodowisku okienkowym (xfmail, kmail). Pierwotnie poczta elektroniczna słuzyła jedynie do przesyłania wiadomosci tekstowych. W toku postepujacej informatyzacji społeczenstwa pojawiła sie potrzeba uzupełnienia tekstu o informacje graficzna i dzwiekowa – powstał standard MIME (Multimedia Internet Mail Extensions). Dzieki niemu nadawca i odbiorca moga miedzy soba wymieniac dane binarne zawierajace grafike i dzwiek nawet gdy posługuja sie róznymi programami pocztowymi. Istota standardu polega na poprzedzeniu przesyłanych danych nagłówkiem informujacym o ich rodzaju.
W Linuxie do konfiguracji MIME słuza dwa pliki: /etc/mime.types oraz /etc/mailcap. Uzytkownik moze rozszerzyc zawartosc tych plików tworzac w swoim katalogu domowym pliki .mime.types i/lub .mailcap. Plik mime.types zawiera zestawienie typówMIME które moga byc przesyłane oraz odpowiadajacych im rozszerzen nazw plików. Oto wyciag z tego pliku
application/pdf pdf
application/pgp-signature pgp
application/postscript ps ai eps
application/x-compress z Z
application/x-gzip gz
application/zip zip
audio/midi mid midi
audio/x-wav wav
image/gif gif
image/jpeg jpeg jpg jpe
image/png png
image/tiff tiff tif
text/html html htm
text/plain txt
Plik mime.types jest uzywany przez program nadawcy do okreslenia odpowiedniego nagłówka na podstawie nazwy pliku dołaczanego do wiadomosci. Odbiorca korzysta z pliku mailcap który jest zestawieniem typu MIME z aplikacja go obsługujaca. Wiecej nt. składni tego pliku mozna sie dowiedziec studiujac strone manuala mailcap(5). Warto zwócic uwage, ze z pliku mailcap nie korzystaja wszyscy klienci (np. Netscape) i utrzymuja oni własne tablice o znaczeniu podobnym do mailcap.

5.4 Udostepnianie plików – FTP
Pierwotna dla UNIX-a metoda udostepniania plików jest FTP –File Transfer Protocol. Uruchamianie demona ftpd odbywa sie zazwyczaj przez inetd. Tam tez mozna podac szereg opcji kontrolujacych jego działanie. Wiecej informacji na ich temat mozna uzyskac ze strony manuala ftpd(8). Pliki kontrolujace działanie demona FTP to /etc/nologin Jezeli ten plik istnieje demon wyswietla go i przerywa połaczenie. /etc/ftpwelcome Ten plik jest wyswietlany przed zapytaniem o nazwe uzytkownika. /etc/motd Ten plik jest wyswietlany po udanym zalogowaniu. .message Jezeli ten plik jest w katalogu do którego uzytkownik wykonał cd to jego zawartosc zostanie wyswietlona. /etc/ftpchroot Ten plik zawiera liste uzytkowników dla których nalezy po zalogowaniu wykonac komende chroot, tzn. uniemozliwic przejscie do katalogów powyzej katalogu domowego uzytkownika. Aby serwis działał poprawnie, w katalogu domowym uzytkownika powinny byc podkatalogi bin, etc, lib itd. z zawartoscia identyczna jak dla uzytkownika ftp.
/etc/ftpusers Ten plik zawiera liste uzytkowników którzy nie moga korzystac z serwisu FTP.

5.5 Serwis WWW
Mimo iz istnieje wiele serwerów HTTP, to tak naprawde liczy sie obecnie tylko apache. Zazwyczaj ze wzgledu na wydajnosc serwera WWW, demona apache uruchamia sie w trybie standalone, tzn. nie przez inetd. Standardowo apache nasłuchuje na porcie 80. Pliki konfiguracyjne znajduja sie w katalogu /etc/apache/. Najwazniejsze z nich to httpd.conf, srm.conf, access.conf. Plik httpd.conf konfiguruje działanie serwera. Wiekszosc dostepnych opcji jest w nim wymieniona, a opcje nie uzywane – wykomentowane. Na szczególna uwage zasługuje mozliwosc zadeklarowania przetwarzania fragmentów plików HTML przez tzw. moduły (cos w rodzaju plug-inów, tylko ze po stronie serwera). Dzieki modułom mozemy w stronach HTML umieszczac komendy do wykonania przez serwer (np. dostep do bazy danych) i uzyskiwac dynamicznie generowane strony WWW. Istnieja moduły implementujace całe jezyki programowania ( eperl, php3) dzieki którym mozna organizowac w elegancki sposób interfejs WWW do wielu usług. Plik srm.conf definiuje jak przetwarzane sa rózne zadania obsługi, m.in. główny katalog serwera, przypisanie ikon do róznych typów plików. Z kolei access.conf, jak sama nazwa wskazuje, kontroluje kto i do jakich czesci wystawionej informacji ma dostep.

5.6 Sieciowy system plików – NFS
NFS (Network File System) to cos posredniego miedzy lokalnym systemem plików a usługa FTP. Instalacja i konfiguracja klienta i serwera NFS jest bardzo dobrze opisana w NFS-HOWTO. Klientem NFS jest obecnie po prostu jadro systemu z wkompilowana lub załadowana jako moduł obsługa NFS. Aby zamontowac pewien katalog (/usr/local/dosapp) wystawiony przez serwer NFS (minibo.iele.polsl.gliwice.pl) w katalogu lokalnym (/mnt/dosapp) musimy wydac komende mount -t nfs minibo.iele.polsl.gliwice.pl:/usr/local/dosapp /mnt/dosapp Nastepujacy wpis w /etc/fstab minibo.iele.polsl.gliwice.pl:/usr/local/dosapp /mnt/dosapp nfs hard,intr 0 0 pozwoli zamontowac to samo co poprzednio komenda mount /mnt/dosapp Konfiguracja serwera to nieco bardziej złozone zadanie. Po pierwsze NFS oparty jest na standardzie RPC (Remote Procedure Call) przez co wymagane jest uruchomienie demona mapowania portów portmap ze standardu UNIX-owego na standard RPC. Programy pracujace zgodnie z RPC zgłaszaja zadania obsługi do portmap. Podobnie jak przy demonach uruchamianych z inetd przyjeto konwencje nazewnicza polegajaca na poprzedzeniu nazw programów korzystajacych z RPC nagłówkiem rpc.*. Serwis NFS jest zapewniany przez dwa demony: rpc.mountd i rpc.nfsd. Pierwszy odpowiedzialny jest za obsługe montowania i odmontowania, drugi za operacje na plikach. Wykaz zamontowanych systemów plików znajduje sie /etc/rmtab. Oba demony okreslaja na podstawie pliku /etc/exports czy klient ma autoryzacje dostepu do zadanego katalogu. Ogólnie w pliku tym znajduje sie tabela katalogów które moga byc zamontowane poprzez siec. Z kazdym eksportowanym2 katalogiem 2stad nazwa pliku zwiazana jest lista komputerów oraz praw z jakimi dane katalogi moga byc montowane. W nazwach komputerów mozna uzywac tzw. wildcards aby jednym wpisem objac szersza liste hostów. Kontynujac poprzedni przykład na serwerze minibo w /etc/exports powinien zanjdowac sie wpis
/usr/local/dosapp *.iele.polsl.gliwice.pl(ro)
aby wszystkie komputery z domeny iele.polsl.gliwice.pl miały dostep read-only do plików z exportowanego katalogu. Wiecej informacji nt. składni omawianego pliku mozna uzyskac studiujac strone manuala exports(5)

Linux w sieciach LAN


Na rynku sieci lokalalnych licza sie obecnie dwaj producenci: Microsoft i Novell. Systemy operacyjne MS Windows (WfW, 95, 98, NT) uzywaja protokołu SMB (ang. Session Message Block) do współdzielenia plików i drukarek. W sieciach SMB dowolna stacja przyłaczona do sieci moze pełnic zarówno role serwera jak i klienta. Linux równiez moze byc skonfigurowany jako klient i/lub serwer SMB.
Sieciowy system operacyjny Novell NetWare wykorzystuje protokoły IPX/SPX1. W sieciach Novell istnieje wyrazny rozdział na serwer pracujacy pod kontrola systemu NetWare i stacje kliencka, która pracuje pod kontrola innego systemu operacyjnego (DOS, Windows, OS2) i jest wyposazona w oprogramowanie pozwalajace na korzystanie z zasobów serwera. Podobnie jak w przypadku sieci SMB, Linux moze pełnic role klienta sieci Novell i/lub serwera NetWare. Co prawda najwyzsza wersja NetWare emulowana pod Linuksem to 3.11, ale nie zmienia to faktu, ze wykorzystanie Linuksa jako serwer NetWare to najlepszy sposób na zaoszczedzenie pieniedzy. Emulator serwera NetWare jest dostepny publicznie bez zadnych opłat licencyjnych.

6.1 Współpraca z sieciami SMB
Protokół SMB jest równiez nazywany NetBIOS lub LAN Manager. SMB moze pracowac wykorzystujac NetBEUI, IPX/SPX lub TCP/IP. Serwery i klienci Linuksowi korzystaja z TCP/IP. Jezeli z serwera SMB na Linuxie korzystaja klienci MS to najlepiej nie instalowac na nich (lub wyinstalowac) protokoły IPX/SPX2 oraz NetBEUI. W SMB usługi identyfikowane sa poprzez nazwe oraz typ usługi. Serwer zgłasza udostepniane usługi do WINS3 (ang. Windows Internet Name Service). Do poprawnego działania sieci SMB potrzebne sa 3 składniki: serwer nazw, serwer usług i klienci. Linux moze wystepowac we wszystkich wymienionych rolach. 1do wersji 4 włacznie. Pozniejsze jako protokół standardowy wykorzystuja TCP/IP. 2Chyba, ze mamy równiez siec Novell 3Odpowiednik DNS z TCP/IP

6.1.1 Serwer SMB – samba
W pakiecie samba znajduja sie demony obsługujace siec SMB. Za obsługe zapytan do WINS odpowiada demon nmbd. Z kolei zadania udostepniania zasobów obsługiwane sa przez smbd. Oba demony moga byc uruchomione jako samodzielne demony lub poprzez demon inetd. W tym drugim przypadku wpisy inetd.conf wygladaja nastepujaco
netbios-ssn stream tcp nowait root /usr/sbin/tcpd /usr/sbin/smbd
netbios-ns dgram udp wait root /usr/sbin/tcpd /usr/sbin/nmbd -a
Plik konfiguracyjny serwera to /etc/smb.conf. Prawie zawsze po instalacji i wstepnej konfiguracji musimy ten plik poddac edycji aby dopasowac system do naszych potrzeb. Instalowana wersja smb.conf obejmuje wiele opcji które sa dobrze opisane. Szczegółowy opis składni mozna znalezc na stronie manuala smb.conf(5). Plik konfiguracyjny podzielony jest na sekcje (nazwa sekcji to tekst w nawiasach kwadratowych). Istnieja trzy sekcje specjalne globals definiujaca ogólne własnosci serwera, printers okreslajaca ogólne parametry udostepniania drukarek, homes podajaca sposób udostepnienia katalogów domowych uzytkowników systemu. oraz sekcje o dowolnych nazwach ustalanych przez administratora. Nazwa sekcji jest w tym przypadku nazwa usługi. W kazdej sekcji ustala sie parametry/własciwosci danej usługi. Kazdy dostepny parametr ma swoja nazwe i typ. Typy wartosci to ciag znaków (bez cudzysłowów) oraz typ logiczny ustawiany jako 0/1 lub yes/no lub true/false. Istnieja dwa typy usług: plikowe i drukarkowe. Standardowo sekcja jest typu plikowego, jednak ustawienie printable=yes zmienia jej typ na usługe/sekcje drukarkowa. Ustawienie tej opcji zezwala na zapis plików do druku w katalogu usługi.
Sekcja global
Typowe ustawienia w sekcji global sa nastepujace
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid users = root
; "security = user" is always a good idea. This will require a Unix account
; in this server for every user accessing the server. security = user
; Change this for the workgroup your Samba server will part of
workgroup = WORKGROUP
server string = %h server (Samba %v)
; This socket options really speed up Samba under Linux, according to my
; own tests. SO_SNDBUF and SO_RCVBUF added by suggestion from
socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
; Passwords are encrypted by default. This way the latest Windows 95 and NT
; clients can connect to the Samba server with no problems. encrypt passwords = yes ; It’s always a good idea to use a WINS server. If you want this server
; to be the WINS server for your network change the following parameter
; to "yes". Otherwise leave it as "no" and specify your WINS server
; below (note: only one Samba server can be the WINS server).
; Read BROWSING.txt for more details.
wins support = no ; If this server is not the WINS server then specify who is it and uncomment
; next line.
; wins server = 172.16.0.10
; Please read BROWSING.txt and set the next four parameters according
; to your network setup. There is no valid default so they are commented
; out.
; os level = 0 ; Wfg - 0 Win95 - 1; NT - 32
; domain master = no
; local master = no
; preferred master = no
; This will prevent nmbd to search for NetBIOS names through DNS. dns proxy = no
; Name mangling options
preserve case = yes
short preserve case = yes
Sekcja printers
W tej sekcji udostepniamy uzytkownikom drukraki dostepne w systemie. Jezeli drukraka nie jest postscriptowa to dobrze jest ja udostepnic na dwa sposoby raw printer tzn. komenda lpr drukuje kopiuje plik na drukarke bez zadnego przetwarzania, postscript – plik do drukowania (postscriptowy) przepuszczany jest przez ghostscript. W pierwszym przypadku na stacji klienta musi byc zainstalowany sterownik do drukarki przyłaczonej do serwera, w drugim – sterownik do w zasadzie dowolnej drukarki postscriptowej ewentualnie sterownik do „czystego” postscriptu. Druga konfiguracja jest bardziej uniwersalna – wymiana drukarki na serwerze nie wymaga rekonfiguracji klientów. Niestety jest tez bardziej wymagajaca gdy idzie o zasoby serwera, bowiem intensywna praca ghostscripta moze zajac sporo czasu procesora.
[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700
Sekcja homes
Sekcja homes pozwala na udostepnienie katalogów domowych uzytkowników. Jezeli klient zada udostepnienia usługi i nie jest ona jawnie zadeklarowana (w pliku smb.conf) i jest zadeklarowana sekcja homes to serwer przyjmuje, ze zadana usługa jest nazwa katalogu domowego uzytkownika.
[homes]
comment = Home Directories
browseable = no
; By default, the home directories are exported read only. Change next
; parameter to "no" if you want to be able to write to them.
read only = yes
; File creation mask is set to 0700 for security reasons. If you want to
; create files with group=rw permissions, set next parameter to 0775.
create mask = 0700
; Directory creation mask is set to 0700 for security reasons. If you want to ; create dirs. with group=rw permissions, set next parameter to 0775. directory mask = 0700
Sekcja CDROM
Przy uzyciu samby mozna udostepniac równiez dowolne katalogi. Typowym przykładem jest publiczne udostepnienie zawartosci napedu CD. Dzieki opcjom preexec i postexec montowanie nastepuje automatycznie przy próbie odczytu. Gdy serwer nie korzysta z napedu katalog cdrom zostaje odmontowany.
[cdrom]
comment = Samba server’s CD-ROM
writable = no
locking = no
path = /cdrom
public = yes
;
; The next two parameters show how to auto-mount a CD-ROM when the
; cdrom share is accesed. For this to work /etc/fstab must contain
; an entry like this:
;
; /dev/scd0 /cdrom iso9660 defaults,noauto,ro,user 0 0
;
; The CD-ROM gets unmounted automatically after the connection to the
;
; If you don’t want to use auto-mounting/unmounting make sure the CD
; is mounted on /cdrom
;
preexec = /bin/mount /cdrom
postexec = /bin/umount /cdrom
Minitorowanie pracy serwera
Informacje o stanie serwera uzyskamy wydajac komende smbstatus. Wiele o jego pracy mozna dowiedziec sie z logów w /var/samba/ oraz /var/log/smb, /var/log/nmb.

6.1.2 Klientci SMB
Klient uzyskuje dostep do usługi podajac nazwe serwera i usługi na serwerze w nastepujacym formacie \\\ (np. \\MINIBO\CDROM) Nazwa serwera (MINIBO) jest poprzedzona dwoma znakami \. Nazwa usługi oddzielona jest jednym znakiem \.
Klienci samby
W pakiecie samba-client znajduja sie klienci SMB usługi plikowej (smbclient) oraz usługi drukrakowej smbprint4) Klient usługi plikowej smbclient to program a’la ftp do transmisji plików miedzy serwerem a klientem. Zadaniem smbprint jest umozliwienie korzystania w Linuxie z drukarek udostepnionych przez komputery MS-Win. Korzystajac z obu programów nalezy im oczywiscie jako parametr z linii komend podac nazwe usługi. I tu nalezy pamietac, ze znak \ jest znakiem zastrzezonym w shellu i pracuje jako tzw. escape char. Tak wiec aby przekazac jeden \ musimy uzyc sekwencji \\. Ostatecznie, aby zazadac dostepu do \\MINIBO\CDROM musimy wydac komende smbclient \\\\MINIBO\\CDROM Inna metoda korzystania z usług plikowych serwerów SMB jest wykorzystanie komend smbmount i smbumount. Dzieki nim pliki udostepniane przez serwery SMB moga byc montowane do dowolnych katalogów i uzywane dalej jak lokalny system plików.

6.2 Integracja z siecia Novell
Oczywiscie aby Linux współdziałał z NetWare jadro systemu musi wspierac protokół IPX/SPX i musi on byc poprawnie skonfigurowany komenda ipx configure. Komenda ta (i kilka innych) znajduje sie w pakiecie ipxutils dystrybucji RedHat. Współprace z sieciami IPX mozna skonfigurowac np. przy uzyciu linuxconf. Jezeli wysztko jest poprawnie skonfigurowane to w katalogu /proc/net/ znajduja sie pliki ipx interface, ipx route, ipx zawierajace informacje o biezacym stanie sieci IPX.

6.2.1 Klient ncpfs
Pakiet ncpfs zapewnia komendy do korzystania z usług serwera NetWare. Zapewniony mamy dostep miedzy innymi do plików (ncpmount i ncpumount) i drukarek (nprint) obsługiwanych przez serwer. Liste dostepnych serwerów w sieci lokalnej mozemy ustalic komenda slist a stan kolejek do drukowania – pserwer. Lista dostepnych komend jest długa. Informacje o tym jakie komendy sa w pakiecie uzyskamy komenda rpm -ql ncpfs | less. Interesujace nas komendy znajduja sie /usr/bin/. Wszystkie z nich maja swoja strone manuala. Poniewaz dostep do wszystkich usług NetWare wymaga podania hasła to przy korzystaniu z uzytków ncpfs musimy je dosc czesto wprowadzac. Aby ułatwic sobie zycie mozna w swoim katalogu domowym utworzyc plik .nwclient zawierajacy m.in. nazwe serwera, nazwe uzytkownika i hasło. Poniewaz hasło musi byc podane tekstem jawnym, to plik powinien byc tylko do odczytu i zapisu przez własciciela (600)5. Do montowania systemu plików z serwera NetWare moze byc przydatny nastepujacy skrypt 4Niestety nie jest on dostepny we wszystkich binarnych dystrubucjach samby. 5To i tak nie zabezpiecza nas przed root-em. Jezeli nie ufamy administratorowi systemu to nie mozemy umieszczac hasła w tym pliku
\#!/bin/sh
# Montuje w podkatalogu o nazwie $1 katalogu domowego uzytkownika
# serwer NetWare o nazwie $1. Logowanie na serwerze NetWare
# jako $2. $2 przyjmowane jest domyslnie jako $USER
# Poprawna linia komend
if [ $# -lt 1 -o $# -gt 2 ] ; then
echo "Usage: ‘basename $0‘ [ ] "
exit
fi
# Poprawne argumenty wejsciowe
SERVER=$1
LOGNAME=$USER
if [ ! -d $HOME/$SERVER ] ; then
echo "Bład! Katalog $HOME/$SERVER nie istnieje."
echo "Utwórz katalog (np. komenda mkdir) i ponownie uruchom ‘basename $0‘"
sleep 10
exit
fi
if [ $# -eq 2 ] ; then
LOGNAME=$2
fi
# Montowanie
if ( cat /etc/mtab | grep $HOME/$SERVER &> /dev/null ) ; then
echo "juz zamontowane, sprawdz w katalogu $HOME/$SERVER!" ;
sleep 10
else
if ( ncpmount -S $SERVER -U $LOGNAME $HOME/$SERVER 2> /dev/null ) ; then
echo "zamontowane"
else
echo "Bład podczas logowania na serwerze $SERVER jako $LOGNAME"
sleep 10
fi
fi
Skrypt do odmontowania systemu plików z serwera NetWare wyglada nastepujaco
#!/bin/sh
SERVER=$1
if ( cat /etc/mtab | grep $HOME/boss &> /dev/null ) ; then
echo "Odmontowuje serwer $SERVER z katalogu $HOME/$SERVER!" ;
ncpumount $HOME/$SERVER
sleep 10
else
echo "Serwer $SERVER nie jest podmontowany"
sleep 10
fi

6.2.2 Serwer mars-nwe
Pakiet mars-nwe zapewnia, ze stacja na której go uruchomiono jest z funckjonalnego punktu widzenia równowazna serwerowi Novell NetWare 3.11. Usługi zgodne z usługami serwera NetWare zapewniaja 3 demony: nwserv, nwbind, ncpserv. Odpowiednie pliki konfiguracyjne to
/etc/nwserv.conf
/etc/nwserv.stations
Przykładowe pliki konfiguracyjne zamieszczone w dystrybucji RedHat sa bogato komentowane i zawieraja szczegółowy opis dostepnych opcji. Ponizej opisane zostana tylko najwazniejsze z nich.
Plik nwserv.conf podzielony jest na sekcje definiujace poszczególne elementy serwera. Sekcja pierwsza definiuje odwzorowanie katalogów linuksa na nazwy volumenów widzianych przez stacje klienckie. Sekcja ta jest obowiazkowa i co najmniej volumen SYS powinien byc zdefiniowany.
# Section 1: volumes (required)
# Linux-directory mars_nwe-volume map.exe DOS-Drive
# /var/mars-nwe/sys -------> SYS -------------> W:
# Syntax:
# 1 VOLUMENAME DIRECTORY OPTIONS
1 SYS /var/mars_nwe/sys rk
1 CDROM /mnt/cdrom kmr
1 HOME ~ k
Sekcja nr 3 definiuje adres sieci IPX która bedzie obsługiwał emulator. Jezeli w sieci lokalnej pracuje inny serwer / emulator NetWare, to musza one miec rózne adresy sieci. W przeciwnym razie siec NetWare bedzie zachowywac sie niestabilnie. Adresy sieciowe serwerów
mozna sprawdzic wydajac polecenie slist. Wpis auto oznacza, ze za adres