Wie man & Kernel-Erweiterungen in Mac OS X entlädt
Inhaltsverzeichnis:
- Laden einer Kernel-Erweiterung in Mac OS X mit kextload
- Entladen einer Kernel-Erweiterung mit kextunload
Kernel-Erweiterungen, kurz kext genannt, sind Codemodule, die direkt in den Kernel-Bereich von Mac OS X geladen werden und auf niedriger Ebene ausgeführt werden können, um eine Vielzahl von Aufgaben auszuführen. Die meisten Kexts sind Teil der zentralen Mac OS X-Systemsoftware, normalerweise Hardwaregerätetreiber, aber einige Apps von Drittanbietern installieren auch einen Kext.
Manchmal müssen fortgeschrittene Mac-Benutzer und Systemadministratoren eine Kernel-Erweiterung manuell laden oder entladen.Da Kernel-Erweiterungen oft kritische Komponenten von MacOS sind, ist dies nur für Benutzer geeignet, die einen bestimmten Grund haben, zu ändern, ob ein Kext in den MacOS X-Kernel-Bereich geladen oder entladen wird. Eine unangemessene Änderung des kext-Verh altens kann Mac-Hardware unbrauchbar oder unzugänglich machen und kann auch dazu führen, dass Mac OS X überhaupt nicht funktioniert. Versuchen Sie also nicht, eine Kernel-Erweiterung ohne zwingenden Grund und ohne Verständnis für ihre Verwendung zu ändern.
Laden einer Kernel-Erweiterung in Mac OS X mit kextload
Um eine Kernel-Erweiterung in Mac OS X zu laden, müssen Sie das Befehlszeilenprogramm kextload verwenden. Die Syntax ist ansonsten einfach genug und erfordert sudo für den Administratorzugriff, um die Aktion auszuführen:
sudo kextload /path/to/kext.kext
Sie können auch die Bundle-ID (die häufig das Ziel von Standardbefehlen sind) mit dem Flag -b verwenden:
sudo kextload -b com.apple.driver.ExampleBundle
In jedem Fall drücken Sie die Eingabetaste und mit der Eingabe des Administratorkennworts wird die Kernel-Erweiterung in Mac OS X geladen.
Sie können bestätigen, dass ein Kernel geladen wurde, indem Sie ihn mit kextstat auflisten und mit grep wie folgt nach dem angegebenen Namen suchen:
$ kextstat |grep com.apple.driver.ExampleBundle 125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 8 7 5 4 2 1
Dies kann nach der manuellen Installation einer Kernel-Erweiterung in Mac OS X hilfreich sein, da es in einigen Situationen verhindert, dass der Mac neu gestartet werden muss.
Moderne Versionen von Mac OS X ermöglichen auch das Laden von Kernel-Erweiterungen mit dem kextutil-Befehl, der aus Debugging-Gründen etwas umfassender ist, aber ansonsten dasselbe für das Laden eines kext ist.
Entladen einer Kernel-Erweiterung mit kextunload
Das Entladen einer Kernel-Erweiterung von Mac OS X ist im Grunde genau dasselbe wie das Laden eines kext, außer dass Sie das Dienstprogramm kextunload mit sudo wie folgt verwenden:
sudo kextunload -b com.apple.driver.ExampleBundle
Oder indem Sie direkt auf den Pfad der Kernel-Erweiterungen zeigen:
sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext
Auch hier können Sie bestätigen, dass die Kernel-Erweiterung entladen wurde, indem Sie kextstat und grep verwenden, wobei nichts zurückgegeben werden sollte.