You are on page 1of 40

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

FreeBSD. Podstawy
administracji systemem
Autor: Michael Lucas
Tumaczenie: Marek Ptlicki, Grzegorz Werner
ISBN: 83-7361-604-7
Tytu oryginau: Absolute BSD
Format: B5, stron: 616

Przewodnik dla administratorw systemw operacyjnych z rodziny BSD


Wykonaj kopie bezpieczestwa caego systemu
Zabezpiecz system przed wamaniami
Skonfiguruj usugi sieciowe
Monitoruj wydajno systemu
FreeBSD to drugi obok Linuksa najpopularniejszy system operacyjny dostpny
na zasadach open-source. Powsta w oparciu o system BSD, nad ktrym prace
rozpoczy si w 1976 roku. Zwolennicy systemu zabrali si do pracy nad kolejnymi
jego wersjami i wywizali si z tego zadania wrcz doskonale. FreeBSD sta si
systemem wykorzystywanym przez wiele firm z rnych bran. Systemy z rodziny BSD
ustanawiaj kolejne rekordy wydajnoci i bezawaryjnoci pracy, powodujc, e skrt
BSD sta si synonimem bezpieczestwa i wysokiej niezawodnoci w wiecie systemw
operacyjnych.
Ksika FreeBSD. Podstawy administracji systemem to podrcznik dla tych,
ktrzy chc pozna i opanowa moliwoci tego systemu operacyjnego i sprawnie
nim administrowa. Autor wsptwrca systemu FreeBSD dzieli si swoj ogromn
wiedz dotyczc systemw z rodziny BSD, przedstawiajc zasady instalacji, pracy
i administrowania nimi.
Instalacja systemu
Wyszukiwanie informacji w systemie pomocy
Tworzenie kopii bezpieczestwa systemu
Konfigurowanie jdra pod ktem konkretnych potrzeb
Aktualizowanie systemu
Mechanizmy zabezpiecze
Instalacja i zarzdzanie oprogramowaniem
Technologia DNS
Poczta elektroniczna, WWW i usugi sieciowe
System plikw, dyski i macierze dyskowe
Monitorowanie pracy systemu i kontrola jego wydajnoci
Wykorzystywanie systemu FreeBSD w komputerze osobistym

Spis treci
Przedmowa...................................................................................... 17
Wprowadzenie ................................................................................. 19
Rozdzia 1. Instalacja ........................................................................................ 35
Sprzt zgodny z FreeBSD ............................................................................................... 35
Procesor .................................................................................................................... 36
Pami RAM............................................................................................................. 36
Dyski twarde ............................................................................................................. 36
Pobieranie FreeBSD ........................................................................................................ 37
Instalacja z FTP......................................................................................................... 38
Informacje niezbdne do instalacji z FTP ................................................................. 39
Konfiguracja sprztowa................................................................................................... 39
Instalacja FreeBSD.......................................................................................................... 40
Konfiguracja jdra do wykorzystania kart ISA ......................................................... 41
sysinstall brzydki instalator FreeBSD .................................................................. 41
Wykorzystanie dysku ................................................................................................ 42
Podzia na partycje .......................................................................................................... 44
Partycja gwna ............................................................................................................... 46
Przestrze wymiany ........................................................................................................ 46
Podzia przestrzeni wymiany..................................................................................... 47
Systemy plikw /var, /usr oraz /home ............................................................................. 48
Drugi dysk twardy ........................................................................................................... 48
Mikkie aktualizacje ................................................................................................. 49
Rozmiar bloku........................................................................................................... 49
Wybr zestaww instalacyjnych ............................................................................... 50
Nonik instalacyjny................................................................................................... 51
Rozpoczcie instalacji............................................................................................... 51
Konfiguracja poinstalacyjna ............................................................................................ 52
Haso uytkownika root ............................................................................................ 52
Dodawanie uytkownikw ........................................................................................ 53
Strefa czasowa........................................................................................................... 54
Mysz.......................................................................................................................... 54
Konfiguracja kart sieciowych.................................................................................... 55
Xfree86 ..................................................................................................................... 57
Oprogramowanie....................................................................................................... 58
Ponowne uruchomienie systemu ..................................................................................... 58
Uwaga na temat edytorw ............................................................................................... 59

FreeBSD. Podstawy administracji systemem

Rozdzia 2. Poszukiwanie pomocy ...................................................................... 61


Dlaczego nie od razu naley wysya maila? .................................................................. 61
Postawa uytkownika FreeBSD ...................................................................................... 62
Podrcznik systemowy man ............................................................................................ 63
Podrcznik systemowy.............................................................................................. 63
Nagwki podrcznikw systemowych ..................................................................... 65
Dokumentacja FreeBSD.................................................................................................. 66
Archiwa list dyskusyjnych .............................................................................................. 67
Inne strony WWW........................................................................................................... 67
Rozwizywanie problemw z FreeBSD .......................................................................... 68
Sprawdzamy w handbook lub FAQ .......................................................................... 68
Sprawdzamy w podrczniku man .............................................................................. 68
Sprawdzamy w archiwach list dyskusyjnych ............................................................ 70
Waciwe wykorzystanie odpowiedzi ....................................................................... 70
Pomoc za porednictwem e-maila ............................................................................. 70

Rozdzia 3. Zanim cokolwiek popsujesz: kopie bezpieczestwa........................... 73


Kopie zapasowe systemu................................................................................................. 74
Urzdzenia tamowe........................................................................................................ 74
Jak czyta plik dmesg.boot........................................................................................ 74
Sterowanie napdem........................................................................................................ 75
Wzy urzdze......................................................................................................... 75
Uycie zmiennej TAPE............................................................................................. 76
Polecenie mt.............................................................................................................. 77
Programy wykonujce kopie zapasowe........................................................................... 78
Tar............................................................................................................................. 78
Programy dump i restore ........................................................................................... 82
Odtwarzanie danych z archiwum..................................................................................... 85
Sprawdzanie zawartoci archiwum ........................................................................... 85
Odtwarzanie danych z archiwum .............................................................................. 85
Interaktywne odtwarzanie danych............................................................................. 86
Zapis zdarze .................................................................................................................. 87
Kontrola wersji................................................................................................................ 88
Odzyskiwanie starszych wersji plikw...................................................................... 91
amanie blokad......................................................................................................... 91
Przegldanie dziennikw........................................................................................... 92
Analiza historii wersji pliku ...................................................................................... 92
Program ident i napisy identyfikacyjne ..................................................................... 93
Dalsza lektura............................................................................................................ 94
Tryb jednego uytkownika .............................................................................................. 94
Dysk ratunkowy .............................................................................................................. 96

Rozdzia 4. Zabawy z jdrem ............................................................................. 99


Czym jest jdro?.............................................................................................................. 99
Konfiguracja jdra......................................................................................................... 100
Mechanizm sysctl.................................................................................................... 100
Modyfikowanie wartoci opcji sysctl...................................................................... 103
Ustawianie opcji sysctl podczas uruchamiania systemu.......................................... 104
Konfiguracja jdra za pomoc pliku loader.conf..................................................... 104
Rczna konfiguracja programu adujcego ............................................................. 106
adowanie i usuwanie moduw w trybie wielu uytkownikw ................................... 107
Odczyt listy zaadowanych moduw...................................................................... 108
adowanie i usuwanie moduw............................................................................. 108

Spis treci

7
Dostosowanie jdra do potrzeb ..................................................................................... 108
Przygotowanie......................................................................................................... 109
Kopia zapasowa jdra ............................................................................................. 110
Edycja plikw jdra................................................................................................. 110
Opcje podstawowe .................................................................................................. 113
Wiele procesorw.................................................................................................... 115
Urzdzenia .............................................................................................................. 115
Kompilacja jdra ........................................................................................................... 118
Problemy z kompilacj jdra................................................................................... 119
Uruchamianie systemu z nowym jdrem....................................................................... 121
Dodawanie funkcji do jdra........................................................................................... 121
LINT ....................................................................................................................... 121
Wykorzystanie opcji do poprawiania bdw.......................................................... 122
Poprawianie wydajnoci jdra ....................................................................................... 123
Wspdzielenie jder ..................................................................................................... 125

Rozdzia 5. Sie .............................................................................................. 127


Warstwy sieciowe.......................................................................................................... 127
Warstwa fizyczna .................................................................................................... 128
Warstwa protokou fizycznego................................................................................ 129
Warstwa protokou logicznego................................................................................ 129
Warstwa aplikacji.................................................................................................... 130
Sie w praktyce ............................................................................................................. 130
Bufory mbuf............................................................................................................ 132
Czym jest bit ........................................................................................................... 132
Ethernet ......................................................................................................................... 134
Rozgaszanie ........................................................................................................... 134
Rozwizywanie adresw ......................................................................................... 134
Koncentratory i przeczniki ................................................................................... 135
Maska sieci.............................................................................................................. 135
Sztuczki z maskami................................................................................................. 137
Maski w zapisie szesnastkowym ............................................................................. 138
Bezuyteczne adresy IP........................................................................................... 138
Routing.................................................................................................................... 139
UDP i TCP .............................................................................................................. 139
Porty sieciowe ......................................................................................................... 140
Przyczenie do sieci Ethernet....................................................................................... 141
Obsuga wielu adresw IP przez jeden interfejs...................................................... 143
Program netstat ....................................................................................................... 144

Rozdzia 6. Aktualizacja FreeBSD..................................................................... 149


Wersje systemu FreeBSD.............................................................................................. 149
Wydania .................................................................................................................. 150
FreeBSD-current ..................................................................................................... 150
FreeBSD-stable ....................................................................................................... 151
Migawki .................................................................................................................. 152
Poprawki bezpieczestwa ....................................................................................... 152
Ktre wydanie wybra ............................................................................................ 153
Metody aktualizacji systemu ......................................................................................... 154
Aktualizacja za pomoc sysinstall........................................................................... 154
Aktualizacja za pomoc CVSup.............................................................................. 155
Uproszczenie procesu aktualizacji systemu za pomoc CVSup.............................. 167

FreeBSD. Podstawy administracji systemem


Utworzenie lokalnego serwera CVSup.......................................................................... 168
Kontrola dostpu ..................................................................................................... 170
Uwierzytelnianie ..................................................................................................... 171
Poczenie uwierzytelniania i kontroli dostpu ....................................................... 173

Rozdzia 7. Zabezpieczanie systemu ................................................................ 175


Identyfikacja wroga....................................................................................................... 176
Script kiddies .......................................................................................................... 176
Niezadowoleni uytkownicy ................................................................................... 176
Dowiadczeni napastnicy ........................................................................................ 177
Ogoszenia dotyczce bezpieczestwa systemu FreeBSD............................................. 177
Subskrypcja............................................................................................................. 178
Tematyka listy dyskusyjnej ..................................................................................... 178
Profile zabezpiecze...................................................................................................... 179
Profil zabezpiecze na poziomie rednim ............................................................... 179
Profil zabezpiecze na poziomie najwyszym ........................................................ 179
Uytkownik root, grupy i uprawnienia.......................................................................... 180
Haso uytkownika root .......................................................................................... 180
Grupy uytkownikw.............................................................................................. 181
Grupa podstawowa.................................................................................................. 181
Najwaniejsze grupy domylne............................................................................... 182
Uprawnienia grup.................................................................................................... 182
Zmiana uprawnie......................................................................................................... 184
Zmiana waciciela pliku......................................................................................... 185
Ustawianie uprawnie............................................................................................. 186
Znaczniki plikw........................................................................................................... 187
Przegldanie znacznikw pliku ............................................................................... 188
Ustawianie znacznikw........................................................................................... 189
Poziomy zabezpiecze .................................................................................................. 189
Ustawianie poziomw zabezpiecze ....................................................................... 190
Wybr waciwego poziomu zabezpiecze............................................................. 191
Do czego nie przydadz si poziomy zabezpiecze i znaczniki plikw .................. 192
Poziomy zabezpiecze na co dzie ......................................................................... 193
Pogramy, ktre mog posuy do wamania ................................................................ 193
Wykorzystanie nabytych umiejtnoci .......................................................................... 197

Rozdzia 8. Zaawansowane funkcje bezpieczestwa ......................................... 199


Kontrola ruchu .............................................................................................................. 199
Zasada domylnej akceptacji i domylnego odrzucania .......................................... 200
TCP Wrappers ............................................................................................................... 200
Konfiguracja TCP Wrappers ................................................................................... 201
Nazwa demona........................................................................................................ 201
Lista klientw.......................................................................................................... 202
Opcje reakcji systemu ............................................................................................. 204
Wykorzystanie wszystkich opcji ............................................................................. 208
Filtrowanie pakietw..................................................................................................... 209
IPFilter .................................................................................................................... 209
IPFW....................................................................................................................... 210
Zasada akceptacji i odrzucania w filtrach pakietw ................................................ 210
Podstawy filtrowania pakietw ............................................................................... 211
Implementacja mechanizmu IPFilter....................................................................... 212
Wizienie....................................................................................................................... 220
Konfiguracja systemu do wykorzystania mechanizmu wizienia ............................ 221
Konfiguracja jdra do wykorzystania mechanizmu wizienia ................................. 222

Spis treci

9
Konfiguracja klienta................................................................................................ 223
Wchodzimy do wizienia ........................................................................................ 225
Kocowa konfiguracja wizienia ............................................................................ 226
Uruchamianie wizienia.......................................................................................... 226
Zarzdzanie wizieniem.......................................................................................... 227
Zamykanie wizienia .............................................................................................. 228
Monitorowanie bezpieczestwa systemu....................................................................... 228
Co robi w przypadku wamania ................................................................................... 229

