virtualización a nivel de SO (contenedores) para OS X

19

Me pregunto por qué, aparte de los buenos chroot, no hay implementación de virtualización a nivel de sistema operativo (o contenedores si lo prefiere) existe para Mac OS X.

¿Podría deberse a limitaciones del kernel o restricciones de licencia? ¿O simplemente nadie ha lanzado un proyecto similar?

    
pregunta Emyl 27.06.2014 - 17:46

5 respuestas

7

Un elemento clave requerido para la contenedorización es el aislamiento de la red y otros servicios, pero no solo de aislamiento sino también de virtualización . FreeBSD Jails, los "contenedores" de Linux (o, más correctamente, los "espacios de nombres") y las zonas Solaris / illumos ofrecen cierto grado de "virtualización" de estos servicios del sistema operativo.

Por virtualización, esto significa que estos servidores están disponibles (o potencialmente disponibles ) para cosas dentro del "contenedor", pero de una manera que protege las otras cosas en El mismo host fuera del contenedor. (Por ejemplo, un contenedor puede tener su propia pila TCP / IP, con su propia dirección IP, caché ARP, etc.)

La virtualización del sistema operativo (sistema operativo) es la forma en que generalmente nos referimos a este tipo de virtualización "liviana", donde los procesos creen que ven un kernel virtual, pero todos comparten el mismo kernel real bajo el capó; ese kernel actúa como una especie de hipervisor para garantizar que los límites de contenedor / virtualización no se crucen. (Dicho de otra manera, los servicios del sistema operativo están virtualizados). Compara esto con la virtualización de hardware, donde lo que se virtualiza es el hardware, por ejemplo. los dispositivos se emulan en el software y se presentan a un sistema operativo que se ejecuta en el contenedor. Esto es muy poderoso, pero requiere muchos recursos: cada máquina virtual debe tener su propia copia del sistema operativo.

MacOS reciente tiene soporte de hipervisor nativo a través de Hypervisor.framework que permite software como "XHyve" [Un puerto de BHyve de FreeBSD] (el docker en macOS usa esto), pero carece de los servicios necesarios para virtualizar completamente los servicios del sistema operativo.

En realidad, es probable que gran parte de lo que se necesita ya esté presente, ya que el trabajo para proporcionar espacios aislados significa que ya hay puntos lógicos en los que las llamadas al sistema se interceptan y se manejan de manera diferente para diferentes aplicaciones. Sin embargo, eso está lejos de la historia completa: implementar una verdadera red separada, IPC y otros espacios de nombres es bastante trabajo.

La mejor razón por la que Apple no lo ha hecho es probablemente la misma razón por la que Apple no ha lanzado una plataforma adecuada para ejecutar macOS en el centro de datos durante muchos años: falta de demanda del mercado o falta de demanda del mercado. Liderazgo de Apple. Los equipos de escritorio y dispositivos móviles en los que han centrado su atención simplemente no necesitan mucho las instancias de macOS virtuales. (Esto es triste, porque me encantaría tener soporte virtual de macOS, por ejemplo, ejecutar macOS en máquinas virtuales en Travis CI requiere mucho tiempo en comparación con los contenedores de Linux).

    
respondido por el Garrett D'Amore 09.08.2017 - 05:01
4

Le sorprendería. Los contenedores en realidad son compatibles - el Sandbox OS X (y iOS) ha evolucionado para usarlos. Se introdujeron en 10.7, y ahora son estándar de facto en 10.10 y iOS 8. En este último se aplican de forma más estricta (principalmente por razones de seguridad de la aplicación), hasta el punto en que una aplicación solo puede verse a sí misma, y los métodos para enumerar procesos o recursos ahora devuelven resultados basados en contenedores, similares a los espacios de nombres de Linux ipc, pero más potentes.

    
respondido por el Technologeeks 06.11.2014 - 15:13
3

Me imagino que la respuesta es que nadie realmente lo quiere. Parece que es factible. Estas cosas se realizan principalmente con un propósito, conservando el rendimiento para los proveedores de VPS. Y realmente nadie quiere que una instancia de VPS esté basada en OS X.

    
respondido por el Shane Hsu 29.06.2014 - 16:06
2

Mientras usa "chroot antiguo (8)", comencé un proyecto que tiende a imitar el comportamiento del docker en OS X y NetBSD. Es Free-as-in-speech y está disponible en GitHub . Como dice el README, este proyecto no es ni de seguridad ni de producción, sino que ayudará a probar pilas completas de forma nativa en su estación de trabajo.

    
respondido por el iMil 17.01.2016 - 15:42
0

la ventana acoplable (como lo entiendo) solo está "virtualizando" (agrupando) el sistema de archivos y la red (cpu / mem solo están limitados), por lo que todas las mismas características deberían estar allí, pero simplemente no comercializarse de la misma manera. p>     

respondido por el moe 06.09.2015 - 21:43

Lea otras preguntas en las etiquetas