skip to Main Content

Cómo cargar y descargar extensiones de kernel en Mac OS X

Terminal en OS X

Las extensiones del kernel, llamadas kext para abreviar, son módulos de código que se cargan directamente en el espacio del kernel de Mac OS X, capaces de ejecutarse a un nivel bajo para realizar una variedad de tareas. La mayoría de los kexts son parte del software principal del sistema Mac OS X, generalmente controladores de dispositivos de hardware, pero algunas aplicaciones de terceros también instalarán un kext.

A veces, los usuarios avanzados de Mac y los administradores de sistemas pueden necesitar cargar o descargar manualmente una extensión del kernel. Debido a que las extensiones del kernel son a menudo componentes críticos de MacOS, esto solo es apropiado para usuarios que tienen una razón específica para modificar si un kext se carga o descarga en el espacio del kernel de MacOS X. La modificación inapropiada del comportamiento de kext puede hacer que el hardware de Mac sea inútil o inaccesible, y también puede evitar que Mac OS X funcione en absoluto, así que no intente cambiar ninguna extensión del kernel sin una razón convincente y sin comprender para qué se usa.

Cargar una extensión de kernel en Mac OS X con kextload

Para cargar una extensión del kernel en Mac OS X, necesitará utilizar la utilidad kextload de la línea de comandos. Por lo demás, la sintaxis es bastante simple, y requiere sudo para el acceso administrativo para realizar la acción:

sudo kextload /path/to/kext.kext

También puede utilizar el identificador de paquete (que suelen ser los objetivos de los comandos predeterminados) con el indicador -b:

sudo kextload -b com.apple.driver.ExampleBundle

De cualquier manera, presione regresar y con la entrada de la contraseña de administrador, la extensión del kernel se cargará en Mac OS X.

Puede confirmar que se ha cargado un kernel enumerándolo con kextstat, usando grep para buscar el nombre de pila así:

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

Esto puede ser útil después de instalar manualmente una extensión del kernel en Mac OS X, ya que en algunas situaciones evitará la necesidad de reiniciar Mac.

Las versiones modernas de Mac OS X también permiten que la carga de la extensión del kernel se complete con el comando kextutil, que es un poco más completo por razones de depuración, pero por lo demás es lo mismo para cargar un kext.

Carga y descarga de extensiones de kernel en Mac OS X

Descarga de una extensión de kernel con kextunload

Descargar una extensión del kernel de Mac OS X es básicamente lo mismo que cargar un kext, excepto que usará la utilidad kextunload con sudo de la siguiente manera:

sudo kextunload -b com.apple.driver.ExampleBundle

O apuntando directamente a la ruta de las extensiones del kernel:

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

Nuevamente, puede confirmar que la extensión del kernel se ha descargado usando kextstat y grep, donde no debería devolver nada.

Back To Top