Se ha propuesto una serie de parches para discusión entre los desarrolladores del núcleo de Linux, elaborados por el proyecto Multikernel, que recientemente fue clasificado como software de código abierto y ahora se desarrollará en conjunto con la comunidad. Multikernel permite ejecutar varios núcleos de Linux independientes en una misma computadora física, que tienen acceso directo a los recursos de hardware y pueden utilizarse para iniciar múltiples entornos de sistemas aislados. El proyecto fue creado por la empresa Multikernel Technologies, fundada y dirigida por Cong Wang, quien supervisa la subsistema de control de tráfico (TC, Traffic Control) en el núcleo de Linux.
Para iniciar y gestionar los núcleos se ha propuesto una llamada mejorada a kexec, que a diferencia del kexec clásico no se limita a reemplazar el núcleo en ejecución y permite iniciar instancias adicionales del núcleo que se ejecutan de manera paralela. Para el monitoreo y depuración de las instancias del núcleo que se están ejecutando, se ha implementado la interfaz '/proc/multikernel', y se ha propuesto un marco de comunicación Multikernel IPI para el intercambio de mensajes entre núcleos y la coordinación de su trabajo.

Multikernel se presenta como una nueva arquitectura de aislamiento, ocupando un nicho entre la virtualización mediante hipervisor y el aislamiento de contenedores basado en un núcleo compartido. A diferencia de la virtualización, Multikernel no requiere el uso de un hipervisor, simplifica la creación de entornos para la ejecución aislada de aplicaciones individuales y permite lograr un alto rendimiento sin los costos adicionales de la virtualización. En comparación con los contenedores, Multikernel proporciona un alto nivel de aislamiento y permite utilizar un núcleo separado en cada entorno aislado.

El rendimiento al utilizar Multikernel se evalúa como cercano al rendimiento obtenido en hardware dedicado. Esto se ha logrado al eliminar los gastos generales inherentes a la virtualización, que surgen de los controladores de cambio de control entre máquinas virtuales (VM exit), la traducción de IOMMU y la intervención del hipervisor en la ejecución de operaciones privilegiadas. Se admite la asignación dinámica de recursos a los entornos en ejecución y se garantiza un rendimiento predecible.
La ejecución simultánea de múltiples núcleos se realiza sin virtualización, utilizando un controlador SMP que distribuye los CPU disponibles entre las instancias de núcleos Linux. Cada instancia de núcleo Linux está asignada a uno o varios núcleos de CPU designados para su ejecución, mientras comparte los demás recursos de hardware.
Las principales ventajas de Multikernel:
- Mejor aislamiento frente a fallos en los entornos en ejecución.
- Mayor seguridad gracias a la separación a nivel de núcleo.
- Uso más eficiente de los recursos en comparación con máquinas virtuales tradicionales basadas en hipervisores, tales como KVM y Xen.
- Posibilidad potencial de actualizar el núcleo sin detener la operación utilizando el mecanismo KHO (Kernel Hand Over).
- Soporte para la integración con infraestructuras de nube estándar y la posibilidad de transición transparente desde sistemas tradicionales de virtualización y aislamiento por contenedores.
- Compatibilidad total con aplicaciones existentes y interfaces del sistema Linux. Multikernel solo modifica puntualmente el núcleo, manteniendo la compatibilidad total a nivel de API.
Fuente: opennet.ru
