La empresa Apple ha presentado una herramienta para crear, cargar y ejecutar contenedores de Linux en macOS. El funcionamiento de los contenedores en macOS se lleva a cabo utilizando máquinas virtuales ligeras con un núcleo Linux, iniciadas mediante el hipervisor Virtualization.framework. Se han propuesto dos paquetes para trabajar con contenedores de Linux: containerization y container, escritos en Swift y de código abierto bajo la licencia Apache 2.0.
El paquete Containerization proporciona una API de bajo nivel para gestionar imágenes de contenedores en formato OCI, cargar contenedores desde repositorios externos, crear un sistema de archivos raíz Ext4, garantizar la conectividad de red, compilar variantes de núcleo de Linux de arranque rápido, crear máquinas virtuales y ejecutar contenedores individuales dentro de ellos. Los contenedores se pueden vincular a direcciones IP individuales. Para organizar el funcionamiento de la pila de red virtual asociada a cada contenedor, se utiliza el framework vmnet.
El lanzamiento de la máquina virtual tarda menos de un segundo, gracias a la aplicación de una configuración del núcleo de Linux optimizada y un entorno de sistema reducido con un proceso init ligero llamado vminitd. La interacción con el proceso de inicialización en una máquina virtual se lleva a cabo a través de la API GRPC sobre vsock. Esta API permite configurar los parámetros del entorno de trabajo y ejecutar sobre la máquina virtual contenedores con el contenido seleccionado por el usuario o con procesos aislados individuales.
El paquete Container es una superestructura sobre la API Containerization que ofrece un conjunto de herramientas de alto nivel al estilo de Docker para crear, cargar, iniciar y detener imágenes de contenedores de Linux en formato OCI. La gestión de servicios al iniciar contenedores se realiza a través del gestor de sistema Launchd.
El conjunto de herramientas puede ser utilizado en macOS 15, pero para un funcionamiento completo y para evitar problemas, se recomienda usar la versión macOS 26 Beta 1. Por ejemplo, en macOS 15 no funciona la interacción de red directa entre contenedores y la vinculación de direcciones IP individuales a los contenedores está restringida. Es posible operar en sistemas ARM de Apple Silicon Mac (M1/M2/M3/M4); no se admiten computadoras con procesadores Intel. Para ejecutar contenedores compilados para la arquitectura x86_64, se utiliza el traductor de instrucciones del procesador Rosetta 2.

Fuente: opennet.ru
