Boot
Rendszerbetöltésnek vagy bootolásnak az operációs rendszer betöltődési folyamatát nevezzük. Vannak olyan megoldások, amikor nem szükséges, hogy a számítógépen legyen tárolva a betöltendő operációs rendszer, megoldható az indítási folyamat más eszközökről vagy egy hálózaton lévő másik számítógépről is (hálózati boot, network computer).
Amikor egy PC elindul, a BIOS különféle teszteket végez annak ellenőrzésére, hogy minden rendben van-e. (Ezt szokás power on self test-nek vagy röviden POST-nak nevezni.) Ezután indul a tényleges rendszerindítás. Először egy lemezmeghajtó kerül kiválasztásra, az ebben levő lemez legelső szektorát, a boot szektort olvassa be a rendszer. (Az, hogy mely lemezmeghajtókon, illetve milyen sorrendben keresi a gép a megfelelő boot szektort, a számítógép beállítása mondja meg, de tipikus, hogy először az első floppymeghajtóval, majd az első merevlemezzel próbálkozik a BIOS.) Merevlemezeknél mindezt pontosítani kell: a master boot record (MBR) kerül beolvasásra, ugyanis egy merevlemez több partíciót is tartalmazhat, mindegyiken saját boot szektorral. A boot szektor egy kis (egy szektorba 512 byte fér) programot tartalmaz, melynek a feladata az aktuális operációs rendszer beolvasása és elindítása. Amikor floppyról indítjuk a pl. Linuxot, a boot szektor csak egy olyan kódot tartalmaz, mely beolvassa az első pár száz blokkot (a kernelmérettől függően) a memória egy előre meghatározott helyére. Egy Linux boot floppyn nincs filerendszer, a kernel egyszerűen egymást követő szektorokban található, mivel ez egyszerűsíti a boot folyamatát. Igaz, lehet filerendszerrel rendelkező floppyról is bootolni, pl. a LILO (LInux Loader) segítségével. Amikor merevlemezről boot-olunk, a master boot recordbeli (MBR) kód megvizsgálja a partíciós táblát (az MBR-belit is), hogy azonosítsa az aktív partíciót (azaz amelyik boot-olhatóvá lett téve), beolvassa annak boot szektorát, és elindítja az itteni kódot. A partíció boot szektorában található kód ugyanazt csinálja, mint egy floppy boot szektora: beolvassa a kernelt és elindítja. A részletek ugyan egy kicsit változatosak, mivel általában nem célszerű egy külön partíciót fenntartani a kernel képmásának (kernel image), ezért a boot szektorban található kód nem olvashatja egyszerűen sorban a lemez blokkjait, hanem meg kell találni azokat a blokkokat, ahova a filerendszer lerakta a kernel képmását. Több megoldás is létezik erre a problémára, de a szokásos a LILO használata.
Források
[szerkesztés]További információk
[szerkesztés]- How Computers Boot Up
- Practical bootloader tutorial for ATmega microcontrollers
- Booting with Grub at OSDEV Community
- Tutorial on writing hello world bootloader
- x86 BootStrap Programming Tutorial
- Bootstrapping FreeBSD
- The Linux boot process unveiled
- Mac OS X Boot Process
- The DOS and DOS/Windows boot processes
- Windows Mobile 5.0 Soft Reset
- Pocket PC devices hard reset and soft reset
- Understanding Multibooting