A Kernelthread oldala részletesen leírta mi is történik a Mac OS X operációs rendszerű számítógépek indításakor (boot). A következő leírás valószínű többek számára kicsit tól részletesnek és érthetetlennek fog tünni, de mindenki találni fog benne valami érdekes információt:
- A számítógépet bekapcsolják.
- Az Open Frmware utasítások lefutnak.
- Összegyűlnek a hardverről a szükséges információk.
- Kiválasztódik az indítandó rendszer (pl. OS, vagy Apple Hardver CD teszt). Ez a lépés akár a felhasználónak is fel lehet ajánlva.
- A /System/Library/CoreServices/BootX átveszi az irányítást, ez a betöltés indító egység. A BootX ketölti a kernelt és amennyiben az indítandó rendszernek létezik képe (logója, stb.), megjeleníti azt.
- A BootX először az korábban gyorstárazott listáról próbálja meg betölteni az egységek meghajtóit (ezt a /usr/sbin/kextcache hozza létre és frissíti). Amennyiben a betöltendő "mkext" file sérült lenne, vagy hiányozna, a BootX a /System/Library/Extensions mappában keresné meg a betöltendő egységeket.
- Lefut a kernel indító rutinja. Az indító rendszer gyökér-könyvtára kinevezésre kerül. Innentől kezdve az Open Firmware nem érhető el.
- A kernel különböző Mach/BSD szerkezetek tölt be.
- Betöltődik az I/O egység.
- A kernel elindítja az /sbin/mach_init egységet, amely a Mach szolgáltatások névadója. Ez az egység felügyeli a szolgáltatások neveit és azokat a portokat, amelyeken keresztül a szolgáltatások elérhetőek.
Innentől kezdve az indítás a felhasználói szinten folytatódik.
- A mach_init elindítja az /sbin/init egységet, a tradícionális BSD indító folyamatot. Az init határozza meg a futtatási szintet és az /etc/rc.boot segítségével beállítja a rendszert, hogy az képes legyen single-user módban üzemelni.
- Az rc.boot határozza meg az indítás típusát (több-felhasználós, Safe, CD-ROM, hálózati, stb.). Hálózati indítás esetén a kern.netboot-ban található sysctl változó 1-es értéket vesz fel, majd az /etc/rc.netboot kerül lefuttatásra.
- Az rc.boot kitalálja, hogy az adott szituációban az fsck futtatása szükséges-e (fsck - file system consistency check). Egy felhasználós és CD-ROM indítások esetén nem fut le az fsck. Safe indítás esetében pedig mindig lefut.
- Az rc.boot sikeres kilépése esetén lefut az /etc/rc indíó parancs. CD-ROM esetében ez a /etc/rc.cdrom-ra hárul.
- Az /etc/rc elindítja a helyi file rendszert (HFS+, HFS, UFS, /dev/fd, / .vol) és megbizonyosodik a /private/var/tmp létezéséről. Ezután lefuttatja az /etc/rc.installer_cleanup parancsot, ha indítás előtt még vissza maradt volna (valamelyik telepítő által).
- Az /etc/rc.cleanup fut le és kitakarít néhány Unix és Mac-es könyvtárban.
- Elindul a BootCache.
- Különböző sysctl változók lesznek meghatározva (pl. vnode-ok maximuma, System V IPC, stb.). /etc/sysctl.conf megléte esetén az abban tárolt változók beolvasására kerülnek.
- Elindul a syslogd.
- A Mach szimbólum dokumentum létre lesz hozva.
- Az /etc/rc elindítja a kextd folyamatot, amely szükség esetén a meghívott kernel kiegészítőket tölti majd be.
- A /usr/libexec/register_mach_bootstrap_servers lefut, amely az /etc/mach_init.d-ben tárolt szolgáltatásokat indítja el.
- Elindul a portmap és netinfo.
- Amennyiben a /System/Library/Extension.mkext öregebb, mint a /System/Library/Extensions, az /etc/rc törli azt, majd létrehoz egy újabbat. Amennyiben az mkext nem létezne, létrehozza azt.
- Az /etc/rc elindítja a /usr/sbin/update folyamatot, amely a rendszer gyorstárát üríti ki időközönként a tárolóra.
- Az /etc/rc elindítja a /usr/libexec/fix_prebindig parancsot, amely a helytelenül kapcsolt programokat kapcsolja újra (prebinding).
- Az /etc/rc elindítja az /sbin/SystemStarter folyamatot, amely az indításkor lefuttatandó programokat indítja el (mint pl. ami a /System/Library/StartupItems, vagy a /Library/StartupItems mappákban is található).
- A CoreGraphics elindítja az Apple Type Services (ATSServer) és a Window Server folyamatokat.
- Alap beállítás esetében a loginwindow alkalmazás indul el (grafikus bejelentkező felület), bár ez megváltoztatható az /etc/ttys dokumentumban.
Az eredeti itt.
















0 Responses to “Mac OS X bootolás”