Sådan indlæses & Unload Kernel Extensions i Mac OS X
Indholdsfortegnelse:
- Indlæsning af en kerneudvidelse i Mac OS X med kextload
- Udlæsning af en kerneudvidelse med kextunload
Kerneudvidelser, kaldet kext for kort, er kodemoduler, der indlæses direkte i kernerummet i Mac OS X, og kan køre på et lavt niveau for at udføre en række opgaver. De fleste kexts er en del af Mac OS X-systemsoftwaren, typisk hardwareenhedsdrivere, men nogle tredjepartsapps vil også installere en kext.
Nogle gange kan avancerede Mac-brugere og systemadministratorer være nødt til manuelt at indlæse eller fjerne en kerneudvidelse.Fordi kerneudvidelser ofte er kritiske komponenter i MacOS, er dette kun passende for brugere, der har en specifik grund til at ændre, om en kext indlæses eller aflæses i MacOS X-kernerummet. Uhensigtsmæssig ændring af kext-adfærd kan gøre Mac-hardware ubrugelig eller utilgængelig og kan også forhindre Mac OS X i overhovedet at fungere, så forsøg ikke at ændre nogen kerneudvidelse uden en tvingende grund og forståelse af, hvad dens brug er.
Indlæsning af en kerneudvidelse i Mac OS X med kextload
For at indlæse en kerneudvidelse til Mac OS X, skal du bruge kommandolinjeværktøjet kextload. Syntaksen er ellers simpel nok og kræver sudo for administrativ adgang til at udføre handlingen:
sudo kextload /path/to/kext.kext
Du kan også bruge bundle-id'et (som ofte er mål for standardkommandoer) med -b-flaget:
sudo kextload -b com.apple.driver.ExampleBundle
Undervejs, tryk retur, og med indtastning af administratoradgangskoden indlæses kerneudvidelsen i Mac OS X.
Du kan bekræfte, at en kerne er blevet indlæst ved at angive den med kextstat, ved at bruge grep til at søge efter det givne navn som sådan:
$ kextstat |grep com.apple.driver.ExampleBundle 125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 427
Dette kan være nyttigt efter manuel installation af en kerneudvidelse i Mac OS X, da det i nogle situationer vil forhindre behovet for at genstarte Mac'en.
Moderne versioner af Mac OS X tillader også indlæsning af kerneudvidelser med kommandoen kextutil, som er lidt mere fuld af fejlfindingsgrunde, men ellers er den samme til indlæsning af en kext.
Udlæsning af en kerneudvidelse med kextunload
At aflæse en kerneudvidelse fra Mac OS X er grundlæggende det samme som at indlæse en kext, bortset fra at du bruger kextunload-værktøjet med sudo som følger:
sudo kextunload -b com.apple.driver.ExampleBundle
Eller ved at pege direkte på kerneudvidelsesstien:
sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext
Igen kan du bekræfte, at kerneudvidelsen er blevet fjernet ved at bruge kextstat og grep, hvor den ikke skulle returnere noget.