Hur man laddar & Unload Kernel Extensions i Mac OS X
Innehållsförteckning:
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.