Következő Előző Tartalom

2. Hardver

Amikor bekapcsolod a számítógépet, az leteszteli magát, hogy minden rendben működik-e. Ezt "bekapcsolási önteszt"-nek (POST) hívják. Ezután a bootstrap loader nevű, a ROM BIOS-ban található program keres egy bootszektort. A bootszektor egy lemez első szektora, és egy kis programkódot tartalmaz, ami képes egy operációs rendszer betöltésére. A bootszektorokat a bűvös 0xAA55=43603 számmal jelölik meg, ez a 0x1FE=510-es bájtnál található. Ez a szektor utolsó két bájtja. Ezen a módon képes eldönteni a hardver, hogy a szektor bootszektor vagy sem.

A bootstrap loader egy listával rendelkezik arról, hogy hol keressen bootszektort. Az én régi gépem először az elsődleges floppy-meghajtón kereste, majd az elsődleges merevlemezen. A modern gépek ezenkívül CD-ROM-on is kereshetik. Ha megtalálja a bootszektort, betölti a memóriába, és átadja a vezérlést az operációs rendszert betöltő programra. Egy tipikus Linux rendszeren ez a LILO első fokozatú (first stage) betöltője. Ezen kívül persze még sok más módon lehet betöltetni a rendszert. Lásd a LILO User's Guide-ot részletekért. Lásd még a LILO részt URL-ekért.

Természetesen még rengeteg mindent lehetne mondani arról, hogy mit csinál a PC hardvere, de ez nem ennek a helye. Erről a témáról sok jó könyvet olvashatsz .

2.1 Beállítás

A gép néhány információt tárol önmagáról a CMOS-ban. Ez magában foglalja a gépben található lemezek és memória adatait/jellemzőit. A gépben lévő BIOS tartalmaz egy programot, amivel ezeket a beállításokat módosítani lehet. Figyeld meg a géped indulásakor megjelenő üzeneteket, ezek egyike tájékoztat az ehhez valóó hozzáférés módjáról. Az én gépemen a "Delete" gombot kell megnyomni, mielőtt elkezdené betölteni az operációs rendszert.

2.2 Gyakorlatok

Nagyon jó módszere a hardverről való ismeretszerzésnek, ha használt alkatrészekből épít egy gépet az ember. Végy legalább egy 386-ost, amin már könnyűszerrel futtathatsz Linuxot. Nem fog sokba kerülni. Kérdezgess körbe, hátha valaki tud is adni olyan részegységeket, amire szükséged van.

Nézz körül a Neten, töltsd és fordítsd le, majd készíts egy indítólemezt az Unios-nak. (Volt egy honlapjuk: http://www.unios.org, de ez már eltűnt.) Ez csak egy bootolható "Helló világ!" program, alig több mint 100 sornyi assembler kód. Jó volna látni olyan formátumban, hogy a GNU assembler, az "as" is megértse.

Nyisd meg egy hexa-editorral az Unios indítólemezének képfájlját. Ez a fájl 512 bájt méretű, pontosan egy szektornyi. Keresd meg a bűvös 0xAA55-ös számot. Tedd ugyanezt egy indítófloppy-val vagy a saját gépeddel. Használhatod a "dd" programot egy fájlba való kimásoláshoz: dd if=/dev/fd0 of=boot.sector. Légy nagyon óvatos, hogy az "if" (bemeneti fájl) és "of" (kimeneti fájl) jól legyen megadva!

Nézd meg a LILO betöltőjének forráskódját.

2.3 További információ


Következő Előző Tartalom