Pregunta bastante sencilla. Estoy trabajando en un proyecto para tener múltiples sistemas operativos (todos Linux) en la misma máquina usando subvolúmenes btrfs para que el usuario pueda iniciar en el entorno con el que se sienta cómodo. Dado que todos utilizan el kernel de Linux, ¿se puede compilar y utilizar un único kernel para todos los sistemas operativos de la máquina? ¿Hay algo específico del sistema operativo y, de ser así, son solo los módulos del kernel que requiere el sistema operativo o es más profundo que eso?
Mi suposición actual es que el kernel es bastante independiente del sistema operativo y que mientras todos los módulos se incluyan para ambos sistemas operativos en un kernel compartido, ambos podrían compartir el kernel y, por lo tanto, compartir actualizaciones y cambios realizados en el kernel.
Respuesta1
AbiertoVZhace exactamente lo que pides.
Crea contenedores que son 100% independientes entre sí pero comparten el mismo núcleo modificado.
El único inconveniente frente a la virtualización completa es que no se puede instalar nada más que Linux cuando se utilizan contenedores.
Respuesta2
OpenVZ es excelente y proporciona una solución segura, estable y fácil de usar para contenedores. Sin embargo, también existen contenedores de Linux que están integrados en Linux y se han logrado muchos avances en las últimas versiones del kernel.
Los contenedores de Linux tienen muchas utilidades de espacio de usuario que puede utilizar, incluidas lxc, vzctl (de OpenVZ), libvirt y docker.
Los contenedores de Linux le permiten ejecutar procesos (y usuarios si usa espacios de nombres de usuario) en espacios de nombres separados. Esto da la sensación de un sistema separado ejecutándose en el mismo kernel y le permite agregar restricciones a los recursos usando cgroups. Los contenedores de Linux son extremadamente livianos en comparación con las máquinas virtuales de hardware como Xen, Qemu/KVM o VMWare.