Do spisu tresci tematu 10

10.2 Konfiguracja systemu


Spis tresci


Wstep

Aby ustawic lub zmienic aktualne ustawienia systemu, trzeba skonfigurowac i skompilowac jadro systemu.
Do tego celu potrzebne sa zrodla linuxa. Trzeba je umiescic w katalogu /usr/src/linux. Od tej pory kazda sciezke dostepu bede podawal przy zalozeniu ze katalogiem biezacym jest ten wlasnie katalog.
Wraz ze zrodlami linuxa dostarczone sa skrypty ulatwiajace konfiguracje systemu - config, menuconfig oraz xconfig.
Konfigurowanie przy pomocy skryptow pozwala na okreslenie jakie elementy zrodel zostana wlaczone do nowo skompilowanego jadra. .
Mozliwa jest takze zmiana parametrow systemu podobnie jak przy konfiguracji np. w systemie SCOUnix, trzeba to jednak zrobic recznie edytujac odpowiednie pliki naglowkowe znajdujace sie w katalogu ./include. (niestety nie ma skryptu takiego jak configure w SCOUnixie, ktory by to ulatwil).

Konfiguracja przy pomocy skryptow

Skrypty konfiguracyjne pozwalaja okreslic jakie elementy zrodel linuxa zostana wlaczone do nowego jadra systemu. Informacja ta przechowywana jest w pliku ./include/linux/autoconf.h. Jesli na przyklad w nowym jadrze ma sie znalezc obsluga ipc to w pliku tym pojawi sie linia:
	#define CONFIG_SYSVIPC 1
jesli nie to na jej miejscu bedzie linia:
	#undef CONFIG_SYSVIPC
Plik autoconf.h podzielony jest na sekcje, ktore dotycza roznych czesci jadra. Omowie je ponizej wraz z wybranymi elementami.
Bardziej wyczerpujace informacje na ten temat mozna znalezc w Linux Kernel HOWTO lub uzyskac w trakcie konfiguracji.

Konfiguracja eksperymentalna
Niektore z rzeczy, ktore moze obslugiwac linux (np.: sieci, systemy plikow, protokoly sieciowe) moga byc w wersjach, ktore nie zostaly do konca przetestowane. Wybranie tej opcji umozliwi dolaczenie takich elementow do nowego jadra.

Obsluga modulow ladowalnych
Ustawienie tej opcji umozliwia umieszcznie niektorych elementow jadra jak np. systemy plikow, formaty plikow wykonywalnych czy drivery w malych fragmentach skompilowanego kodu, ktore moga byc wlaczane do jadra badz z niego wylaczane w czasie wykonywania przy uzyciu programow insmod i rmmod.

Glowny setup

CONFIG_MATH_EMULATION
- emulacja koprocesora,
CONFIG_NET
- obsluga sieci,
CONFIG_MAX_16M
- ograniczenie pamieci do 16MB, stosowane w przypadku gdy przy pamieci powyzej 16MB pojawiaja sie problemy,
CONFIG_PCI
- obsluga plyt z PCI,
CONFIG_SYSVIPC
- obsluga ipc,
CONFIG_BINFMT_AOUT
- obsluga starego formatu plikow wykonywalnych a.out,
CONFIG_BINFMT_ELF
- obsluga nowego formatu plikow wykonywalnych elf,
CONFIG_KERNEL_ELF
- skompilowanie jadra w formacie elf,
CONFIG_M386
CONFIG_M486
CONFIG_M586
CONFIG_M686
- typ procesora,

Stacje dyskietek, dyski twarde i inne urzadzenia blokowe
Konfiguracja urzadzen blokowych,

Obsluga SCSI
Obsluga dyskow twardych, czytnikow tasm, CD-ROMow i innych urzadzen SCSI,

Obsluga ISDN
Obsluga polaczen ISDN (Inegrated Service Digital Networking),

Drivery CD-ROM (nie dla SCSI ani IDE/ATAPI)
Obsluga CD-ROMow,

Systemy plikow

