Så här laddar och lossar du kärnan förlängningar i OS X

Kärnan förlängningar, kallad kext för korta, är moduler av kod som laddas direkt i kernelutrymmet för OS X, som kan köras på en låg nivå för att utföra en rad olika uppgifter. De flesta kex är en del av den centrala Mac OS X-systemprogramvaran, vanligtvis enhetsdrivrutiner, men vissa tredjepartsprogram installerar också en kext.

Ibland kan avancerade Mac-användare och systemadministratörer behöva ladda eller lossa en kärnförlängning manuellt. Eftersom kärnförlängningar ofta är kritiska komponenter i OS X, är det bara lämpligt för användare som har en särskild anledning att modifiera om en kext laddas eller lossas i OS X-kärnutrymmet. Olämplig modifiering av kextbeteende kan göra Mac-hårdvara oanvändbar eller otillgänglig, och kan också hindra OS X från att fungera alls, så försök inte ändra någon kärnförlängning utan en tvingande orsak och förståelse för vad den används.

Laddar en kärnförlängning i OS X med kextload

För att ladda en kärnförlängning till OS X måste du använda kommandoradsverktyget. Syntaxen är annars enkel nog, vilket 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ålen för standardkommandon) med -b-flaggan:

sudo kextload -b com.apple.driver.ExampleBundle

Hur som helst, slå tillbaka och med inmatningen av administratörslösenordet laddas kärnans förlängning till OS X.

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

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

Detta kan vara till hjälp när du installerat en kärnförlängning manuellt i OS X, eftersom det i vissa situationer hindrar behovet av att starta om Mac.

Moderna versioner av Mac OS X tillåter också att laddning av kärnan förlängs kompletteras med kommandot kextutil, vilket är lite mer fullt ut för debugging skäl, men är annars detsamma för att ladda en kext.

Lossa en kärnförlängning med kextunload

Att lossa en kärnförlängning från OS X är i grunden exakt samma som att ladda en kext, förutom att du använder verktyget kextunload med sudo enligt följande:

sudo kextunload -b com.apple.driver.ExampleBundle

Eller genom att peka direkt på kärnförlängningsbanan:

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

Återigen kan du bekräfta att kärnans förlängning har lossats med hjälp av kextstat och grep, där det inte skulle returnera något.