Rozdzia 9. Katalog /etc ................................................................................. 231


Bogactwa katalogu /etc ................................................................................................. 231
Pliki domylne............................................................................................................... 232
/etc/defaults/rc.conf................................................................................................. 232
/etc/adduser.conf ..................................................................................................... 233
/etc/crontab.............................................................................................................. 235
/etc/csh.* ................................................................................................................. 237
/etc/dhclient.conf..................................................................................................... 238
/etc/fstab.................................................................................................................. 239
/etc/ftp.* .................................................................................................................. 239
/etc/hosts.allow........................................................................................................ 239
/etc/hosts.equiv........................................................................................................ 240
/etc/hosts.lpd ........................................................................................................... 241
/etc/inetd.conf.......................................................................................................... 241
/etc/locate.rc ............................................................................................................ 241
/etc/login.access ...................................................................................................... 242
/etc/login.conf ......................................................................................................... 244
/etc/mail/mailer.conf ............................................................................................... 249
/etc/make.conf oraz /etc/defaults/make.conf ........................................................... 250
/etc/master.passwd .................................................................................................. 256
/etc/motd ................................................................................................................. 257
/etc/mtree/*.............................................................................................................. 258
/etc/namedb/* .......................................................................................................... 258
/etc/newsyslog.conf................................................................................................. 258
/etc/passwd .............................................................................................................. 258
/etc/periodic.conf oraz /etc/defaults/periodic.conf .................................................. 259
/etc/printcap............................................................................................................. 260
/etc/profile ............................................................................................................... 262
/etc/protocols........................................................................................................... 262
/etc/pwd.db.............................................................................................................. 263
/etc/rc ...................................................................................................................... 263
/etc/rc.conf oraz /etc/defaults/rc.conf ...................................................................... 265
/etc/resolv.conf........................................................................................................ 273
/etc/security ............................................................................................................. 273
/etc/services............................................................................................................. 273
/etc/shells................................................................................................................. 273
/etc/spwd.db ............................................................................................................ 274
/etc/ssh .................................................................................................................... 274
/etc/sysctl.conf......................................................................................................... 274
/etc/syslog.conf ....................................................................................................... 274

Rozdzia 10. Wzbogacanie funkcjonalnoci systemu ........................................... 275


Kompilacja oprogramowania ........................................................................................ 276
Zalety i wady kodw rdowych ........................................................................... 276
Usuwanie bdw .................................................................................................... 277

10

FreeBSD. Podstawy administracji systemem


System pakietw i portw ............................................................................................. 278
Porty........................................................................................................................ 278
Wyszukiwanie programw...................................................................................... 280
Ograniczenia prawne............................................................................................... 283
Wykorzystanie pakietw ............................................................................................... 284
Instalacja z dysku CD.............................................................................................. 284
Instalacja z serwera FTP ......................................................................................... 286
Szczegy techniczne instalacji ............................................................................... 287
Usuwanie pakietw z systemu ................................................................................ 288
Informacje o pakiecie .............................................................................................. 288
Kontrola programu pkg_add ................................................................................... 289
Problemy z pakietami.............................................................................................. 290
Wymuszanie instalacji ............................................................................................ 292
Wykorzystanie portw .................................................................................................. 292
Instalacja portu........................................................................................................ 294
Przebieg polecenia make install .............................................................................. 294
Dodatkowe opcje portw ........................................................................................ 296
Usuwanie i ponowna instalacja portw ................................................................... 299
Czyszczenie portu za pomoc polecenia make clean............................................... 300
Kompilacja pakietw .............................................................................................. 300
Zmiana cieki instalacyjnej ................................................................................... 300
Ustawianie opcji programu make na stae............................................................... 301
Aktualizacja wersji portw i pakietw .......................................................................... 301
Aktualizacja kolekcji portw................................................................................... 302
Problemy z aktualizacj kolekcji portw................................................................. 303
Sprawdzanie wersji oprogramowania...................................................................... 303
Wskazwki dotyczce aktualizacji systemu............................................................ 305

Rozdzia 11. Zarzdzanie oprogramowaniem....................................................... 307


Skrypty startowe............................................................................................................ 308
Typowy skrypt startowy.......................................................................................... 308
Wykorzystanie skryptw do zarzdzania uruchomionymi procesami..................... 309
Zarzdzanie bibliotekami wspdzielonymi ................................................................ 310
ldconfig ................................................................................................................... 311
Uruchamianie programw przeznaczonych do innych systemw ................................. 314
Rekompilacja .......................................................................................................... 315
Emulacja ................................................................................................................. 316
Implementacja ABI ................................................................................................. 316
Obce biblioteki programowe ................................................................................... 318
Instalacja i uaktywnienie trybu Linuksa ........................................................................ 319
Identyfikacja programw ........................................................................................ 320
Zawarto portu linux_base .................................................................................... 320
Dodawanie programw do linux_base .................................................................... 321
Konfiguracja bibliotek wspdzielonych Linuksa ................................................... 322
Instalacja dodatkowych pakietw linuksowych w formacie RPM .......................... 323
Wykorzystanie kilku procesorw mechanizm SMP ................................................. 324
Na czym polega SMP? ............................................................................................ 324
Zaoenia dotyczce jdra ....................................................................................... 325
FreeBSD 3.0 SMP................................................................................................... 326
FreeBSD 5 SMP...................................................................................................... 327
Wykorzystanie SMP ............................................................................................... 327
SMP i aktualizacje systemu..................................................................................... 328

Spis treci

11

Rozdzia 12. Wyszukiwanie hostw za pomoc DNS ........................................... 331


Jak dziaa DNS? ............................................................................................................ 331
Podstawowe narzdzia DNS.......................................................................................... 332
Polecenie host ......................................................................................................... 332
Uzyskiwanie szczegowych informacji za pomoc programu dig......................... 333
Wyszukiwanie nazw hostw za pomoc programu dig........................................... 335
Inne opcje polecenia dig.......................................................................................... 336
Konfigurowanie klienta DNS: resolver ......................................................................... 337
Sowa kluczowe domain i search ............................................................................ 337
Lista serwerw nazw............................................................................................... 338
rda informacji DNS.................................................................................................. 339
Plik hostw.............................................................................................................. 339
Demon named ......................................................................................................... 340
Pliki stref................................................................................................................. 346
Przykad prawdziwej strefy ........................................................................................... 351
named.conf.............................................................................................................. 351
/var/named/master/absolutebsd.com ....................................................................... 351
Kropki na kocu nazw hostw w pliku strefy.......................................................... 353
Wprowadzanie zmian w ycie....................................................................................... 353
Uruchamianie demona named podczas rozruchu systemu............................................. 354
Sprawdzanie danych DNS............................................................................................. 355
Bdy w konfiguracji demona named...................................................................... 355
Bezpieczestwo demona named.................................................................................... 355
Okrelanie kolejnoci informacji................................................................................... 356
Wicej informacji o pakiecie BIND .............................................................................. 357

Rozdzia 13. Zarzdzanie maymi usugami sieciowymi ....................................... 359


Kontrolowanie pasma.................................................................................................... 359
Konfigurowanie IPFW ............................................................................................ 360
Tworzenie potokw................................................................................................. 362
Przegldanie regu IPFW ........................................................................................ 363
Kolejki dummynet................................................................................................... 363
Kierunkowe ksztatowanie ruchu ............................................................................ 364
Szyfrowanie z kluczem publicznym .............................................................................. 364
Certyfikaty .............................................................................................................. 365
Tworzenie wniosku o przyznanie certyfikatu.......................................................... 366
Samodzielne podpisywanie certyfikatw ................................................................ 368
SSH ............................................................................................................................... 370
Testowanie SSH...................................................................................................... 370
Wczanie SSH ....................................................................................................... 371
Podstawowe informacje o SSH ............................................................................... 371
czenie si za pomoc SSH................................................................................... 373
Konfigurowanie SSH .............................................................................................. 373
Czas systemowy ............................................................................................................ 377
Ustawianie strefy czasowej ..................................................................................... 377
Network Time Protocol........................................................................................... 377
Ntpdate.................................................................................................................... 378
Ntpd ........................................................................................................................ 379
Inetd .............................................................................................................................. 380
/etc/inetd.conf.......................................................................................................... 380
Konfigurowanie programw uruchamianych przez inetd ....................................... 381
Bezpieczestwo demona inetd ................................................................................ 382
Uruchamianie demona inetd.................................................................................... 382
Zmiana sposobu dziaania demona inetd................................................................. 382

12

FreeBSD. Podstawy administracji systemem

Rozdzia 14. Poczta elektroniczna ...................................................................... 385


Przegld systemu e-mail................................................................................................ 385
Miejsce FreeBSD w systemie pocztowym .............................................................. 386
Protok poczty elektronicznej................................................................................ 386
Programy pocztowe....................................................................................................... 389
Kto potrzebuje programu sendmail? ....................................................................... 389
Zastpowanie programu sendmail........................................................................... 390
Instalowanie serwera postfix ................................................................................... 390
Elementy serwera postfix ........................................................................................ 390
Konfigurowanie serwera postfix ............................................................................. 391
Aliasy pocztowe ...................................................................................................... 393
Rejestrowanie poczty .............................................................................................. 395
Domeny wirtualne................................................................................................... 395
Polecenia serwera postfix........................................................................................ 396
Znajdowanie waciwego hosta pocztowego........................................................... 397
Poczta, ktrej nie da si dorczy............................................................................ 397
POP3 ............................................................................................................................. 397
Instalowanie serwera POP3..................................................................................... 397
Testowanie serwera POP3....................................................................................... 398
Rejestrowanie zdarze POP3 .................................................................................. 399
Tryby POP3 ............................................................................................................ 399
Kwestie wstpne ..................................................................................................... 399
Domylna konfiguracja programu qpopper............................................................. 400
Konfiguracja APOP ................................................................................................ 402
Konfigurowanie pop3ssl ......................................................................................... 404
Bezpieczestwo programu qpopper ........................................................................ 405

Rozdzia 15. Usugi WWW i FTP......................................................................... 407


Jak dziaa serwer WWW? ............................................................................................. 407
Serwer WWW Apache .................................................................................................. 408
Pliki konfiguracyjne serwera Apache...................................................................... 408
Konfigurowanie serwera Apache ............................................................................ 410
Sterowanie serwerem Apache ................................................................................. 424
Hosty wirtualne ............................................................................................................. 427
Hosty wirtualne oparte na nazwach......................................................................... 428
Hosty wirtualne oparte na adresach IP .................................................................... 429
Modyfikowanie konfiguracji hostw wirtualnych................................................... 429
.NET w systemie FreeBSD............................................................................................ 431
Instalowanie SSCLI ................................................................................................ 431
FTP................................................................................................................................ 432
Bezpieczestwo FTP............................................................................................... 432
Klient FTP............................................................................................................... 433
Serwer FTP ............................................................................................................. 435

Rozdzia 16. Systemy plikw i dyski................................................................... 439


Wzy urzdze ............................................................................................................. 439
Dyski twarde i partycje ........................................................................................... 440
Plik /etc/fstab................................................................................................................. 441
Podstawowe informacje o dyskach................................................................................ 442
Fast File System ............................................................................................................ 443
V-wzy................................................................................................................... 444
Typy montowania systemu FFS .............................................................................. 444
Opcje montowania systemu FFS............................................................................. 446

Spis treci

13
Co jest zamontowane?................................................................................................... 447
Brudne dyski ................................................................................................................. 447
Fsck......................................................................................................................... 447
Montowanie i odmontowywanie dyskw ...................................................................... 449
Montowanie standardowych systemw plikw....................................................... 449
Montowanie z wykorzystaniem opcji...................................................................... 449
Wymuszone montowanie w trybie do odczytu i zapisu .......................................... 450
Montowanie wszystkich standardowych systemw plikw .................................... 450
Montowanie w niestandardowych lokalizacjach ..................................................... 450
Odmontowywanie ................................................................................................... 450
Mikkie aktualizacje...................................................................................................... 451
Wczanie mikkich aktualizacji............................................................................. 451
Buforowanie zapisu na dyskach IDE a mikkie aktualizacje .................................. 451
Buforowanie zawartoci katalogw............................................................................... 452
Montowanie obcych systemw plikw.......................................................................... 452
Korzystanie z obcych systemw plikw ................................................................. 452
Typy obcych systemw plikw............................................................................... 453
Montowanie obcych systemw plikw za pomoc opcji polecenia mount ............. 454
Prawa dostpu do systemu plikw................................................................................. 454
Noniki wymienne i plik /etc/fstab ................................................................................ 455
Tworzenie dyskietki ...................................................................................................... 455
Formatowanie niskopoziomowe.............................................................................. 456
Tworzenie systemu plikw FFS .............................................................................. 456
Tworzenie systemu plikw MS-DOS...................................................................... 457
Podstawowe informacje o SCSI .................................................................................... 457
Typy SCSI............................................................................................................... 457
Adaptery SCSI ........................................................................................................ 458
Magistrale SCSI ...................................................................................................... 458
Terminatory i okablowanie ..................................................................................... 458
Identyfikatory i numery logiczne urzdze SCSI.................................................... 459
FreeBSD i SCSI ............................................................................................................ 459
Opnienie rozruchu ............................................................................................... 459
Kotwiczenie urzdze ............................................................................................. 460
Dodawanie dyskw twardych........................................................................................ 461
Tworzenie wycinkw .............................................................................................. 462
Tworzenie partycji .................................................................................................. 462
Konfigurowanie pliku /etc/fstab.............................................................................. 463
Instalowanie istniejcych plikw na nowych dyskach ............................................ 463
Tymczasowe montowanie ....................................................................................... 464
Przenoszenie plikw................................................................................................ 464
Montowanie kaskadowe.......................................................................................... 465

Rozdzia 17. RAID ............................................................................................. 467


Sprztowe i programowe macierze RAID ..................................................................... 467
Poziomy RAID.............................................................................................................. 468
Programowa macierz RAID .......................................................................................... 468
Komponenty dyskw Vinum .................................................................................. 469
Typy pleksw.......................................................................................................... 470
Przygotowywanie napdu Vinum ........................................................................... 471
Przydzielanie partycji Vinum.................................................................................. 471
Konfigurowanie Vinum........................................................................................... 472
Pleks poczony....................................................................................................... 473
Usuwanie konfiguracji Vinum ................................................................................ 475
Woluminy paskowane ............................................................................................. 476

14

FreeBSD. Podstawy administracji systemem


Woluminy lustrzane ................................................................................................ 477
Uruchamianie Vinum podczas rozruchu systemu ................................................... 478
Inne polecenia Vinum ............................................................................................. 479
Wymiana uszkodzonego pleksu lustrzanego........................................................... 479

Rozdzia 18. Wydajno systemu ....................................................................... 483


Zasoby komputera ......................................................................................................... 483
Dyskowe wejcie-wyjcie ............................................................................................. 484
Przepustowo sieci....................................................................................................... 485
Procesor i pami .......................................................................................................... 485
Korzystanie z programu top .................................................................................... 485
Wykorzystanie pamici ........................................................................................... 489
Wykorzystanie obszaru wymiany............................................................................ 489
Wykorzystanie procesora ........................................................................................ 490
Kopoty z obszarem wymiany ....................................................................................... 493
Stronicowanie.......................................................................................................... 493
Wymiana ................................................................................................................. 493
Stronicowanie czy wymiana?.................................................................................. 494
Dostrajanie wydajnoci w praktyce ............................................................................... 497
Procedura testowania wydajnoci ........................................................................... 497
Wstpny test............................................................................................................ 498
Korzystanie z obu procesorw ................................................................................ 499
Buforowanie katalogw .......................................................................................... 500
Przenoszenie katalogu /usr/obj................................................................................ 501
Wnioski ......................................................................................................................... 502

Rozdzia 19. Co robi system?............................................................................. 503


Wiadomoci pocztowe o stanie systemu ....................................................................... 503
Przekazywanie raportw ......................................................................................... 504
Rejestrowanie zdarze za pomoc demona syslogd ...................................................... 504
Kanay ..................................................................................................................... 504
Poziomy .................................................................................................................. 505
syslog.conf .............................................................................................................. 506
Rotacja dziennikw z wykorzystaniem pliku newsyslog.conf ................................ 509
Raportowanie za pomoc SNMP................................................................................... 513
Podstawowe informacje o SNMP............................................................................ 513
Bazy MIB................................................................................................................ 514
net-snmp.................................................................................................................. 515
Program snmpwalk.................................................................................................. 515
Specyficzne zapytania snmpwalk............................................................................ 516
Tumaczenie nazw na liczby ................................................................................... 517
Konfigurowanie demona snmpd ............................................................................. 517
Numery indeksowe.................................................................................................. 521
Monitorowanie dugoterminowe za pomoc MRTG ..................................................... 522
Konfigurowanie MRTG .......................................................................................... 522
Przykadowy wpis w pliku mrtg.cfg........................................................................ 523
Testowanie programu MRTG ................................................................................. 525
ledzenie innych parametrw systemu.................................................................... 525
Przydatne pozycje MIB udostpniane przez net-snmp............................................ 526
Monitorowanie pojedynczej pozycji MIB............................................................... 526
Dostosowywanie programu MRTG do wasnych potrzeb....................................... 527
Strona indeksu MRTG ............................................................................................ 528
Przykadowe konfiguracje MRTG .......................................................................... 529
Monitorowanie systemw innych ni FreeBSD ...................................................... 531

Spis treci

15

Rozdzia 20. Awarie systemu ............................................................................. 533


Co powoduje panik? .................................................................................................... 533
Jak wyglda panika systemu?.................................................................................. 534
Reagowanie na panik systemu..................................................................................... 534
Warunki wstpne..................................................................................................... 535
Procedura tworzenia zrzutu awaryjnego.................................................................. 536
Jdro do debugowania............................................................................................. 536
Dziaania podejmowane w razie paniki................................................................... 537
kernel.debug............................................................................................................ 537
Program dumpon..................................................................................................... 537
Program savecore .................................................................................................... 538
Postpowanie w razie awarii ................................................................................... 538
Zrzuty i bdne jdra ............................................................................................... 538
Korzystanie ze zrzutu..................................................................................................... 539
Zaawansowane debugowanie jdra ......................................................................... 541
Badanie wierszy ...................................................................................................... 542
Badanie zmiennych ................................................................................................. 542
Dziwne dziaanie debugera gdb .............................................................................. 543
Wyniki..................................................................................................................... 544
Plik vmcore i bezpieczestwo ................................................................................. 544
Jdro z symbolami i bez symboli ............................................................................ 545
Konsole szeregowe........................................................................................................ 547
Sprztowa konsola szeregowa................................................................................. 547
Programowa konsola szeregowa ............................................................................. 547
Zmiana konfiguracji ................................................................................................ 549
Korzystanie z konsoli szeregowej ........................................................................... 549
Logowanie na konsoli szeregowej........................................................................... 551
Logowanie w sytuacji awaryjnej ............................................................................. 552
Odczanie konsoli szeregowej ............................................................................... 552
Zgaszanie raportu o problemie ..................................................................................... 553
System zgaszania problemw ................................................................................ 553
Co zawiera raport o problemie? .............................................................................. 553
Korzystanie z programu send-pr ............................................................................. 554
Wypenianie formularza.......................................................................................... 555
Skuteczno raportw o problemach....................................................................... 557

Rozdzia 21. FreeBSD w komputerze osobistym.................................................. 559


Dostp do udziaw plikowych ..................................................................................... 559
Warunki wstpne..................................................................................................... 560
Zestawy znakw...................................................................................................... 560
Obsuga CIFS w jdrze ........................................................................................... 560
Narzdzia SMB ....................................................................................................... 561
Konfigurowanie CIFS ............................................................................................. 561
Konfiguracja minimalna: odwzorowywanie nazw .................................................. 562
Inne funkcje polecenia smbutil ............................................................................... 563
Montowanie udziau................................................................................................ 563
Inne opcje polecenia mount_smbfs ......................................................................... 564
Przykadowe wpisy w pliku nsmb.conf................................................................... 564
Przynaleno plikw CIFS .................................................................................... 565
Udostpnianie udziaw plikowych Windows............................................................... 565
Dostp do serwerw druku............................................................................................ 566
lpd ........................................................................................................................... 566
/etc/printcap............................................................................................................. 566
Uruchamianie lokalnego demona lpd...................................................................... 567
Testowanie drukarki................................................................................................ 568

16

FreeBSD. Podstawy administracji systemem


Drukarki lokalne............................................................................................................ 568
X: interfejs graficzny..................................................................................................... 568
Czynnoci wstpne.................................................................................................. 569
Wersje systemu X ................................................................................................... 569
Konfigurowanie systemu X..................................................................................... 569
Poprawianie wygldu systemu X ............................................................................ 570
Aplikacje pulpitowe ...................................................................................................... 571
Przegldarki WWW ................................................................................................ 571
Czytniki poczty ....................................................................................................... 572
Pakiety biurowe....................................................................................................... 573
Muzyka ................................................................................................................... 573
Grafika .................................................................................................................... 573
Narzdzia pulpitowe................................................................................................ 574
Gry .......................................................................................................................... 575

Posowie........................................................................................ 577
Dodatek A Przydatne opcje sysctl ................................................................... 583
Skorowidz...................................................................................... 591

Rozdzia 4.

Zabawy z jdrem
Pierwszym krokiem do optymalizacji systemu FreeBSD jest skonfigurowanie jdra.
Osoby niedowiadczone w systemach Unix mog by nieco zmieszane brzmieniem
nazwy: jdro systemu. W kocu jest to tajemna i ciemna strona systemu, gdzie zwyky
miertelnik nie ma dostpu. W niektrych wersjach systemw Unix, takich jak Solaris,
manipulacje w jdrze systemu nie s dostpne uytkownikom kocowym. W systemach
Unix z rodziny open source optymalizacja jdra jest najlepszym sposobem zwikszenia
wydajnoci systemu. W innych systemach operacyjnych zapewne rwnie jest to prawda, lecz ich producenci po prostu nie udostpniaj takiej moliwoci.
Jdro systemu FreeBSD mona w szerokim zakresie dostosowywa do wasnych potrzeb,
nawet podczas pracy. Mona prawie dowolnie modyfikowa ustawienia jdra majce
wpyw na wydajno systemu. Omwimy interfejs opcji sysctl oraz ich wykorzystanie
do zmiany parametrw pracujcego jdra.
Niektrych elementw jdra nie mona jednak zmieni podczas jego pracy, inne z nich
wymagaj bardzo skomplikowanej konfiguracji. Warto rwnie postara si jak najbardziej ograniczy rozmiar jdra, usuwajc z niego zbdne elementy. Najlepszy sposb
dokonania tego polega na skompilowaniu wasnej wersji jdra.
Na kocu rozdziau omwimy adowalne moduy jdra. S to podsystemy jdra, ktre
mona adowa i usuwa z jdra w zalenoci od potrzeb.

Czym jest jdro?


Istnieje wiele rnych definicji jdra. Wiele z nich trudno zrozumie. Ja posu si prost, cho moe niekompletn definicj. Definicja ta jest wystarczajca dla wikszoci
przypadkw i jest zrozumiaa: jdro to interfejs pomidzy sprztem a oprogramowaniem.
Jdro pozwala zapisywa dane na dysk i w zasobach sieciowych. Obsuguje procesor
oraz operacje na pamici. Tumaczy dane dwikowe na strumie zer i jedynek, zrozumiaych dla karty dwikowej, wskazuje monitorowi, gdzie ma ustawi mae kolorowe
kropki. Jdro udostpnia swoje interfejsy programom, ktre wymagaj dostpu do sprztu.

100

FreeBSD. Podstawy administracji systemem

Zadanie jdra jest jasno zdefiniowane (przynajmniej w naszym uproszczonym ujciu),


lecz wcale nie jest atwe w realizacji. Rne programy oczekuj, e jdro udostpni
im rozmaite interfejsy do sprztu, natomiast rne podzespoy sprztowe udostpni
swoje zasoby w niejednolity sposb. Jdro musi sobie radzi z tymi wszystkimi szczegami. Na przykad jdro obsuguje pami i moe zdarzy si, e program zada
alokacji pamici w sposb nieobsugiwany przez jdro. W takim przypadku program nie
bdzie dziaa poprawnie; nie jest to sytuacja teoretyczna, poniewa programy obsuguj
pami na bardzo rne sposoby. Jeli natomiast jdro nie potrafi skomunikowa si
z kart sieciow, nie bdzie mona skorzysta z niej w systemie. Sposb, w jaki jdro
diagnozuje sprzt w procesie rozruchowym systemu ma bezporedni wpyw na dziaanie tego sprztu i czasem niezbdna jest ingerencja administratora. Na przykad niektre
karty sieciowe po wysaniu odpowiedniego sygnau przedstawiaj si jdru, natomiast
inne w wyniku takiego sygnau potrafi si zawiesi.
Jdro jest tak naprawd plikiem na dysku o nazwie /kernel. Moduy jdra, czyli jego
podsystemy, ktre mog by adowane i usuwane na danie, s zapisane w katalogu
/modules1. W czasach popularnoci sprztu podczanego do komputera podczas jego
pracy, jak karty PC Card oraz urzdzenia USB, dynamicznie adowane moduy jdra
s szczeglnie przydatne. Moduy mog rwnie realizowa dodatkowe funkcje, ktre
s rzadko uywane i dlatego nie warto uwzgldnia ich w standardowej konfiguracji
jdra. Wszystkie pliki w systemie, oprcz /kernel oraz /modules s niezalene od jdra
i jako takie s okrelane mianem programw uytkownika. Cho s niezalene od jdra, wykorzystuj funkcje przez nie udostpniane.
W nowo zainstalowanym systemie mona znale plik /kernel.GENERIC. Jest to standardowo instalowane jdro systemu. W systemach, ktre dziaaj od duszego czasu,
mona znale spor liczb innych jder. Niektre z nich s starymi, nieuywanymi
jdrami, inne stanowi pozostao nieudanych eksperymentw. Zesp twrcw systemu FreeBSD stara si maksymalnie uproci procedur tworzenia i instalacji jdra.
Sprawdmy to.

Konfiguracja jdra
W systemie FreeBSD dostpne s dwa programy do konfiguracji istniejcego jdra:
(8) oraz program rozruchowy (ang. boot loader).

Mechanizm sysctl
Program  pozwala podglda wartoci parametrw jdra, jak rwnie w niektrych przypadkach modyfikowa je. Aby nieco zagmatwa spraw, parametry te s czsto
nazywane opcjami sysctl. Mechanizm sysctl jest bardzo skuteczn funkcj, poniewa czasami pozwala rozwiza problemy z wydajnoci bez koniecznoci ponownej kompilacji jdra lub konfiguracji aplikacji. Niestety, te potne moliwoci, bdnie wykorzystane, mog spowodowa pogorszenie wydajnoci, a nawet problemy z dziaaniem.
1

W wersji 5. systemu jdro razem ze swoimi moduami umieszczane jest w katalogu /boot/kernel

Rozdzia 4. Zabawy z jdrem

101

Mechanizm sysctl jest obsugiwany przez program (8). W wielu miejscach tej
ksiki bd zwraca uwag na uyteczne opcje sysctl, za pomoc ktrych mona wpyn na zachowanie jdra. Aby jednak skutecznie z nich korzysta, trzeba dowiedzie si
o nich czego wicej.
Zanim zaczniemy manipulowa opcjami sysctl, zapoznajmy si z ich list. Opcje sysctl,
dostpne w systemie, mona sprawdzi za pomoc nastpujcego polecenia:
 


Po uruchomieniu powyszego plecenia w pliku sysctl.out znajdziemy setki opcji sysctl


wraz z ich wartociami. W wikszoci przypadkw nazwy tych opcji niewiele mwi
pocztkujcemu uytkownikowi, lecz cz z nich wydaje si zrozumiaa:

     
 

Ta konkretna opcja nosi nazw 


  i ma warto bigbox.blackhelicopters.org.
System, na ktrym uruchamiaem to polecenie, nosi nazw wanie bigbox.blackhelicopters.org. Z nazwy opcji mona wywnioskowa, ze zawiera ona nazw systemu, jaka
wykorzystywana jest przez jdro.
Niektre opcje sysctl s trudniejsze do rozgryzienia:
     

Jako uytkownik nie mam pojcia, co oznacza ta warto. Gdybym jednak mia problemy
z jakim programem, mog zwrci si o pomoc do obsugi technicznej programu lub
zada pytanie na licie dyskusyjnej. Jeli osoba udzielajca pomocy poprosi mnie o to, mog
bez przeszkd odczyta i przekaza mu t warto lub zmieni j w zalenoci od potrzeb.
Opcje sysctl s zorganizowane w formacie drzewa noszcego nazw Management Information Base lub MIB. Drzewo to posiada kilka kategorii, jak net, vm oraz kern. Drzewo
Management Information Base jest wykorzystywane rwnie w innych zadaniach administracji systemem, o czym przekonamy si w dalszej czci ksiki. Kada z tych
kategorii jest podzielona na podkategorie, na przykad kategoria net jest podzielona
na podkategorie: IP, ICMP, TCP, i UDP. Istniej rne typy drzew MIB w rozdziale 19. poznamy na przykad drzewo MIB protokou SNMP. W niniejszym rozdziale
skupimy si jednak na drzewie MIB mechanizmu sysctl.
Zapoznalimy si ju z opcj sysctl 
 . Przygldajc si bliej dostpnym
opcjom sysctl, zauwaymy, e opcji zawierajcych przedrostek  jest wicej. S to
oglne wartoci dotyczce jdra. Znajdziemy rwnie spor liczb opcji zawierajcych
przedrostek 
, na przykad:
 



  !

 !


S to opcje mechanizmu IPC2 jdra. Drzewo opcji sysctl posiada zatem kilka poziomw
rozgazie.
2

IPC jest mechanizmem komunikacji midzyprocesowej (ang. interprocess communication). Rne


programy wykorzystuj ten mechanizm. Jeli program wymaga modyfikacji tych opcji jdra,
informacje na ten temat znajdziemy w jego dokumentacji.

102

FreeBSD. Podstawy administracji systemem

Na kocu kadej z gazi znajduj si indywidualne opcje, jak 


 
 
 .
Kada opcja opisuje cech jdra, tak jak bufor czy ustawienie. Zmieniajc wartoci,
mamy wpyw na dziaanie jdra. Na przykad niektre opcje sysctl okrelaj parametry
buforw pamici biorcych udzia w operacjach sieciowych. Gdy wydajno sieci jest
niska, mona zwikszy ilo pamici wykorzystywanej przez ten podsystem jdra.
W tabeli 4.1. przedstawiamy wybrane gwne gazie drzewa MIB opcji sysctl.
Tabela 4.1. Wybrane gazie drzewa MIB opcji sysctl
Opcja sysctl

Funkcja



podstawowe funkcje jdra

"

pami wirtualna

"

systemy plikw



sie

#

informacje diagnostyczne

informacje o sprzcie

#

zmienne zalene od platformy (np. Alpha, i386)




parametry interfejsw uytkownika



parametry opcji POSIX

Kada warto sysctl moe by typu znakowego (string), cakowitego (integer), logicznego (binary) lub specjalnego, zawierajcego kod maszynowy zrozumiay dla specjalizowanych programw (opaque).
Opcje sysctl nie s dobrze udokumentowane i nie ma pojedynczego dokumentu, w ktrym
wszystkie byyby omwione. Kada z nich jest omawiana w podrcznikach systemowych funkcji, ktrych bezporednio dotycz. Na przykad opcja sysctl 

(o ktrej wspominamy szerzej w rozdziale 7.) jest omwiona w podrczniku systemowych programu  (8). Wiele opcji sysctl nie ma adnej dokumentacji. W dodatku A
przedstawiam list najczciej stosowanych opcji sysctl oraz omawiam ich zastosowanie.
Na szczcie niektre z tych opcji maj oczywiste znaczenie. Na przykad zaraz na pocztku listy znajdziemy opcj nastpujc:
 $

Jest ona wana dla osb, ktre testuj rne jdra, co omwimy szerzej w dalszej czci tego rozdziau. Podczas mudnej procedury usuwania problemw z jdrem zdarza
si czsto, e zapominamy, jakie jdro wykorzystujemy w danej chwili. Nieraz zdarzao mi si szuka przyczyny problemu i jej nie odnale, po czym okazywao si, e
mam uruchomion inn wersj jdra ni ta, w ktrej by problem.

POSIX jest midzynarodowym standardem systemw Unix definiujcym funkcje programw i jdra.
FreeBSD w wikszoci jest zgodny ze standardem POSIX.

Rozdzia 4. Zabawy z jdrem

103

Aby obejrze poddrzewo sysctl (na przykad ke9rn), wywoujemy nastpujce polecenie:
 

%&'(


)*+,-../01

"
 22)


Powyej prezentujemy jedynie kilka wierszy pocztkowych dosy pokanej listy opcji.
Osoby zainteresowane funkcjami sysctl powinny przejrze pen list i zorientowa si
w tym, co jest dostpne. Aby odczyta warto konkretnej opcji, naley poda pen
ciek w drzewie MIB:
 
 

"+


W tym przypadku opcja 


 ma warto . W rozdziale 7. omwimy
dokadnie znaczenie tej opcji.

Modyfikowanie wartoci opcji sysctl


Niektre wartoci sysctl s tylko do odczytu. Tego typu wartoci znajduj si midzy
innymi w gaziach MIB hw (sprzt) oraz machdep (uzalenione od platformy).
  !

Zmiana tego typu wartoci w najlepszym wypadku spowodowaaby zawieszenie systemu,


wic system FreeBSD zabezpiecza uytkownika przed tego rodzaju niebezpieczestwem,
blokujc moliwo dokonania zmiany. Dziki temu prba zmiany tej wartoci niczego nie popsuje, jedynie pojawi si komunikat, e operacja si nie udaa.
Wemy pod uwag nastpujc opcj:
"

  

Powysza opcja, okrelajca moliwo montowania zasobw przez uytkownikw,


moe by zmieniana. Domylnie ma warto 0, co oznacza, e jest wyczona. Aby j
wczy wykorzystujemy opcj  4polecenia :

 
"

  +3


Program powoduje wypisanie komunikatu sygnalizujcego dokonanie zmiany, informujcego o poprzedniej i biecej wartoci. Zmiana wartoci opcji sysctl jest a tak
prostym zadaniem.

W nowszych wersjach FreeBSD opcja 4 jest zbyteczna wystarczy poda przypisanie nowej wartoci.

104

FreeBSD. Podstawy administracji systemem

Ustawianie opcji sysctl


podczas uruchamiania systemu
Wartoci opcji sysctl wpisujemy do pliku /etc/sysctl.conf. Po prostu wpisujemy nazw
opcji oraz podan warto. Na przykad w celu umoliwienia uytkownikom montowania systemw plikw, do pliku /etc/sysctl.conf dopisujemy nastpujcy wiersz:
"

  5

Konfiguracja jdra za pomoc pliku loader.conf


Niektre opcje jdra musz by ustawione przed rozpoczciem procesu uruchamiania
systemu. Na przykad podczas detekcji i konfiguracji urzdze IDE naley podj decyzj o tym, czy ma by aktywna opcja buforowania zapisu (ang. write caching).
Trzeba to ustali w pocztkowej fazie uruchamiania systemu i nie mona pniej tego
zmieni. Podobnie w przypadku nowej karty sieciowej moe by konieczne zaadowanie jej sterownikw przed rozpoczciem procedury rozruchowej. W tych przypadkach
pomocny jest mechanizm adujcy jdro.
Mechanizm ten (ang. loader) spenia wiele funkcji odnajduje dysk twardy, na ktrym
zapisany jest plik jdra, aduje je do pamici, inicjuje proces startowy systemu i przekazuje jdru jego parametry pracy. Najwaniejszymi informacjami, jakie program adujcy
przekazuje jdru, s opcje sysctl, ktre musz by ustawione podczas uruchamiania
systemu.
Najczciej stosowany sposb konfiguracji jdra polega na zmodyfikowaniu pliku konfiguracyjnego programu adujcego. Inny sposb polega na wpisaniu opcji w wierszu
polece programu adujcego. Drugi sposb sprawdza si raczej dla jednorazowych
zmian, jednak, biorc pod uwag duszy okres czasu, lepiej jest wpisa odpowiednie
parametry w pliku /boot/loader.conf.
Program adujcy wykorzystuje dwa pliki konfiguracyjne: /boot/loader.conf oraz
/boot/defaults/loader.conf. Na razie zajmiemy si tylko plikiem /boot/loader.conf. Wpisy w pliku /boot/defaults/loader.conf stanowi domylne ustawienia systemu i kady
wpis w pliku /boot/loader.conf przesania te domylne wartoci.
Plik loader.conf zawiera dwa rodzaje informacji: wiadomoci niezbdne do zaadowania jdra oraz dane pomocnicze dla sterownikw urzdze, ktre tak naprawd s opcjami
sysctl, ustawianymi w trakcie rozruchu systemu.
W pliku /boot/defaults/loader.conf znajduje si dua liczba opcji, ktre mog
okaza si pomocne w rnych sytuacjach, takich jak uruchomienie jdra z pliku
innego, ni plik domylny, lub wczenie diagnostycznego (tzn. powodujcego wypisanie duej iloci komunikatw) trybu uruchomienia systemu. Oto fragment pliku
/boot/defaults/loader.conf:
56$6
   
566

Rozdzia 4. Zabawy z jdrem

105


 
  #560*6

 
  56$ $ 6

 
  56
 
 6


Aby zmieni ustawienia domylne, naley wprowadzi zmienione wersje odpowiednich opcji w pliku /boot/loader.conf.
W pierwszym wierszu powyszego przykadu znajduje si nazwa pliku jdra (ktr poznalimy przy okazji omawiania jednej z opcji sysctl). Zamy, e pracujemy zdalnie
i chcielibymy ponownie uruchomi system z innym jdrem, lecz nie chcemy nadpisywa
standardowego jdra znajdujcego si w pliku /kernel. Zmieniajc nazw pliku jdra
moemy przy nastpnym uruchomieniu zmusi system do zaadowania innego jdra.
Ta opcja sysctl moe by oczywicie ustawiona wycznie podczas rozruchu systemu.
Przeanalizujmy dwa inne przykady: przekazywania opcji pomocniczych sterownikom urzdze oraz uaktywniania opcji automatycznego adowania moduw jdra.

Przekazywanie opcji sterownikom urzdze


Za pomoc pliku loader.conf mona przekazywa urzdzeniom opcje pomocnicze. S to
waciwie sugestie (ang. hints) dla sterownikw, poniewa nie wszystkie sterowniki
danego typu obsuguj wszystkie opcje. Informacje na ten temat mona znale w podrczniku systemowym danego sterownika.
Jak wspomniaem wczeniej, sterownik dysku IDE informacje na temat aktywacji trybu
buforowanego zapisu musi otrzyma we wczesnej fazie rozruchu systemu. Szczegy
na ten temat mona znale w podrczniku sterownika  (4) oraz w rozdziale 16.
Aby wczy opcj buforowania zapisu, naley ustawi opcj 

 na warto .
W tym celu w pliku /boot/loader.conf wpisujemy nastpujcy wiersz:
   566

Powyszy wpis bardzo przypomina zapis opcji sysctl. Po uruchomieniu systemu


sprawdmy warto odpowiedniej opcji sysctl, aby upewni si, e mamy tu do czynienia
z t sam opcj:



   


Jak wida, wszystko si zgadza.


Podczas pracy systemu nie ma moliwoci zmiany tej opcji. Mona to sprawdzi bez
obawy o popsucie czegokolwiek. Niektre opcje sysctl, przeznaczone tylko do odczytu, mona modyfikowa podczas rozruchu systemu. Oczywicie, nie da si w ten
sposb zmieni procesora Pentium na Alph, ale w niektrych przypadkach opcje
sysctl daj bardzo ciekawe moliwoci.

106

FreeBSD. Podstawy administracji systemem

Automatyczne adowanie moduw jdra


Moduy jdra s elementami, ktre w razie potrzeby mona adowa i usuwa z jdra,
gdy ju nie s potrzebne. Pozwala to zaoszczdzi nieco pamici i stanowi znaczne
usprawnienie elastycznoci systemu.
Automatyczne adowanie moduu podczas rozruchu systemu jest prostym zadaniem.
W domylnym pliku loader.conf znajdziemy sporo przykadw. W skrcie: bierzemy
nazw moduu, rozszerzenie .ko zastpujemy tekstem   i wpisujemy j do
pliku loader.conf. Na przykad, aby zaadowa automatycznie modu /module/procfs.ko
do pliku loader.conf wpisujemy nastpujcy wiersz:
 
 #567/'6

Najtrudniej jest okreli moduy, ktre warto zaadowa. Mniejszy problem jest ze sterownikami urzdze: gdy do systemu dodajemy kontroler SCSI lub kart sieciow
mona doda odpowiedni modu, zamiast od nowa kompilowa jdro. Decyzja o zaadowaniu moduu jdra w celu rozwizania okrelonego problemu z reguy jest podejmowana w wyniku przeczytanej dokumentacji lub za czyj porad. Ponadto wiedza
na temat moduw przychodzi wraz z dowiadczeniem, dziki zapoznaniu si z odpowiedni literatur i zdobyciu informacji na temat tego, jakie moduy bd potrzebne
do realizacji konkretnych celw. W dalszej czci rozdziau przeka kilka zalece
dotyczcych okrelonych moduw jdra.

Rczna konfiguracja programu adujcego


W przypadku czstego uruchamiania systemu, na przykad podczas wprowadzania
testw moduw i opcji sysctl, nie warto nanosi za kadym razem zmian w pliku
/boot/loader.conf. Zamiast tego opcje programu adujcego mona wprowadza przed
uruchomieniem systemu. Gdy testy zostan zakoczone, optymalne parametry mona
zmieni w pliku /boot/loader.conf.
Jak wspominaem wczeniej podczas uruchomienia systemu FreeBSD pojawia si dziesiciosekundowe odliczanie. Jeli w tym czasie zostanie nacinity jakikolwiek klawisz, pojawi (oprcz Enter) si wiersz polece programu adujcego, w ktrym mona
wprowadzi dodatkowe opcje rozruchowe. W wierszu polece programu adujcego
wywietlony zostanie nastpujcy wiersz zachty:


Program adujcy nie jest Uniksem to prosty interpreter polece napisany w jzyku
Forth5. Niektre polecenia programu adujcego przypominaj co prawda polecenia
systemu Unix, lecz uczyniono tak wycznie dla uatwienia korzystania z tego narzdzia.

Jzyk Forth jest jednym z nielicznych interpreterw, ktre zmieszcz si w rekordzie rozruchowym dysku
twardego. Podobny program w jzyku C zajby wicej miejsca. Od czasu do czasu pojawia si ochotnik
obiecujcy napisanie programu adujcego w innym jzyku programowania, jak C, BASIC itp.
Po krtkim okresie osoba taka przestaje jednak zdradza oznaki istnienia.

Rozdzia 4. Zabawy z jdrem

107

Polecenia programu adujcego


Po wpisaniu znaku zapytania i naciniciu klawisza Enter w wierszu polece programu
adujcego zostanie wywietlona krtka informacja pomocy. Omwmy najczciej
stosowane polecenia programu adujcego.

ls
Polecenie  powoduje wypisanie nazw plikw, podobnie jak w systemie Unix. Domylnie wypisywana jest zawarto katalogu gwnego; w poleceniu tym mona rwnie
poda pen ciek katalogu, ktrego zawarto chcemy pozna.

unload
Polecenie    powoduje wyczyszczenie pamici z jdra oraz jego moduw zdefiniowanych w pliku loader.conf.

load
Oznacza zaadowanie pliku do pamici. Polecenie to suy do zaadowania moduu, a nawet samego jdra. Aby zaadowa jdro, naley najpierw wyczyci pami z poprzedniej zawartoci (poleceniem   ).
Zaadowanie moduu sterownika karty Intel EtherExpress odbywa si w nastpujcy
sposb:
   



set
Polecenie  pozwala ustawi warto opcji sysctl. Na przykad buforowanie zapisu na
dyskach IDE wczymy w nastpujcy sposb:





adowanie i usuwanie moduw


w trybie wielu uytkownikw
Niektre moduy jdra nie musz by adowane podczas rozruchu systemu i mona je
adowa i usuwa podczas jego normalnej pracy. Przyjrzyjmy si temu, w jaki sposb odczyta moduy zaadowane w systemie i w jaki sposb adowa je i usuwa z pamici.

108

FreeBSD. Podstawy administracji systemem

Odczyt listy zaadowanych moduw


Po uruchomieniu systemu list zaadowanych moduw mona odczyta za pomoc
polecenia  (8):
 
8#.
9##

':0 
)00000 2d505c
kernel
2
1 0xc0c6c000 13000
linux.ko
#

W tym systemie (na komputerze klasy laptop) zaadowane s w tej chwili dwa moduy:
jdro (kernel) oraz modu zgodnoci z systemem Linux (linux.ko, wicej szczegw
w rozdziale 11.). Kady z tych moduw posiada podmoduy, ktre mona odczyta
za pomoc polecenia    w takim przypadku naley oczekiwa kilkuset
wierszy wyniku.

adowanie i usuwanie moduw


Modu mona zaadowa do pamici za pomoc polecenia  (8), natomiast do
usuwania moduw suy polecenie   (8). Na przykad za pomoc nastpujcego polecenia zostanie zaadowany konsolowy wygaszacz ekranu warp:
    



Gdy modu ju nie jest potrzebny, mona go usun:


   



Gdyby wszystkie niezbdne funkcje wkompilowa w jdro, przybraoby ono bardzo


due rozmiary. Dziki temu, e unikniemy wkompilowania w nie wszystkich moduw,
jdro jest stosunkowo niewielkie i przez to wydajniejsze, natomiast niezbdne funkcje
mona uzyska poprzez zaadowanie moduw do pamici jdra.

Dostosowanie jdra do potrzeb


Prdzej czy pniej moe si okaza, e za pomoc moduw oraz opcji sysctl nie da si
dostosowa jdra do potrzeb w takim zakresie, w jakim byoby to niezbdne. Czasem
jedynym rozwizaniem staje si samodzielne skonfigurowanie jdra. Nie naley jednak
obawia si tego; procedura konfiguracji jdra jest prosta i logiczna. Omwmy j krok
po kroku.
Jdro dostarczone z systemem okrela si jako GENERIC. Jdro to zostao zaprojektowane w uniwersalny sposb, tak aby mogo wsppracowa z jak najwiksz iloci
sprztu. Nie oznacza to jednak, e w kadym przypadku jdro takie bdzie dziaa
poprawnie, a tym bardziej optymalnie. Jdro GENERIC bdzie pracowa z systemem

Rozdzia 4. Zabawy z jdrem

109

486 i nowszymi, lecz nowsze procesory posiadaj zaawansowane funkcje i optymalizacje, ktre pozwalaj na wydajniejsz prac. Jdro GENERIC nie wykorzystuje tych
funkcji i suy raczej jako rozwizanie kompromisowe.
Dziki dostosowaniu jdra moemy poprawi wydajno systemu, jak rwnie moemy
uwzgldni w jdrze dodatkowe funkcje oraz obsug nowego sprztu, nie uwzgldnionego w jdrze podstawowym.

Przygotowanie
Przed rozpoczciem budowy nowego jdra naley zdoby jego kod rdowy. Czytelnicy,
ktrzy zastosowali si do porad z rozdziau 1. posiadaj ju wszystko w swoim komputerze. W przeciwnym razie musz ponownie uruchomi instalator i zainstalowa rda jdra lub, korzystajc z rozdziau 6., skonfigurowa podsystem CVSup.
Osoby, ktre nie potrafi stwierdzi, czy w systemie zainstalowane zostay kody rdowe
jdra, powinny to sprawdzi w katalogu /usr/src/sys. Jeli katalog ten istnieje i znajduje
si w nim spora liczba plikw i katalogw, oznacza to, e kod rdowy jdra zosta
zainstalowany.
Przed rozpoczciem procesu budowy jdra naley sporzdzi list posiadanego sprztu.
Czasem zadanie to bywa nieatwe, poniewa nazwa producenta i marka podzespou
niewiele mwi o moliwociach tego elementu i jego rzeczywistej konstrukcji. Wiele
firm produkowao karty sieciowe kompatybilne z kart NE2000, czasem nawet karty
marki 3Com posiaday ukad oznakowany jako ne20006. Ponadto rozmaite firmy, na
przykad Linksys, czsto firmuj wasn mark urzdzenia, ktre skonstruowane s na
bazie zupenie rnych wzajemnie ukadw. Na wszystkich pudekach wystpuje napis Linksys, a w kadym moe by produkt zbudowany z ukadw scalonych innych
producentw (niejednokrotnie konfiguracj urzdzenia mona w ciemno oszacowa
na podstawie daty wypuszczenia go na rynek).
Na szczcie sprzt PCI posiada zaawansowane mechanizmy identyfikacji, a FreeBSD
dobrze radzi sobie z tego typu urzdzeniami, w wikszoci przypadkw poprawnie
rozpoznajc je podczas rozruchu systemu. Jeli wykorzystujemy starszy system zawierajcy urzdzenia na magistrali ISA konieczne moe si okaza uzyskanie dokadnych
informacji na temat typu i wersji urzdzenia, obsugiwanych przerwa IRQ oraz portw wejcia-wyjcia (I/O).
Najprostszym sposobem identyfikacji posiadanego sprztu jest sprawdzenie zawartoci
pliku /var/run/dmesg.boot, ktry zawiera bufor komunikatw jdra, czyli sprawdzenie
tych wszystkich informacji, ktre pojawiaj si na ekranie podczas uruchamiania si
systemu (patrz rozdzia 3.). Osoby, ktre nie znaj zawartoci pliku dmesg.boot, powinny koniecznie si z nim zapozna w tej chwili. Niejeden uytkownik bdzie zaskoczony znajdujc si tam tak du iloci wiadomoci na temat posiadanego sprztu.

Umieszczanie takiej etykiety na gwnym ukadzie karty czsto bywa ponad siy producenta. W kocu
znacznie uprocioby to ycie uytkownikw, zatem nie warto si tym przejmowa.

110

FreeBSD. Podstawy administracji systemem

W wierszach pliku dmesg.boot, zawierajcych informacje na temat sprztu, pierwszym


elementem jest nazwa urzdzenia. Kady podzesp sprztowy jest identyfikowany
w systemie za pomoc wasnego pliku urzdzenia; jego nazwa skada si z kilku liter,
po ktrych nastpuje liczba, na przykad npx0. Litery stanowi nazw sterownika (npx),
natomiast liczba okrela egzemplarz urzdzenia w systemie, rozpoczynajc od zera. Jednemu urzdzeniu moe odpowiada kilka wierszy w pliku dmesg.boot. Gdy w systemie
zainstalowanych jest wicej urzdze tego samego typu, bd miay kolejne numery.

Kopia zapasowa jdra


Nieprawidowe jdro spowoduje, e system nie da si uruchomi. Z tego powodu bezwzgldnie naley zachowa kopi dziaajcego jdra. Podczas instalacji jdra system
zachowuje jedn jego kopi, lecz bardzo atwo jest nadpisa star i sprawn wersj jdra
wersj now i niesprawdzon.
Co moe si sta w przypadku utraty starego jdra? Zamy, e kompilowalimy nowe
jdro, ktrego nie zdylimy sprawdzi, bo zapomnielimy wczy do niego sterownik
karty sieciowej. Musimy ponownie skompilowa jdro. Poprzednio skompilowane (niesprawdzone) jdro zostanie podczas instalacji skopiowane na pierwotn kopi jdra
(poprawnego), a nowe jdro zostanie ustawione jako domylne. W ten sposb bdziemy
posiada tylko dwa jdra, obydwa o niepewnej jakoci. To proste przeoczenie, polegajce na utracie dziaajcego jdra, moe nie tylko nie pozwoli teraz na uruchomienie
systemu, ale rwnie poskutkowa wikszymi problemami.
Utart nazw sprawdzonego jdra jest /kernel.good. Przed rozpoczciem zabaw z kompilacj jdra skopiujmy wic star i sprawdzon jego wersj:
   
 
  
 
     
 


Nawet posiadanie wikszej liczby jder niczym nie grozi. Wiele znanych mi osb
umieszcza kopi jdra w katalogu, ktrego nazwa zawiera dat i w ten sposb kolekcjonuje pen histori jder. Jedyn konsekwencj istnienia takiej kolekcji moe
by zapenienie partycji gwnej sytemu.

Edycja plikw jdra


Po wykonaniu kopii zapasowej dziaajcego jdra mona rozpocz konfiguracj nowego. Na pocztek zagldamy do katalogu /usr/src/sys/i386/conf, gdzie znajdziemy kilka
plikw. Najwaniejsze dla nas s pliki GENERIC oraz LINT. Plik GENERIC jest plikiem konfiguracyjnym standardowego jdra dostarczanego z instalatorem FreeBSD.
Plik LINT zawiera wszystkie dostpne opcje jdra wraz z opisami.
adnego z plikw wystpujcych w kastalogu /usr/src/sys/i386/conf nie naley
edytowa bezporednio. Zamiast tego naley skopiowa plik GENERIC pod inn nazw

Rozdzia 4. Zabawy z jdrem

111

i zmiany wprowadza w kopii, nie w oryginale. Plikowi naley nada nazw zgodn z nazw maszyny (jest to najczciej stosowana konwencja). Na przykad gdy posiadamy
system o nazwie webserver, plikowi konfiguracyjnemu jego jdra nadamy nazw:
!"#"$%&"'(")"

Nowy plik konfiguracyjny otwieramy w dowolnym edytorze. Poniej przedstawiony


jest fragment pliku GENERIC, obejmujcy konfiguracj urzdze IDE (ATAPI):
:;#: 919  :919<8
#"  
=  8*>(?
#"  
=   8*>(?)
#"
#" #
#
 #919
#" # @#,(.*A919<8
#" #
B#
 919<8
#" 
 @# C 919<8
  
919'1918,8(
:   B :;#:D

W kadym wierszu pliku konfiguracyjnego znajduje si informacja konfiguracyjna lub


komentarz opisujcy dan opcj. Jako znak komentarza suy znak . Tre od tego
znaku do koca wiersza jest ignorowana przez mechanizmy konfigurujce jdro. Komentarze su wycznie do zwikszenia czytelnoci pliku.
Komentarze mog rozpoczyna si od dowolnego miejsca w wierszu, czsto wystpuj
po definicji opcji, informujc o jej znaczeniu. W wierszach definiujcych urzdzenia
na pocztku wystpuje sowo kluczowe . W naszym przykadzie mamy wpisy
dla dyskw twardych IDE, napdw CD-ROM IDE, napdw dyskietek IDE oraz napdw tamowych IDE. Znajdziemy rwnie wpisy dla magistrali IDE pyty gwnej
oraz dla kadego ze zczy IDE.
Wpisy oznaczone sowem kluczowym   dotycz opcji sterownikw. Na przykad
opcja    !"!# powoduje wczenie statycznej numeracji urzdze. Znaczenie
tej opcji poznamy w rozdziale 16. Poznamy rwnie kilka sw kluczowych specjalnego przeznaczenia, jak  $ oraz . Opcje te dotycz najczciej opcji sterownikw lub sprztu.
Jdro GENERIC zostao zaprojektowane w taki sposb, eby mogo dziaa w jak najwikszej iloci konfiguracji sprztowych; znajduj si w nim opcje sterownikw takich
urzdze, jak karty sieciowe, dyski, kontrolery itp. Na pocztku konfiguracji wasnego
jdra naley wyczy zbdne elementy, co spowoduje zmniejszenie i uproszczenie
jdra. Oczywicie po takim odchudzeniu jdra kada zmiana w konfiguracji sprztowej
wymusza konieczno ponownej kompilacji jdra. Z tego powodu uytkownicy pasjonujcy si czstymi zmianami w wykorzystywanym sprzcie nie bd zainteresowani
takim okrojeniem konfiguracji jdra. Z drugiej strony uytkownik wykorzystujcy
cile okrelon konfiguracj sprztow, a ponadto czsto kompilujcy jdro, powinien
zdecydowa si na zmniejszenie jego objtoci.
Skopiowana konfiguracja jdra (w naszym przypadku plik WEBSERVER) rozpoczyna
si od komentarza opisujcego przeznaczenie tego pliku oraz zawierajcego odwoania
do oficjalnej dokumentacji systemu FreeBSD. Po pominiciu komentarzy natrafimy
na nastpujcy blok ustawie:

112

FreeBSD. Podstawy administracji systemem


!
8!,<8)!,<8!,<# E/0/.8,




machine
Sowo kluczowe     okrela architektur systemu. Nie ma sensu zmienia tej opcji,
chyba, e w systemie x86 budujemy jdro dla systemw Alpha.

cpu
Opcja  okrela funkcje obsugiwane przez procesor. Jest to wana opcja, poniewa
wspczesne procesory znacznie rni si od siebie w zakresie obsugiwanych funkcji
(wemy pod uwag choby procesory Pentium i Pentium MMX).
W tej opcji naley wpisa oznaczenie posiadanego procesora. Gdy nie za bardzo wiemy,
co tam wpisa, mona posuy si zawartoci pliku dmesg.boot. Plik dmesg.boot na
moim laptopie zawiera nastpujc tre:
,<-<  888$<  888F $, G2H)+AI:!+

,<-J
*56E 68#5!' 5
% 
5!2K%<-LMA/L(/L<'/L1',LA'.L<9/LA,/L,F!L'/<LA1..L<E/LA,9L,A*ML<91L<'/
LAAFL%F'.L''/3

Dla nas w tym momencie najwaniejszy jest fragment 686-class CPU w pierwszym
wierszu. Oznacza on, e mog usun wiersze z opcjami !%&'"() oraz !*&'"(),
dziki czemu budowane przeze mnie jdro bdzie szybsze i mniejsze. W wyniku tych
modyfikacji jdro bdzie zoptymalizowane pod ktem procesorw klasy 686 i zostanie
pominity wolniejszy, uniwersalny kod.

ident
Opcja   okrela nazw jdra, ktra z reguy jest taka sama, jak nazwa serwera. Gdy
budujemy jedno jdro przeznaczone dla wikszej liczby maszyn, warto nada mu nazw
najlepiej oddajc ich przeznaczenie, jak na przykad WEBSERVER.

maxusers
Warto  + suy do obliczenia rnych wewntrznych parametrw jdra, jak
rozmiary tablic wykorzystywanych w obsudze pocze sieciowych oraz liczby jednoczenie otwartych plikw.
Poczwszy od FreeBSD 4.5 jdro sprawdza ilo dostpnych zasobw i na tej podstawie ustawia warto opcji  + w sposb optymalny dla wikszoci zastosowa.
Warto , opcji  + spowoduje wykorzystanie tych domylnych parametrw.
Takie ustawienie skutkuje zadowalajc konfiguracj w przypadku wikszoci systemw. Warto t mona rwnie ustawi rcznie.

Rozdzia 4. Zabawy z jdrem

113

W systemie FreeBSD 4.4 i wczeniejszych istnieje konieczno rcznego ustawienia


wartoci  +. Zwykle na swoim laptopie z systemem X Window wykorzystuj
warto  + rwn '. Jest to dobra warto podczas pracy na laptopie, poniewa
niezalenie od prac, jakie wykonuj, jestem jedynym uytkownikiem komputera. Z tego
powodu nie mam praktycznie moliwoci otworzy wikszej liczby plikw i pocze
sieciowych ni pozwala opcja  + '. Na obcionym serwerze internetowym
warto opcji  + ustawiam z reguy na -*'. Taka warto sprawia, e serwer jest
w stanie otworzy tysice pocze sieciowych i kontrolowa tysice jednoczenie
otwartych plikw.
Gdy warto opcji  + jest zbyt niska, system nie bdzie w stanie obsuy plikw
i pocze sieciowych. Jdro wychwyci t sytuacj i zacznie wypisywa komunikaty.
Na konsoli i w pliku /var/log/messages pojawi si komunikaty o koniecznoci
zwikszenia wartoci opcji  +.
Nie naley jednak zwiksza wartoci tej opcji powyej 256, chyba e serwer obsuguje miliony jednoczenie otwartych plikw lub wiele szerokopasmowych czy internetowych.

Opcje podstawowe
Po opcji  + w pliku konfiguracyjnym jdra nastpuje seria podstawowych opcji
jdra. Opcje te definiuj szczegy obsugi TCP/IP, FFS oraz systemu plikw. W tej sekcji
wystpuj rwnie mniej powszechnie stosowane opcje, z ktrych cz mona usun.
Nie bdziemy omawia wszystkich moliwych opcji, lecz omwimy dziaanie najczciej
wykorzystanych. Szczeglny nacisk kad na opcje typowe dla serwera internetowego.
Przeanalizujmy nastpujce opcje:
  
A91I/A-N91/

Niektre starsze procesory (jak 386, 486SX) nie posiaday koprocesora arytmetycznego.
Gdy tego typu procesor jest zamontowany w wykorzystywanym systemie, mona pozostawi opcj . /.)0 , co spowoduje wkompilowanie w jdro mechanizmw
emulacji koprocesora. Wszystkie procesory produkowane od wielu lat posiadaj jednak
wbudowane koprocesory arytmetyczne i opcja ta w wikszoci przypadkw jest zbdna.
  
80/1

Opcja !1 powoduje umieszczenie w jdrze mechanizmw sieciowych, jak protokou


TCP/IP. Jest to opcja praktycznie niezbdna.
  
80/1  O  B8<"

Opcja niezbdna dla uytkownikw IPv6, pozostali powinni j usun.


  
%%'

Opcja wczajca obsug systemu plikw FFS (Fast Filesystem). Jest to domylny
system plikw systemu FreeBSD. Opcj naley pozostawi bez zmian.
  
'*%1-<(91/'

114

FreeBSD. Podstawy administracji systemem

Mechanizm mikkich uaktualnie (ang. softupdates) suy zapewnieniu integralnoci


dysku w systemie plikw FFS (wicej informacji na temat tego mechanizmu mona
znale w rozdziale 13.). Opcj  2  naley pozostawi, chyba e wiadomie
rezygnujemy z jej wykorzystania.
  
A(.**1

Opcj t stosuje si w stacjach bezdyskowych wykorzystujcych MFS. W pozostaych


zastosowaniach mona j usun.
  
0%'
  
0%'.**1

Powysze dwie opcje wczaj obsug Network File System. Opcja 13455 daje moliwo uruchomienia sytemu z katalogiem gwnym zaimportowanym z serwera NFS.
Jest to rzadko spotykana opcja w serwerze internetowym. Opcje te mona usun, jeli
NFS nie bdzie wykorzystany.
  
A'(*'%'

Opcja .#53 wcza obsug dyskw twardych i dyskietek sformatowanych na potrzeby


systemu MS DOS, Jest ona przydatna dla uytkownikw planujcych wykorzystanie
dyskietek oraz dyskw twardych z systemem plikw FAT. Mona j rwnie wczy
do systemu, adujc modu  
 .
  
,(2

Opcja wczajca do jdra obsug standardowych systemw plikw dyskw CD-ROM.


Podobnie jak w przypadku systemu plikw MS-DOS obsug systemu plikw ISO-9660
mona wczy, adujc do pamici modu 6'',
 .
  
<.*,%'
  
,*A<91

Po usuniciu dwch powyszych wierszy system przestanie dziaa. Wiele programw


jest uzalenionych od funkcji BSD 4.3. Opcja "5.( %7 powoduje, e jdro bdzie
wsppracowa z BSD 4.3. Od funkcji (45"3 uzaleniona jest natomiast funkcja monitoringu procesw.
  
','8(/N975)

Opcja "!#0 definiuje czas (w milisekundach) oczekiwania systemu przed wyszukaniem urzdze SCSI po wykryciu kontrolera SCSI. Opcja ta ma na celu umoliwienie
rozpdzenia si napdw. Jeli w systemie nie s wykorzystywane napdy SCSI,
opcje te mona usun. W przypadku nowszych urzdze SCSI warto opcji mona
zmniejszy do 5000 (5 sekund) lub mniejszej.
  
-,*0'*N/

Niektre programy pozwalaj uytkownikom podglda konsole systemow z poziomu


terminalu X. Opcja )"5150 wcza w jdrze obsug tej funkcji. Gdy w systemie nie
jest zainstalowany system X Window, opcj mona usun.
  
-'/.,*0%8E
  
M8'-9N-'/.,*0%8E

Rozdzia 4. Zabawy z jdrem

115

Opcje pozwalajce wcza i wycza urzdzenia przed zaadowaniem jdra. Opcje


te z reguy s opcjonalne, lecz warto je pozostawi, poniewa nie szkodz, a w niektrych przypadkach mog okaza si potrzebne.
  
P1.9,/

Opcja 8 4" wcza ledzenie na poziomie jdra. Warto zostawi t opcj, chyba e
kto dokadnie wie, co robi, usuwajc j z konfiguracji.
  
'7'M'IA
  
'7'MA'E
  
'7'M'/A

Opcje uaktywniajce komunikacj midzyprocesow w stylu System V. Wiele aplikacji


jest uzalenionych od tej opcji. Powysze ustawienia mog by rwnie zaadowane
w postaci moduw.
  
<&
  
P<*'8F<.8*.817',I/(-N80E

Opcje powodujce aktywno funkcji (5!9. Wiele programw zaley od wczenia tych
opcji w jdrze.

Wiele procesorw
Gdy system posiada wicej ni jeden procesor, naley koniecznie wczy nastpujce
opcje konfiguracji jdra:
  
'A< 
O   
Q
  
9<8,8* 
O B
  :
BC + BC 9<8,G'  9<8,8$*J

Opcja .( wskazuje jdru, aby wykorzystywao specjalny kod przeznaczony dla systemw wieloprocesorowych. Opcja (!"!5 wcza funkcje obsugi wejcia-wyjcia w systemach wieloprocesorowych.
Gdy planujemy skompilowa jdra wieloprocesorowe, naley usun opcje !7&'"()
oraz !%&'"(). FreeBSD obsuguje wiele procesorw tylko w tych systemach, ktre
przestrzegaj specyfikacji SMP firmy Intel. Specyfikacja ta nie przewiduje wykorzystania procesorw 386 oraz 486.
W przypadku gdy w systemie wykorzystywany jest pojedynczy procesor, naley zablokowa te opcje.

Urzdzenia
Po opcjach oglnych w pliku konfiguracyjnym jdra wystpuj wpisy dotyczce urzdze pogrupowanych w sposb intuicyjny wedug typw.

116

FreeBSD. Podstawy administracji systemem

Magistrale
Na pocztku wystpuj wpisy dotyczce rnego typu magistral, jak  czy te
 . Wpisy te naley pozostawi, chyba e dany typ magistrali nie wystpuje
w systemie. Moe si zdarzy, e nowoczesny system posiada magistral ISA, cho
mogoby si wydawa inaczej. Na przykad mj nowoczesny laptop posiada magistral
ISA wykorzystywan wewntrznie w systemie. W wikszoci przypadkw mona bez
obaw usun wpis dotyczcy magistrali EISA, ktra nie jest spotykana w nowszych
komputerach.

Interfejsy
W kolejnej sekcji wystpuj interfejsy IDE/ATAPI. Nawet gdy w danej chwili nie planujemy wykorzystywa dyskw twardych tego typu, a pyta gwna wyposaona jest
w zcza IDE, warto w konfiguracji jdra pozostawi te wpisy. Mona natomiast usun
wpisy dotyczce typw urzdze IDE, z ktrych nie planujemy korzysta.
Dalej nastpuj wpisy dotyczce kontrolerw i kart SCSI oraz wykorzystywanych funkcji SCSI. W tej grupie znajduj si rwnie wpisy dotyczce urzdze Zip na zczu rwnolegym oraz USB. Jeli nie planujemy stosowa tych urzdze, mona usun ca
sekcj. Jeli SCSI bdzie uywane, warto usun wpisy dotyczce niewykorzystanych
urzdze.
   ','8
#"  #: /8'99I9H
#" :;#: 9I92  : # 
 O @OQ ;98,H


Po sekcji SCSI znajdziemy urzdzenia oglnego przeznaczenia, jak klawiatury, monitory,


port PS/2 itp. Naley je oczywicie pozostawi.
W dalszej czci pliku znajduj si wpisy kart sieciowych. Jest to dosy duga lista,
podobna do sekcji SCSI i IDE. Jeli przez duszy czas nie planujemy wymiany karty
sieciowej, warto usun wpisy dotyczce niepotrzebnych kart. Mona w kadym razie
usun wpisy odnoszce si do kart stosowanych przy zczach ISA, jeli system takich
zczy nie posiada.

Pseudourzdzenia
W pobliu koca pliku konfiguracyjnego jdra GENERIC znajdziemy list pseudourzdze. Jak moe sugerowa nazwa, urzdzenia te nie wystpuj w postaci sprztowej,
lecz ich funkcje s realizowane przez program. Jednym z takich urzdze jest urzdzenie pseudoterminalu wykorzystywanego podczas zdalnych sesji (za pomoc usug
telnet lub SSH, patrz rozdzia 13.). Urzdzenie pseudoterminalu traktuje zdalne poczenie w podobny sposb, w jaki obsugiwany jest monitor i klawiatura przyczone
lokalnie do systemu. Jdro traktuje mechanizmy tego typu podobnie, jak traktuje
urzdzenia fizyczne, przylgn wic do nich termin pseudourzdzenia. Przykadem
takiego urzdzenia moe by:

# +#" 

Rozdzia 4. Zabawy z jdrem

117

Jest to urzdzenie ptli zwrotnej (ang. loopback)  ,. To urzdzenie sieciowe jest


przyczone zawsze do systemu, w ktrym si znajduje. Po usuniciu tego urzdzenia
wiele programw przestanie dziaa. Cho taki eksperyment moe by bardzo pouczajcy,
na produkcyjnym systemie jednak nie jest wskazany.

# +#" 

To pseudourzdzenie obsuguje niezalene od sprztu mechanizmy protokou Ethernet.


Naley je pozostawi.

# +#"


Pseudourzdzenie  obsuguje protok SLIP (Serial Line Internet Protocol). Jest to


starszy protok, wykorzystywany w poczeniach modemowych, wyparty przez PPP
(Point-to-Point Protocol). Prawdopodobnie nie jest potrzebne, chyba e jest wymagane
przez dostawc usug internetowych.

# +#"

Pseudourzdzenie  implementuje w jdrze obsug protokou PPP. Jest to rozwizanie,


ktre przestao by preferowane na korzy implementacji PPP w przestrzeni uytkownika (userland). W wikszoci przypadkw nie jest potrzebne.
Liczba na kocu wiersza okrela liczb pseudourzdze PPP, ktre bd utworzone
przez jdro.

# +#" 

Pseudourzdzenie  obsuguje pseudourzdzenie logicznego tunelu komunikacyjnego.


Mechanizm ten jest wykorzystywany przez programy w celu przekazywania danych
bezporednio do jdra. To pseudourzdzenie wykorzystywane jest midzy innymi przez
mechanizmy PPP dziaajce w przestrzeni uytkownika, wspomniane wyej.

# +#" 

Pseudoterminal wykorzystywany do zdalnego logowania si do systemu za pomoc


usug SSH itp. Naley pozostawi.

# +#" #

Pseudourzdzenie  obsuguje tzw. dyski w pamici. Uytkownicy nie planujcy wykorzystania tej funkcji systemu mog usun ten wpis. W wikszoci serwerw internetowych dyski w pamici s po prostu marnowaniem pamici. Jednak niektre
specjalizowane serwery (jak anonimowe serwery CVS) wykorzystuj ten mechanizm.

# +#"

# +#"  

# +#"

Pseudourzdzenie :2 (Berkley Packet Filter) to filtr, ktry suy do kontrolowania


pakietw wchodzcych do systemu i do obsugi mechanizmu DHCP. Gdy wspomniane mechanizmy nie s wykorzystywane, mona bez przeszkd usun te opcje.

118

FreeBSD. Podstawy administracji systemem

Urzdzenia USB
Po bloku pseudourzdze znajduj si wpisy dotyczce urzdze USB. Wpisy te dotycz moduw adowanych dynamicznie w razie potrzeby za pomoc mechanizmu
 . Wikszo serwerw internetowych nie wykorzystuje urzdze USB, w takich
przypadkach mona wyczy ich obsug w jdrze.

Kompilacja jdra
W poprzednich punktach omwilimy podstawow konfiguracj jdra. Przed wprowadzeniem bardziej zaawansowanych zmian warto na prb skompilowa jdro, aby sprawdzi, czy na tym etapie kompilacja przebiegnie poprawnie.
W tym podrozdziale opisane s zmiany w jdrze przeprowadzane bez uaktualniania
systemu. W przypadku instalowania nowej wersji na starej naley posuy si nieco
inn procedur, opisan w rozdziale 6.

Po wprowadzeniu zmian w opcjach jdra naley je skompilowa. W tym celu wykonujemy polecenie  2;(8), ktre sprawdzi poprawno skadni zmodyfikowanego pliku
konfiguracyjnego i wygeneruje niezbdne pliki konfiguracyjne. Uruchamiamy polecenie  2; z wykorzystaniem pliku konfiguracyjnego .8410:
 *+,"#"P## 
$$ $A7P/.0/N
( R    #  RR ##RR


Za pomoc polecenia  2; nie sprawdzimy, czy konfiguracja jdra zostaa przeprowadzona poprawnie, otrzymamy jedynie szereg komunikatw sygnalizujcych istnienie bdw konfiguracyjnych. Stanie si tak na przykad w przypadku zastosowania
nieistniejcej opcji jdra. Za pomoc programu  2; otrzymamy rwnie informacj
o tym, e naley uruchomi polecenie    . Na razie nie omawialimy tego
zagadnienia, naley jednak pamita, e pominicie tego etapu stanowi najczciej
popeniany bd podczas samodzielnej kompilacji jdra systemu.
Niektre komunikaty wypisywane przez program  2; s bardzo czytelne. Na przykad mona usun opcje obsugi systemu plikw UFS, lecz pozostawi konfiguracj
uruchamiania systemu z systemu plikw UFS. Wiedzc, e druga z opcji wymaga zastosowania pierwszej mona z atwoci odgadn przyczyn bdu. Inne komunikaty
mog by jednak mniej zrozumiae i czasem konieczna jest ich dogbna analiza, jak
to opisaem w rozdziale 2.
Gdy polecenie  2; zostanie wykonane bez bdw, na ekranie pojawi si katalog zawierajcy elementy konfiguracyjne jdra. W powyszym przykadzie jest to ../../compile/
MYKERNEL. Naley przej do tego katalogu i wykona nastpujce polecenie:
 .. 

Rozdzia 4. Zabawy z jdrem

119

Polecenie to skada si z dwch czci. Pierwsza z nich, polecenie   , powoduje sprawdzenie, czy w systemie znajduj si wszystkie elementy niezbdne do konfiguracji jdra i moduw, a nastpnie poczenie ich w jedn cao. Drugie z polece,
    , suy do skompilowania jdra z wykorzystaniem kodu rdowego
oraz zalenoci zbudowanych w poprzednim poleceniu.
Ten etap, w zalenoci od mocy procesora, moe trwa do dugo. Na procesorze 486
25 MHz trwa kilka godzin, natomiast na dwuprocesorowym Pentium 1 GHz trwa kilka
minut. Na ekranie bd si przesuwa niezrozumiae komunikaty kompilatora. Na kocu nastpi faza instalacji, w ktrej stare jdro zostanie zapisane w pliku /kernel.old
a nowe jdro w pliku /kernel.
Po zakoczeniu procesu kompilacji naley ponownie uruchomi komputer i uwanie
obserwowa komunikaty startowe. Na pocztku komunikatw pojawi si informacja na
temat katalogu, w ktrym kompilowane byo jdro. W poniszym przykadzie informacja ta zostaa wyrnione pogrubieniem:
,  GJ22+1%&'(< B 
,  GJ2H2L2!L2!L2!L2!!L2!2L22L22L22L22
1.
  -"
  ,   9

"#
%&'()+,-../01'A 2)/(1
 / 
0  
1  *+,"#"-


Gdy pojawi si powyszy komunikat, mamy pewno, e kompilacja powioda si.


Czas wyprbowa nowe jdro.

Problemy z kompilacj jdra


Gdy kompilacja jdra si nie uda, naley przede wszystkim sprawdzi ostatni wiersz
komunikatw. Na podstawie komunikatw mona czsto odgadn przyczyn problemu, lecz czasem jest to niemoliwe i wtedy naley zwrci si o pomoc do osb, ktre
znaj kod jdra lepiej ni wasn kiesze.
Poniej przedstawiamy przykad bdu kompilacji jdra:
5553

$ #
$
+*++(P/.0/N+> +>##  +#
+>
#+ 
+>
 + 

+> 

+ 
+>  +  +>+>
+? +  + 


+ 
+(PN(A*(-N/+
#+8++8+8+8S$$#+ #+
+
 # 5+$
$
$

$ #
$$$$$
$
$
$

$ #
$$$$$))
   TKR
   

#
UUU/  #
' $
$
$

$ #
$
UUU/  #
' $
$
$

$ #

UUU/  #
' $
$
$


UUU/  #

120

FreeBSD. Podstawy administracji systemem


' $
$

UUU/  #
' $
$

UUU/  #

Na pocztku komunikatu mamy informacj, e problem wystpi wwczas, gdy kompilator znajdowa si w katalogu sys/modules/xl i kompilowa znajdujcy si tam modu
jdra. Widzimy wykonywane polecenie; jest zapisane w kilku kolejnych wierszach i rozpoczyna si od  ,. Polecenie jest tak naprawd zapisane w jednym wierszu i po
prostu zajmuje kilka wierszy na ekranie. Polecenie koczy si przed wierszem oznaczonym znakiem .
Potem nastpuje wiersz (), w ktrym znajduje si informacja o bdzie (  + 
:2 <=<) oraz wiersz, w ktrym wystpi bd. Jest to bd, ktry spowodowa zatrzymanie kompilacji. W dalszej czci listingu widzimy seri bdw. Modu jdra
nie moe by skompilowany, co zatrzymuje kompilacj innych moduw (zalenych).
Sytuacja ta uniemoliwia rwnie ukoczenie kompilacji jdra i w konsekwencji sprowadza si do poraki caego przedsiwzicia.
Na szczcie zanim cokolwiek zostanie zainstalowane konieczne jest pomylne zakoczenie kompilacji wszystkich bez wyjtku elementw jdra. Dziki temu nie ma obawy
o uszkodzenie systemu za pomoc instalacji niekompletnego rodowiska jdra. W przypadku niepomylnej kompilacji istnieje moliwo poprawienia rodowiska i ponownej
kompilacji.
Wiemy, w ktrym momencie kompilacji pojawi si bd (znamy cae polecenie, ktrego
realizacja zakoczya si niepowodzeniem). Wiemy te, co to za bd i w ktrym miejscu w pliku wystpi (bd skadni przed znakiem = w pliku /usr/src/sys/modules/xl/../../
pci/if_xl.c w wierszu l55). Bdy, ktre s sygnalizowane w dalszej czci komunikatu
nie maj znaczenia, poniewa wynikaj wprost z tego pierwszego.
Nie naley martwi si, jeli komunikaty bdw oka si niezrozumiae. Wikszo uytkownikw ma takie wraenie. Naley po prostu zastosowa si do porad z rozdziau 2.
i poszuka pomocy w internecie. Na pocztek naley sprawdzi archiwa listy dyskusyjnej FreeBSD-questions. W pole tekstowe wyszukiwarki wklejamy komunikat bdu
z nazw pliku (2+
>**>  +  :2 <=<) i sprawdzamy, czy podobny
problem mieli inni uytkownicy. Gdy nie uda si znale adnych podpowiedzi, warto
sprbowa wyszuka nastpny wiersz komunikatu (>  :  ).
Jeli nie uda si znale pomocy w archiwach listy dyskusyjnej, mona wysa pytanie
na adres FreeBSD-questions@FreeBSD.org. W licie naley zawrze nastpujce informacje:
 kocowy fragment komunikatw z bdnej kompilacji;
 informacje o wersji wykorzystywanego systemu FreeBSD;
 zawarto pliku /var/run/dmesg.boot;
 wynik dziaania polecenia   ;
 plik konfiguracyjny kompilowanego jdra.

Rozdzia 4. Zabawy z jdrem

121

By moe problem ten atwo rozwiza i po uzyskaniu tych informacji znajdzie si kto,
kto podsunie jakie sugestie rozwizania. Bdy tego typu wystpuj z reguy w wyniku
niewaciwej konfiguracji jdra.

Uruchamianie systemu
z nowym jdrem
Co naley zrobi, gdy nowe jdro nie do koca dziaa poprawnie? Na przykad zapomnielimy skonfigurowa kompilacj pseudourzdzenia ppp i nie moemy poczy
si z internetem za pomoc modemu. Nie naley wpada w popoch, poniewa nic nie
jest stracone. Podczas uruchamiania systemu naley przerwa proces w sposb opisany
w podrozdziale Rczna konfiguracja programu adujcego. Gdy pojawi si wiersz
polece programu adujcego, naley usun z pamici stare jdro:
  


W tym momencie program adujcy powinien znajdowa si w katalogu gwnym


systemu plikw. Moemy przypomnie nazwy posiadanych jder, wywoujc polecenie , ktre spowoduje wypisanie zawartoci katalogu /.
Nastpnie wybieramy jdro, ktrym chcemy uruchomi system. Naley pamita, aby
zaadowa rwnie wszystkie niezbdne moduy.
  
 
   

0 

Po wykonaniu tych polece powinien uruchomi si system z wybranym jdrem.


Jeli nie wykonalimy kopii poprawnego jdra i wszystkie posiadane jdra s bdne,
nadal nie ma powodu do niepokoju. Instalator systemu FreeBSD umieszcza standardowe jdro w pliku /kernel.GENERIC. To jdro powinno da moliwo uruchomienia systemu z wierszem polece lub przynajmniej w trybie jednego uytkownika.

Dodawanie funkcji do jdra


Jeli wszystko odbyo si poprawnie, w tym momencie powinnimy mie do dyspozycji jdro z minimaln funkcjonalnoci. Nadszed czas, aby je dostosowa do wasnych potrzeb.

LINT
Pen list opcji jdra i sterownikw wraz z ich dokumentacj mona znale w pliku
/usr/src/sys/i386/conf/LINT.

122

FreeBSD. Podstawy administracji systemem

Jeli w standardowym jdrze nie jest obsugiwane jakie urzdzenie, naley zajrze do
pliku LINT. Niektre z obsugiwanych opcji s nieco toporne, lecz uytkownicy nietypowego sprztu z pewnoci je doceni. Na przykad system FreeBSD pozwala uaktywni specjalne funkcje procesora IBM BlueLightning, dziki czemu posiadacze
sprztu tego typu mog wykorzysta go w szerszym zakresie.
Typowy fragment pliku LINT wyglda nastpujco:
*B ,<-<<.,/N/.*0 O;:  
O@ #  :   
 
, 
A#  *B  B
V : # V  Q :BCQ : :# ' 
!
#  :# '  H  V @
: CW&8*'+Q # <  <    
 @ #  :   
 , A#  
  
,<-<<.*,/N/.*0

Dziki tej opcji moemy uaktywni pewn opcj sprztow w niestandardowej konfiguracji (wykorzystanie przejciwki pozwalajcej zainstalowa procesor nowszego typu
w pycie gwnej starszego typu). FreeBSD pracuje rwnie ze starszym sprztem, wic
zastosowanie mog znale take takie nietypowe opcje. Ta konfiguracja nie jest jednak
na tyle powszechnie stosowana, aby usankcjonowa wczenie opcji "()((45-"0451
w standardowym jdrze. Nie zaszkodzi jednak wiedzie, gdzie naley szuka tej
opcji, gdyby okazaa si potrzebna. Warto przejrze plik LINT choby po to, by nabra orientacji w dostpnych opcjach.
Dlaczego jednak nie s wczone wszystkie opcje dostpne w pliku LINT? Wiele z opcji
zapisanych w tym pliku koliduje z innymi. Na przykad opcja "()((45-"0451 informuje jdro, e w systemie wykorzystywana jest pyta gwna do procesorw
Pentium Pro z procesorem Celeron. Opcja "()4 81 wcza obsug stosu powrotu
w procesorach Cyrix 5x86. Nie ma jednak procesorw Celeron produkowanych
przez firm Cyrix, a nawet gdyby istniay, nie wykorzystywayby wspomnianej wyej
przejciwki do pyt do procesorw Pentium Pro.

Wykorzystanie opcji do poprawiania bdw


Niektre z opcji mona wykorzysta do eliminacji bdw. Jeden z moich znajomych
posiada kilka serwerw WWW zainstalowanych na starych komputerach PC. Gdy jeden
z nich by zmuszony do obsugi kilkuset wywoa na sekund, zacz generowa nastpujce komunikaty o bdach:
X2H $     " 
4



<A9<'I<E</.<.*,

Administrator zignorowa te komunikaty i wkrtce system zaama si. Zostaem poproszony o pomoc. Na podstawie sugestii z komunikatu przestudiowaem dokadnie plik
LINT i znalazem nastpujcy fragment:
N:  :B<M  
Y @
: B  C V Q : #O@#Q
  B;: 
    :
  @
QO#: B-
:
#VB  C  O;::#V  :    @::B 

  V

Rozdzia 4. Zabawy z jdrem

123

  O WO@# #:
 :

 
 #  : 
 @   B

Y @
: B  C  CW  :: # B; B

 
6" " 6L6" "
"#6  :6" "  6

 V
:   CWB
 @
:   #  C# CB
  
<A9<'I<E</.<.*,5

Po przeczytaniu tych informacji zdecydowalimy si na rozwizanie. Zapisalimy kopi


jdra w pliku /boot/kernel.pmap-crash. Nie byo to, co prawda, poprawne jdro, lecz
warto zachowa kopi dziaajcego, cho niedoskonaego jdra na wypadek, gdyby nowe
jdro miao okaza si gorsze. Nastpnie zwikszylimy warto opcji (.(/(?(4(45"
do 400 i zwikszylimy ilo pamici systemowej do 192 MB. Komputer, na ktrym
byo konfigurowane jdro, staruszek z 64 MB pamici RAM, obsugiwa kilkaset wywoa stron WWW na sekund. Po skonfigurowaniu i kompilacji jdra komunikaty
o bdach ustay zupenie.
Bez moliwoci dostosowania szczegowych ustawie jdra nie byoby innego wyjcia,
jak tylko kupi nowy serwer. Oczywicie w tym konkretnym przypadku mielimy do
czynienia ze sprztem z bardzo niskiej pki. Jeli jednak mona byo przeduy ycie
tego sprztu za pomoc prostej modyfikacji konfiguracji, dlaczego z tego nie skorzysta?
Gdyby jednak kto czu siln potrzeb wydawania pienidzy, moe po prostu przesya
je do mnie.

Poprawianie wydajnoci jdra


A moe poprawi wydajno?
Najpowaniejszym wskim gardem systemu s bufory sieciowe mbuf. W rozdziale 5.
omwimy wicej szczegw na ich temat; przyjmijmy teraz, e s to fragmenty pamici wykorzystywane do obsugi pocze sieciowych. Kade poczenie moe wykorzystywa wiksz ilo buforw mbuf.
Liczba buforw mbuf zmienia si wskutek modyfikacji opcji jdra  +, omwionej wczeniej. W przypadku serwera produkcyjnego, dla ktrego spodziewamy si
sporego obcienia, naley dodatkowo zmodyfikowa te parametry. Dostosowanie opcji
mbuf dziki opcji  + czsto pomaga, lecz omwione niej zmiany w konfiguracji
s dosy czsto stosowan opcj konfiguracyjn.
Opcja 1.@"0) 4 kontroluje liczb buforw mbuf wykorzystywanych przez jdro.
Ta opcja nie wystpuje w standardowym pliku konfiguracyjnym jdra, trzeba j tam
dopisa; wystpuje natomiast w pliku LINT.
  
0A&,N-'1/.'5

124

FreeBSD. Podstawy administracji systemem

Klastry pamici mbuf s alokowane w pamici na stae, nie mona wic po prostu
zwikszy tej wartoci do miliona, poniewa pami zajta nie bdzie dostpna dla innych funkcji systemowych, jak otwieranie plikw i obsuga serwera WWW.
Jeden nmbcluster zajmuje okoo 2 kB pamici, wic przykadowe ustawienie spowoduje
zaalokowanie 2 MB pamici na mechanizmy obsugi sieci. W nowoczesnym komputerze
nie jest to duo, lecz w przypadku komputerw klasy 486, na ktrych mona znale
instalacje FreeBSD, jest to ju powany rozmiar pamici. Po co jednak zmienia t
warto?
Aby obliczy liczb buforw mbuf, naley sprawdzi liczb jednoczenie otwartych
pocze w okresach najwikszego obcienia. W tym celu posuymy si poleceniem
 (1). Polecenie to suy do wypisania liczby aktywnych w danej chwili operacji
sieciowych, wliczajc w to poczenia TCP, UDP, poczenia na interfejsie ptli zwrotnej oraz poczenia za pomoc gniazd uniksowych. Nas interesuj tylko poczenia
TCP i UDP, wic posuymy si poleceniem ;(1), aby odrzuci zbdne informacje. Po odfiltrowaniu wynik przelemy do polecenia (1), ktre zliczy liczb wierszy
wyniku, co w konsekwencji spowoduje wypisanie liczby pocze TCP i UDP7. Oto
przykad takich wywoa:
22
H
2 2
HH


Aby sprawdzi liczb wykorzystywanych w danej chwili buforw mbuf, naley wykona
polecenie  . Program netstat omwimy nieco szerzej w rozdziale 5.

W naszym przykadzie w danej chwili w systemie byo aktywnych 427 pocze TCP
oraz 377 UDP. W sumie daje to okoo 800 pocze. Aby wzi pod uwag okresowe
szczyty obcienia, naley wynik zmierzony w okresie typowego obcienia pomnoy
przez dwa.
Gdy wiemy ju, ile pocze przyjdzie nam obsuy, moemy okreli przypuszczaln
ilo pamici wymaganej do ich obsugi. Kade poczenie TCP wymaga wykorzystania bufora wysyki i bufora odbioru. Ich rozmiar (w bitach) mona odczyta z opcji
sysctl 
 

   oraz 
 

 :




   
#
 !




   "
 !

Na pocztku ksiki napisaem, e Unix jest czym na ksztat jzyka mwionego. W tym miejscu
mamy doskonay tego przykad: z elementw w postaci polece systemowych skadamy wiksze
polecenie wykonujce okrelone dziaanie. Osoba postronna moe uzna, e administratorzy systemw
Unix s ponadprzecitnie inteligentni. W wikszoci jestemy jednak po prostu leniwi na sposb
kreatywny.

Rozdzia 4. Zabawy z jdrem

125

Trudno jest pracowa z bajtami, przeliczmy to wic na kilobajty: 16 384 dzielone przez
1024 daje 16, zatem kady bufor zajmuje w systemie 16 kB. Naley jednak sprawdzi
to w wykorzystywanym systemie, poniewa na przykad pomidzy FreeBSD w wersjach 4.3 i 4.4 nastpia zmiana domylnego rozmiaru bufora. Biorc pod uwag 2 bufory na poczenie, otrzymujemy wynik 32 kB.
Kade poczenie UDP rwnie wymaga zastosowania bufora. W tym przypadku nie
ma wikszych moliwoci manipulacji, dla naszych potrzeb moemy jednak zaoy, e
poczenia UDP wymagaj podobnych iloci pamici jak poczenia TCP.
Wiemy wic, e na kade poczenie potrzebujemy 32 kB pamici i e w szczycie bdziemy mieli do czynienia z okoo 800 poczeniami. 800 32 kB = 25 600 kB, czyli okoo
25 MB. Aby wzi pod uwag nage skoki obcienia, pomnmy to przez dwa, co w wyniku da 50 MB.
Kady klaster mbuf ma rozmiar 2 kB, 1024 klastry maj rozmiar 2 MB. Potrzebujemy
50 MB na bufory mbuf, wic dzielimy 50 MB przez 1024, po czym dzielimy to przez 2
i otrzymujemy 25 600 klastrw mbuf. Zatem opcj 1.@"0) 4 ustawiamy na warto
-*',,:
  
0A&,N-'1/.'5)

Konfigurujc serwer sieciowy, warto przeznaczy dla opcji 1.@"0) 4 okoo jedn
czwart posiadanej pamici RAM. Na przykad w przypadku pamici 128 MB na bufory mbuf przeznaczamy 32 MB pamici, czyli omawian opcj ustawiamy nastpujco: 1.@"0) 4'7&%. By moe to za mao lub za duo, lecz na pocztek stanowi dobre oszacowanie.

Wspdzielenie jder
Gdy mamy do dyspozycji wiksz liczb identycznych komputerw, ktre planujemy
uywa jako serwery, nie ma potrzeby na kadym z nich konfigurowa i kompilowa
jdra. Mona wykorzysta jedno jdro skonfigurowane na potrzeby wszystkich komputerw. Jdro jest w kocu po prostu plikiem binarnym, ktry mona skopiowa.
Aby wykorzysta t moliwo, naley skompilowa jdro i porzdnie je przetestowa.
Nastpnie naley skopiowa plik /kernel oraz katalog /modules na wszystkie pozostae
serwery. Przed umieszczeniem takiego wsplnego jdra na kadym z serwerw naley
oczywicie wykona kopi oryginalnego jdra. Teraz wystarczy ponownie uruchomi
komputer i gotowe.

You might also like