Hoe & te laden Kernelextensies in Mac OS X verwijderen
Inhoudsopgave:
Kernelextensies, kortweg kext genoemd, zijn codemodules die rechtstreeks in de kernelruimte van Mac OS X worden geladen en die op een laag niveau kunnen worden uitgevoerd om een verscheidenheid aan taken uit te voeren. De meeste kexts maken deel uit van de kernsoftware van het Mac OS X-systeem, meestal hardwarestuurprogramma's, maar sommige apps van derden zullen ook een kext installeren.
Soms moeten geavanceerde Mac-gebruikers en systeembeheerders een kernelextensie handmatig laden of verwijderen.Omdat kernelextensies vaak kritieke componenten van MacOS zijn, is dit alleen geschikt voor gebruikers die een specifieke reden hebben om te wijzigen of een kext wordt geladen of verwijderd in de MacOS X-kernelruimte. Ongepaste wijziging van kext-gedrag kan Mac-hardware onbruikbaar of ontoegankelijk maken, en kan ook verhinderen dat Mac OS X helemaal functioneert, dus probeer geen kernelextensie te wijzigen zonder een dwingende reden en begrip van wat het gebruik ervan is.
Een kernelextensie laden in Mac OS X met kextload
Om een kernelextensie in Mac OS X te laden, moet je het opdrachtregelprogramma kextload gebruiken. De syntaxis is overigens eenvoudig genoeg en vereist sudo voor beheerderstoegang om de actie uit te voeren:
sudo kextload /path/to/kext.kext
U kunt ook de bundel-ID gebruiken (die vaak het doelwit is van standaardopdrachten) met de vlag -b:
sudo kextload -b com.apple.driver.ExampleBundle
Hoe dan ook, druk op Return en met de invoer van het beheerderswachtwoord wordt de kernelextensie in Mac OS X geladen.
Je kunt bevestigen dat een kernel is geladen door deze op te sommen met kextstat en grep te gebruiken om naar de opgegeven naam te zoeken, zoals:
$ kextstat |grep com.apple.driver.ExampleBundle 125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 8 7 5 4 2 1
Dit kan handig zijn na het handmatig installeren van een kernelextensie in Mac OS X, omdat het in sommige situaties voorkomt dat de Mac opnieuw moet worden opgestart.
Moderne versies van Mac OS X staan ook toe dat het laden van de kernelextensie wordt voltooid met het commando kextutil, dat wat meer functionaliteit heeft vanwege foutopsporingsredenen, maar verder hetzelfde is voor het laden van een kext.
Een kernelextensie uitladen met kextunload
Het laden van een kernelextensie van Mac OS X is in principe exact hetzelfde als het laden van een kext, behalve dat je het kextunload-hulpprogramma met sudo als volgt gebruikt:
sudo kextunload -b com.apple.driver.ExampleBundle
Of door direct naar het kernelextensiepad te verwijzen:
sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext
Nogmaals, je kunt bevestigen dat de kernelextensie is verwijderd door kextstat en grep te gebruiken, waar het niets zou moeten retourneren.