So laden und entfernen Sie Kernel-Erweiterungen in OS X

Kernel-Erweiterungen, kurz "kext" genannt, sind Code-Module, die direkt in den Kernel-Bereich von OS X geladen werden und auf einer niedrigen Ebene ausgeführt werden können, um eine Vielzahl von Aufgaben auszuführen. Die meisten Texte sind Teil der zentralen Mac OS X-Systemsoftware, normalerweise Hardware-Gerätetreiber, aber einige Apps von Drittanbietern installieren auch einen Kext.

Manchmal müssen fortgeschrittene Mac-Benutzer und Systemadministratoren möglicherweise eine Kernel-Erweiterung manuell laden oder entfernen. Da Kernel-Erweiterungen häufig kritische Komponenten von OS X sind, ist dies nur für Benutzer geeignet, die aus einem bestimmten Grund modifizieren, ob ein Kext in den OS X-Kernel-Bereich geladen oder entladen wird. Eine unangemessene Änderung des Verhaltens von kext kann Mac-Hardware nutzlos oder unzugänglich machen und kann auch verhindern, dass OS X überhaupt funktioniert. Versuchen Sie daher nicht, irgendeine Kernel-Erweiterung ohne zwingenden Grund und Verständnis zu ändern.

Laden einer Kernel-Erweiterung in OS X mit Kextload

Um eine Kernel-Erweiterung in OS X zu laden, müssen Sie das Befehlszeilenprogramm kextload verwenden. Die Syntax ist ansonsten einfach genug und erfordert sudo für den administrativen Zugriff, um die Aktion auszuführen:

sudo kextload /path/to/kext.kext

Sie können die Bundle-ID (die häufig die Ziele von Standardbefehlen sind) auch mit dem Flag -b verwenden:

sudo kextload -b com.apple.driver.ExampleBundle

So oder so, drücken Sie Return und mit der Eingabe des Administrator-Passworts wird die Kernel-Erweiterung in OS X geladen.

Sie können bestätigen, dass ein Kernel geladen wurde, indem Sie ihn mit kextstat auflisten, indem Sie grep verwenden, um nach dem gegebenen Namen zu 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 hilfreich sein, wenn Sie eine Kernel-Erweiterung manuell in OS X installieren, da dies in manchen Situationen das Neustarten des Macs verhindert.

Moderne Versionen von Mac OS X erlauben auch das Laden der Kernel-Erweiterung mit dem Befehl kextutil, der aus Debugging-Gründen etwas umfangreicher ist, aber beim Laden eines Kext anders ist.

Entladen einer Kernel-Erweiterung mit kextunload

Das Entladen einer Kernel-Erweiterung von OS X ist im Prinzip 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 Kernel-Erweiterungspfad 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, wo nichts zurückgegeben werden soll.