Como carregar & descarregar extensões do kernel no Mac OS X

Índice:

Anonim

As extensões do kernel, chamadas de kext para abreviar, são módulos de código carregados diretamente no espaço do kernel do Mac OS X, capazes de executar em um nível baixo para executar uma variedade de tarefas. A maioria dos kexts faz parte do software principal do sistema Mac OS X, geralmente drivers de dispositivo de hardware, mas alguns aplicativos de terceiros também instalam um kext.

Às vezes, usuários avançados de Mac e administradores de sistemas podem precisar carregar ou descarregar manualmente uma extensão do kernel.Como as extensões do kernel geralmente são componentes críticos do MacOS, isso é apropriado apenas para usuários que têm um motivo específico para modificar se um kext é carregado ou descarregado no espaço do kernel do MacOS X. A modificação inadequada do comportamento do kext pode tornar o hardware do Mac inútil ou inacessível e também pode impedir que o Mac OS X funcione, portanto, não tente alterar nenhuma extensão do kernel sem um motivo convincente e compreensão de seu uso.

Carregando uma extensão de kernel no Mac OS X com kextload

Para carregar uma extensão do kernel no Mac OS X, você precisará usar o utilitário de linha de comando kextload. A sintaxe é bastante simples, exigindo sudo para acesso administrativo para executar a ação:

sudo kextload /caminho/para/kext.kext

Você também pode usar o identificador de pacote (que são frequentemente os alvos dos comandos padrão) com o sinalizador -b:

sudo kextload -b com.apple.driver.ExampleBundle

De qualquer forma, pressione Enter e com a entrada da senha do administrador a extensão do kernel será carregada no Mac OS X.

Você pode confirmar que um kernel foi carregado listando-o com kextstat, usando grep para procurar o nome fornecido da seguinte forma:

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

Isso pode ser útil depois de instalar manualmente uma extensão do kernel no Mac OS X, pois em algumas situações evitará a necessidade de reiniciar o Mac.

Versões modernas do Mac OS X também permitem que o carregamento da extensão do kernel seja concluído com o comando kextutil, que é um pouco mais completo por motivos de depuração, mas é o mesmo para carregar um kext.

Descarregando uma extensão do kernel com kextunload

Descarregar uma extensão de kernel do Mac OS X é basicamente o mesmo que carregar um kext, exceto que você usará o utilitário kextunload com sudo da seguinte maneira:

sudo kextunload -b com.apple.driver.ExampleBundle

Ou apontando diretamente para o caminho das extensões do kernel:

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

Novamente, você pode confirmar que a extensão do kernel foi descarregada usando kextstat e grep, onde não deve retornar nada.

Como carregar & descarregar extensões do kernel no Mac OS X