«Solo instala Linux»: Apple escucha y ahora ofrece Linux directamente en tu Mac

«Solo instala Linux»: Apple escucha y ahora ofrece Linux directamente en tu Mac
image

Apple decidió facilitar la vida a los desarrolladores que escriben código en Mac pero ejecutan las aplicaciones ya terminadas en Linux. En la conferencia WWDC la compañía presentó container machines – máquinas virtuales persistentes con Linux, que recuerdan al Subsistema de Windows para Linux, pero hechas para macOS.

El problema es familiar para muchos desarrolladores. El equipo de trabajo puede estar en macOS, mientras que el entorno de servidor al que luego se desplaza la aplicación casi siempre funciona en Linux. Debido a la diferencia entre el entorno de desarrollo y el entorno donde se ejecuta la aplicación surgen ajustes adicionales, incompatibilidades y sorpresas desagradables. macOS y Linux son similares como sistemas tipo Unix, pero no coinciden por completo.

La nueva función se integró en el proyecto Container, que Apple mostró por primera vez en la WWDC del año anterior. En la conferencia actual salió la versión 1.0, y junto con ella aparecieron las container machines. El proyecto usa contenedores estándar de Open Container Initiative, pero ejecuta tanto contenedores convencionales como las nuevas "container machines" dentro de máquinas virtuales ligeras. Ese enfoque ofrece un aislamiento más estricto entre el entorno Linux y el sistema principal macOS.

El código del proyecto está escrito en Swift y es abierto en GitHub bajo la licencia Apache 2.0. En su base hay otro paquete abierto de Apple llamado containerization. Por ahora la herramienta parece más un proyecto para desarrolladores que una parte integrada de macOS: está alojada en GitHub, no integrada directamente en el sistema. Solo es compatible con macOS 26.

Tras instalar la herramienta, se puede ejecutar el comando container machine run: abre un terminal dentro de una máquina Linux estándar. También se puede lanzar un comando aislado, por ejemplo container machine run uname -a. En ese caso el comando se ejecutará dentro del entorno Linux, pero el usuario permanecerá en la shell de macOS.

Hay limitaciones. El comando container machine create funciona solo con imágenes que contienen el programa de inicialización del sistema /sbin/init. Muchas imágenes de contenedores se crean para una sola aplicación, por lo que ese componente no está presente. En ese caso el desarrollador tendrá que crear su propia imagen mediante un Dockerfile. En la documentación de Apple ya hay ejemplos de ese tipo.

El autor del material original probó la herramienta en la práctica. Logró crear una máquina contenedor basada en Ubuntu 24.04 con el paquete de Swift, conectarse a ella desde Visual Studio Code en macOS, compilar el proyecto en Linux y ejecutar el resultado en el Mac. Pero no fue posible depurar completamente el código con Swift: los puntos de interrupción no funcionaron. En el proyecto en .NET el código se pudo depurar correctamente.

Por defecto container machine monta la carpeta de inicio del usuario de macOS con permisos de lectura y escritura. Esto es cómodo para los desarrolladores: el código y los archivos están disponibles en ambos lados. Desde el punto de vista de seguridad esta opción es discutible. Un paquete malicioso instalado dentro del entorno Linux podría, en teoría, acceder a claves y configuraciones en la carpeta .ssh. El comportamiento se puede cambiar mediante el parámetro --home-mount, y la opción más segura es desactivar totalmente el acceso a la carpeta de inicio.

Con la memoria también hay un matiz. Por defecto la máquina contenedor recibe la mitad de toda la memoria del equipo, pero la usa según necesidad. En la prueba el sistema asignó 32 GB, y después de iniciar la máquina virtual y PostgreSQL usó en realidad alrededor de 1 GB. El problema es otro: la memoria ocupada no vuelve a macOS mientras la máquina está en funcionamiento. Liberarla solo es posible reiniciando la máquina virtual.

Por ahora no planean ejecutar aplicaciones gráficas de Linux dentro del proyecto. En Windows el subsistema WSL puede ejecutar esas aplicaciones a través de X11 o Wayland. En el caso de Apple se sugiere a los usuarios instalar XQuartz y conectarse a él por la red entre el contenedor y el sistema principal, pero aún no hay soporte integrado completo.

Los desarrolladores para Mac ya cuentan con varias formas de ejecutar contenedores Linux y máquinas virtuales: Docker, Podman, Colima, UTM, VirtualBox, OrbStack y servidores Linux remotos por SSH. Por tanto, Apple tendrá que demostrar que sus propias herramientas de contenedor pueden convertirse en una alternativa seria. Las primeras impresiones son buenas: el sistema funciona rápido y se ve ligero, aunque todavía hay que mejorar la documentación, las funciones y el manejo de la memoria.

Онлайн
17
ИЮНЯ
16:20
Product Backstage*: безопасная разработка и защита контейнеров
17 июня обсудим обновления PT Application Inspector, PT BlackBox и безопасность контейнеров.
Зарегистрироваться
Реклама. 18+. АО «Позитив Текнолоджиз», ИНН 7718668887  ·  *Продуктовое закулисье