...was man sehr gut sehen kann, wenn man im Systemprofiler die Erweiterungen betrachtet (Geladen ja/nein).
Wie das beim Start vor sich geht: Wenn die OpenFirmware (oder der Benutzer über den BootManager) OS X als zu startendes Betriebssystem auswählt, übernimmt 'BootX' die vorläufige Kontrolle über den weiteren Startvorgang. Die Aufgabe von BootX ist das Laden der Kernelumgebung, damit später die Systemkontrolle dem kernel übergeben werden kann. Während BootX seine Arbeit verrichtet, wird am Bildschirm das sogenannte "booting image" angezeigt. Seit OS X 10.2 ist dies nicht mehr der kleine MacClassic sondern ein großer grauer Apfel.
BootX versucht als erstes, die Gerätetreiber aus dem 'kextcache' zu laden. Diese Treiber wurden bei einem früheren Systemstart vorbereitet und komprimiert im Bytecode zwischengespeichert, so dass sie schneller geladen werden. Es handelt sich um Gerätetreiber, die für den Systemstart essenziell sind (z.B. Speichergeräte, Grafikkarte etc.). Man braucht deshalb also auch nichts von Hand zu entfernen - ich halte es im Gegenteil für gefährlich, da eventuell unbedarft "rumzuwurschteln".
Ist dieser Cache korrupt oder gar nicht erst vorhanden (zum Beispiel beim ersten Systemstart), sucht BootX im Verzeichnis '/System/Library/Extensions' (der von ThaHammer beschriebene Kernel-Ordner) nach Treibern mit einem entsprechenden Eintrag in ihrer Info.plist-Datei: die Eigenschaft heisst 'OSBundleRequired' und kann die folgenden Werte haben:
Root
Diese Treiber werden immer geladen
Local-Root
Diese Treiber werden bei einem normalen Start von einem lokalen Volumen geladen
Network-Root
Diese Treiber werden bei einem normalen Netzwerkstart geladen
Console
Diese Treiber werden bei einem Start in den SingleUser-Modus zusätzlich zu den Root-Treibern geladen
Safe Boot
Diese Treiber (und nur diese) werden bei einem Safe Boot zusätzlich zu den Root-Treibern geladen
ohne Eintrag
Diese treiber werden später von kextd dynamisch hinzugeladen, wenn sie gebraucht werden.
Wenn alle mindestens nötigen Treiber geladen sind, wird der Kernel initialisiert; d.h. es werden die nötigen Verbindungen geschaffen, so dass der Kernel über die Treiber mit der Hardware richtig kommunizieren kann.
Dylan