CONFIG_QUOTA
- ustawienie tego parametru umozliwia ustawienie ograniczen dla uzytkownikow na miejsce zajete na dysku (dziala tylko z systemem plikow ext2),
CONFIG_MINIX_FS
CONFIG_EXT_FS
CONFIG_EXT2_FS
CONFIG_XIA_FS
CONFIG_FAT_FS
CONFIG_MSDOS_FS
CONFIG_VFAT_FS
CONFIG_UMSDOS_FS
CONFIG_HPFS_FS
CONFIG_SYSV_FS
- obsluga systemow plikow minix, ext, ext2, xiafs, DOS FAT, MS DOS, VFAT (Windows 95), umsdos, OS/2 hpfs (umozliwia tylko odczyt), systemu plikow systemu V,
CONFIG_PROC_FS
- wirtualny system plikow /proc, w ktorym znajduja sie informacje o stanie systemu. Wirtualny oznacza, ze system ten nie zajmuje miejsca na dysku, pliki sa tworzone w momencie gdy chce sie z nich korzystac,
CONFIG_NPC_FS
- pozwala na montowanie katalogow serwera NetWare i dostep do nich jak do katalogu unixowego.
CONFIG_ISD9660_FS
- pozwala na korzystanie ze zbiorow znajdojacych sie na CD-ROMie.
CONFIG_UFS_FS
CONFIG_BSD_DISKLABEL
CONFIG_SMD_DISKLABEL
- wybranie tych opcji pozwala na korzystanie z sytemu plikow ufs (unix BSD).

Urzadzenia znakowe
Konfiguracja urzadzen znakowych m. in. myszy, niektorych czytnikow tasm oraz dostepu do zegara czasu rzeczywistego,

Karty dzwiekowe
Konfiguracja kart dzwiekowych,

Kernel hacking

CONFIG_PROFILE
- w pliku /proc/profile bedzie przechowywana informacja o tym ile czasu jadro spedza w roznych procedurach (do odczytania tych informacji potrzebny jest pakiet readprofile).

Zmiana parametrow systemu

Aby zmienic parametry systemu trzeba zmienic wartosci odpowiednich stalych w plikach z katalogu ./INCLUDE, wiekszosc z nich jest w katalogu ./include/linux/.
Ponizej omowione zostana wybrane stale, ktore mozna zmienic.

System plikow
Te stale znalazlem w pliku ./include/linux/fs.h.

NR_INODE
- rozmiar tablicy i-wezlow (powinien byc wiekszy od NR_FILE)
NR_FILE
- rozmiar tablicy otwartych plikow
NR_OPEN
- maksymalna liczba plikow otwartych przez proces (powinna byc mniejsza od NR_FILE)

Semafory
Te stale znalazlem w pliku ./include/linux/sem.h.

SEMMNI
- oznacza maksymalna liczbe identyfikatorow semaforow w jadrze, od 10 do 300.
SEMMSL
- oznacza maksymalna liczbe semaforow na jeden identyfikator.
SEMMNS
- oznacza maksymalna liczbe semaforow w systemie. Zdefiniowana jest jako SEMMNI*SEMMSL.
SEMOPM
- oznacza maksymalna liczba operacji semaforowych wykonywanych przez funkcje systemowa semop.
SEMMNU
- oznacza liczbe struktur undo w systemie.
Zdefiniowana jest jako SEMMNS.
SEMMAP
- rozmiar tablicy zarzadzajacej zbiorami semaforow. Ustalona jest jako SEMMNS.

Pamiec dzielona
Te stale znalazlem w pliku ./include/asm/shmparam.h.

SHMMAX
- oznacza maksymalny rozmiar segmentu wspoldzielonej pamieci.
SHMMIN
- oznacza minimalny rozmiar segmentu wspoldzielonej pamieci.
SHMALL
- oznacza maksymalna liczbe segmentow tekstowych wspoldzielonej pamieci.
SHMSEG
- oznacza maksymalna liczbe segmentow wspoldzielonej pamieci dolaczonych do procesu.
Ustalona jest jako SHMMNI.

Kolejki komunikatow
Te stale znalazlem w pliku ./include/linux/msg.h.

MSGMNI
- oznacza maksymalna liczbe kolejek komunikatow w systemie.
MSGMAX
- oznacza maksymalny rozmiar komunikatow.
MSGMNB
- oznacza maksymalna dlugosc kolejki komunikatow.

Bibliografia

  1. Linux Kernel HOWTO
  2. Zrodla Linuxa


Autorzy: Marcin Dziubinski
wstep, konfiguracja przy pomocy skryptow
i Dan Valahu
zmiana parametrow systemu