Skip to main content
Este Library Item está disponible para computadoras Mac

¿Qué es una System Extension?

Las System Extensions son el reemplazo moderno de las Kernel Extensions (kexts) en macOS. Con las System Extensions, Apple proporciona nuevos marcos para que los desarrolladores realicen tareas que antes estaban reservadas a los kexts. La principal ventaja de las System Extensions es que se ejecutan en el espacio de usuario en lugar del espacio del kernel, lo que significa que no pueden comprometer la seguridad ni la estabilidad integradas de macOS. Aunque los kexts siguen funcionando, Apple ha declarado obsoletos ciertos tipos, y los desarrolladores deben migrar sus kexts a System Extensions a medida que estén disponibles marcos equivalentes. Actualmente, hay tres nuevos marcos de System Extensions disponibles para reemplazar a los kexts: Los kexts que funcionan fuera de estos nuevos marcos (como el software de virtualización) deben seguir usando kexts hasta que Apple ofrezca marcos de System Extensions equivalentes. Las System Extensions también se pueden permitir mediante un perfil de configuración independiente. Si usas una aplicación que todavía usa una Kernel Extension, te recomendamos que te pongas en contacto con tus proveedores de software para animarlos a migrar a System Extensions.

Información adicional

Descripción general de las Kernel Extensions: archivo de documentación de Apple Developer System Extensions: Apple Developer

¿Qué es una Kernel Extension?

Las Kernel Extensions, a veces denominadas kexts, permiten a los desarrolladores cargar código dinámicamente en el kernel de macOS. Proporcionan acceso a interfaces internas del kernel que permiten que las aplicaciones complejas funcionen correctamente. Algunos ejemplos son las aplicaciones de virtualización y los hipervisores, como Parallels o VMware Fusion.

La diferencia entre Kernel Extensions y System Extensions

Si no estás seguro de si un software usa una System Extension o un kext, hay varias formas de averiguarlo:
  • Ponte en contacto con el fabricante del software
  • Después de instalar el software, ejecuta el siguiente comando para enumerar todas las System Extensions activas. Si no aparece ninguna System Extension, es probable que el software use un kext heredado
systemextensionsctl-list.sh
Este es un ejemplo de la salida que podrías ver si no hay System Extensions instaladas:
terminal-output.txt
Este es un ejemplo de la salida que podrías ver si hay una System Extension instalada:
systemextensionsctl-with-extensions.txt

Crear un perfil de System Extension

Sigue estos pasos para crear un perfil de System Extension en Iru Endpoint que apruebe previamente las System Extensions de una aplicación. Para agregar este Library Item a tu Library de Iru Endpoint, sigue los pasos descritos en el artículo Descripción general de la Library.
1

Asigna un nombre al perfil

Asigna a tu nuevo perfil un nombre descriptivo, como System Extension Allowance.
2

Selecciona los Blueprints

Selecciona los Blueprints designados.
3

Configura la aprobación del usuario

Opcional: si anulas la selección de Allow users to approve system extensions, impedirás que todos los usuarios de la Mac, incluidos los administradores locales, aprueben System Extensions adicionales no aprobadas mediante un perfil. Seleccionar esta opción también desaprobará cualquier System Extension que un usuario haya aprobado anteriormente.
4

Introduce el Team ID

Introduce el Team ID; es el identificador de la tercera columna de la salida de Terminal generada por el comando systemextensionsctl list mencionado anteriormente.
5

Proporciona un nombre

Opcionalmente, proporciona un Nombre para asociarlo al Team ID.
6

Configura las System Extensions

En la sección System Extensions, puedes cambiar opcionalmente el valor predeterminado de Approve all system extensions. Dejar esta opción con su valor predeterminado aprobará previamente cualquier System Extension del Team ID especificado. Opcionalmente, puedes establecer esta opción en una de las siguientes:
  • Allow specific system extensions: Te permite especificar el bundle ID exacto de la System Extension específica que quieres aprobar; usa el bundle ID generado por el comando systemextensionsctl list descrito anteriormente. También puedes configurar opcionalmente una o más de estas extensiones específicas para que las herramientas de administración, como Iru Endpoint o un paquete proporcionado por el proveedor, puedan eliminarlas automáticamente.
  • Allow specific system extension types: Te permite especificar los tipos de System Extensions de un desarrollador, como extensiones de seguridad de endpoints, extensiones de controladores o extensiones de red, que quieres aprobar previamente. En nuestro ejemplo de Symantec, aprobaríamos el tipo Endpoint security extensions, ya que coincide con el tipo de extensión generado por el comando systemextensionsctl list descrito anteriormente.
7

Agrega Team IDs adicionales

Opcionalmente, puedes seleccionar el botón Add Team ID para permitir System Extensions adicionales en un único perfil.
8

Guarda la configuración

Selecciona Guardar.