next up previous index
Következő: 5.3.3 Egyfelhasználós üzemmód Fel: 5.3 Rendszerindítás Előző: 5.3.1 A PC bekapcsolása   Index

5.3.2 A kernel elindulása

A ,,LILO boot:'' prompt megjelenésekor (ha így konfiguráltuk a lilo-t) a TAB lenyomásával kapunk egy listát az indítható kernelekről, és ha vannak, akkor más operációs rendszerekről is. Miután kiválasztottuk a kívánt kernel nevét különféle paramétereket adhatunk át a kernel vagy az init számára. Az init által futtatandó program nevét (teljes elérési útjával) is megadhatjuk (például: init=/bin/sh).

Mivel a kernel a lemezen tömörítve van először ki kell csomagolnia magát. A kernel-image eleje egy kis programot tartalmaz ebből a célból.

A kernel első feladata a videókártya inicializálása, ha úgy állítottuk be, akkor kérheti a képernyőfelbontás megadását, ellenkező esetben a kernelben meghatározott videómódot állítja be a videókártyán. Ezt a következő üzenettel adja tudtunkra a kernel:

Console: colour VGA+ 80x25

Ezután kiszámol egy összeget, amit a teljesítmény jelzésére használnak.

Calibrating delay loop... 149.50 BogoMIPS

A kernel következő feladata a fizikai memória méretének azonosítása:

Memory: 63532k/65536k available (656k kernel code, 412k reserved, 904k data,
32k init)

Ezután egy humoros mondással nyugtázza a kernel, hogy

Checking if this processor honours the WP bit even in supervisor mode... Ok.
ez a processzor tiszteletben tartja a WP bitet supervisor módban. Jó!

Inicializálja a lemezkvótát:

VFS: Diskquotas version dquot_6.4.0 initialized

Beazonosítja a processzort (és betölt hozzá egy hibajavítást):

CPU: Cyrix 6x86L 2x Core/Bus Clock stepping 02
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
Cyrix processor with "coma bug" found, workaround enabled

Ezután a PCI eszközök és az ISA buszok inicializálását kísérli meg a kernel:

PCI: PCI BIOS revision 2.10 entry at 0xfb470
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: 00:38 [1106/0586]: Work around ISA DMA hangs (00)
Activating ISA DMA hang workarounds.

A hálózati protokollok betöltése:

Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP

A soros portok beállítása a következő lépés:

Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
ttyS03 at 0x02e8 (irq = 3) is a 16550A

A pszeudo-terminálok konfigurálása:

pty: 256 Unix98 ptys configured

Az IDE-vezérlők azonosítása:

VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x6000-0x6007, BIOS settings: hda:pio, hdb:pio
 ide1: BM-DMA at 0x6008-0x600f, BIOS settings: hdc:pio, hdd:pio

Az IDE eszközök azonosítása:

hda: QUANTUM FIREBALL EX3.2A, ATA DISK drive
hdc: WDC AC31600H, ATA DISK drive
hdd: WPI CDD-820, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: QUANTUM FIREBALL EX3.2A, 3079MB w/418kB Cache, CHS=782/128/63, (U)DMA
hdc: Disabling (U)DMA for WDC AC31600H
hdc: DMA disabled
hdc: WDC AC31600H, 1549MB w/128kB Cache, CHS=3148/16/63
hdd: ATAPI 8X CD-ROM drive, 128kB Cache

A CD-ROM meghajtóprogramjának betöltése:

Uniform CDROM driver Revision: 2.55

A merevlemezeken lévő partíciók azonosítása:

Partition check:
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
 hdc: [PTBL] [787/64/63] hdc1 hdc2

Kiírja, hogy a root partíciót csak-olvashatóra mountolja:

VFS: Mounted root (ext2 filesystem) readonly.

A swap terület hozzáadása a rendszerhez:

Adding Swap: 32252k swap-space (priority -1)

Kernelmodulok betöltése a /etc/modules fájl alapján:

wd.c: Presently autoprobing (not recommended) for a single card.
wd.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
eth0: WD80x3 at 0x280, 00 00 C0 56 CB 68 WD8013, IRQ 10, shared memory at 0xc8000-0xcbfff.
Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996
SB 4.13 detected OK (220)

A kernelmodulok betöltése után a kernel utolsó lépése a bootolás folyamán az init processz elindítása. Egészen pontosan a következő programokat próbálja meg elindítani (ebben a sorrendben):

1.
a LILO boot: promptnál megadott programot,
2.
a /sbin/init programot,
3.
a /etc/init programot,
4.
a /bin/init programot,
5.
a /bin/sh parancsot, és ha egyiket sem találja, akkor
6.
panic ,,No init found.'' az eredmény.
Az init konfigurációs állománya a /etc/inittab fájl, az ebben lévő dolgokat hajtja végre. Hogy pontosan milyen feladatokat hajt végre az init, az a futási szinttől függ.

Ezt a futási szintet átadhatjuk a LILO boot: promptnál, a kernel neve után, beírva a kívánt futási szintet. Például: kernelneve single. Ez azt eredményezi, hogy a rendszer egyfelhasználós módban fog elindulni, és csak a /etc/rc1.d/ könyvtárban lévő programokat indítja el. (A /etc/rc?.d/ könyvtárakban igazából csak linkek vannak, amelyek a /etc/init.d/ könyvtárban lévő fájlokra mutatnak.)

Tehát az init elindítja a /etc/rcS.d/ könyvtárba linkelt programokat, majd megnézi a /etc/inittab fájlban az alapértelmezett futási szintet, és elindítja az abban meghatározott programokat. A programok elindulása után beállítja, hogy mit kell tennie a rendszernek a Ctrl-Alt-Del billentyűk lenyomása esetén. Ha rendelkezünk UPS-sel, akkor itt meghatározhatjuk, hogy mi történjen különböző események alkalmával (ha probléma van az áramellátással). Ezután elindítja a beállított getty programokat a meghatározott terminálokra - ezek teszik lehetővé a bejelentkezést a rendszerbe. Lehetőségünk van a soros portokra is különböző getty programokat indítani.

Normál működés esetén az init megbizonyosodik arról, hogy a getty programok dolgoznak, és az elárvult processzeket örökbe fogadja. Minden futó programnak az init processz a szülője, az ő PID-je (processzazonosító) mindig az egyes (1). A boot folyamat alatt indított processzek az init környezeti változóit öröklik. Vannak olyan programok, amik meg tudják változtatni (be tudják állítani) a saját környezeti változóikat - például a cron démon.


next up previous index
Következő: 5.3.3 Egyfelhasználós üzemmód Fel: 5.3 Rendszerindítás Előző: 5.3.1 A PC bekapcsolása   Index

1999-09-17