Slik laster og laster du ut kjernelengder i OS X

Kernelutvidelser, kalt kext for kort, er moduler av kode som lastes direkte inn i kjerneplassen til OS X, som kan kjøre på et lavt nivå for å utføre en rekke oppgaver. De fleste kexter er en del av den sentrale Mac OS X-systemprogramvaren, vanligvis maskinvaredrivere, men noen tredjepartsapps installerer også en kext.

Noen ganger kan avanserte Mac-brukere og systemadministratorer manuelt laste inn eller laste ut en kjerneutvidelse. Fordi kjerneutvidelser ofte er kritiske komponenter i OS X, er dette bare hensiktsmessig for brukere som har en bestemt grunn til å modifisere om en kext er lastet eller losset i OS X-kjerneplassen. Feilaktig modifisering av kjørbarhet kan gjøre Mac-maskinvare ubrukelig eller utilgjengelig, og kan også forhindre at OS X fungerer i det hele tatt, så prøv ikke å endre en kjernelengde uten en overbevisende grunn og forståelse av hva den bruker.

Laster en kjerneforlengelse i OS X med kextload

Hvis du vil laste inn en kjerneforlengelse til OS X, må du bruke kommandolinjeprogrammet. Syntaxen er ellers enkel nok, og krever sudo for administrativ tilgang til å utføre handlingen:

sudo kextload /path/to/kext.kext

Du kan også bruke buntidentifikatoren (som ofte er målene for standardkommandoer) med -b-flagget:

sudo kextload -b com.apple.driver.ExampleBundle

Uansett, trykk tilbake og med innføringen av administratorpassordet blir kjerneutvidelsen lastet inn i OS X.

Du kan bekrefte at en kjernen er lastet inn ved å oppgi den med kextstat, ved å bruke grep for å søke etter det oppgitte navnet som det:

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

Dette kan være nyttig når du installerer en kjerneforlengelse manuelt i OS X, da det i noen situasjoner forhindrer behovet for å starte Mac-maskinen på nytt.

Moderne versjoner av Mac OS X tillater også at kjerneutvidelsesbelastning skal fylles ut med kommandoen kextutil, noe som er litt mer fullverdig for debugging grunner, men er ellers den samme for å laste inn en kjør.

Lossing av en kjerneforlengelse med kextunload

Lossing av en kjerneforlengelse fra OS X er i utgangspunktet den samme som å laste inn en kaste, bortsett fra at du bruker verktøyet kextunload med sudo som følger:

sudo kextunload -b com.apple.driver.ExampleBundle

Eller ved å peke direkte til kjerneutvidelsesbanen:

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

Igjen kan du bekrefte at kjerneutvidelsen er lastet ut ved hjelp av kextstat og grep, der det ikke skal returnere noe.