Hur man laddar & Unload Kernel Extensions i Mac OS X

Innehållsförteckning:

Anonim

Kärntillägg, som förkortas kext, är kodmoduler som laddas direkt in i kärnutrymmet i Mac OS X och kan köras på låg nivå för att utföra en mängd olika uppgifter. De flesta kexts är en del av kärnan i Mac OS X-systemprogramvaran, vanligtvis hårdvarudrivrutiner, men vissa tredjepartsappar installerar också en kext.

Ibland kan avancerade Mac-användare och systemadministratörer behöva manuellt ladda eller ta bort en kärntillägg.Eftersom kärntillägg ofta är kritiska komponenter i MacOS, är detta endast lämpligt för användare som har en specifik anledning att ändra om en kext läses in eller avlastas i MacOS X-kärnutrymmet. Olämplig modifiering av kext-beteende kan göra Mac-hårdvara oanvändbar eller otillgänglig, och kan också hindra Mac OS X från att fungera alls, så försök inte ändra någon kärntillägg utan en tvingande anledning och förståelse för vad det är för användning.

Ladda in en kärntillägg i Mac OS X med kextload

För att ladda en kärntillägg till Mac OS X måste du använda kommandoraden kextload-verktyget. Syntaxen är annars enkel nog, kräver sudo för administrativ åtkomst för att utföra åtgärden:

sudo kextload /path/to/kext.kext

Du kan också använda paketidentifieraren (som ofta är mål för standardkommandon) med flaggan -b:

sudo kextload -b com.apple.driver.ExampleBundle

Hur som helst, tryck på retur och när administratörslösenordet skrivs in kommer kärntillägget att laddas in i Mac OS X.

Du kan bekräfta att en kärna har laddats genom att lista den med kextstat, använda grep för att söka efter det givna namnet så här:

$ kextstat |grep com.apple.driver.ExampleBundle 125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 4 8 7

Det här kan vara användbart efter manuell installation av en kärntillägg i Mac OS X eftersom det i vissa situationer kommer att förhindra behovet av att starta om Mac.

Moderna versioner av Mac OS X tillåter också att laddningen av kärntillägg slutförs med kommandot kextutil, som är lite mer fullfjädrat av felsökningsskäl, men i övrigt är det samma för att ladda en kext.

Ta bort en kärnförlängning med kextunload

Att ladda bort en kärntillägg från Mac OS X är i princip exakt samma sak som att ladda en kext, förutom att du använder kextunload-verktyget med sudo enligt följande:

sudo kextunload -b com.apple.driver.ExampleBundle

Eller genom att peka direkt på kärntilläggets sökväg:

sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext

Återigen, du kan bekräfta att kärntillägget har laddats ur genom att använda kextstat och grep, där det inte borde returnera något.

Hur man laddar & Unload Kernel Extensions i Mac OS X