¿Cómo proporciona portabilidad un microkernel?

No soy un experto en microkernel ni un experto en portabilidad, pero escribí una respuesta de Quora sobre la relación / diferencias entre portabilidad e interoperabilidad.

Un microkernel es una capa de software entre el hardware de la CPU y las funciones del sistema operativo (SO) de nivel superior (y las aplicaciones del usuario si el SO permite que las aplicaciones accedan directamente a los servicios del microkernel). Al proporcionar una capa de aislamiento entre el hardware del procesador y el sistema operativo y las aplicaciones, el sistema operativo y las aplicaciones generalmente se pueden portar a una arquitectura de procesador diferente cambiando solo el microkernel y no el sistema operativo o las aplicaciones. Esto depende, por supuesto, de cuán diferente es la arquitectura de CPU nueva / diferente, y el microkernel puede agregar algunos ciclos de CPU adicionales en comparación con un sistema operativo que se ejecuta directamente en la CPU sin la intervención de la capa de microkernel. Tenga en cuenta que la reducción de la cantidad total de código que debe cambiarse cuando se transfiere a un procesador diferente también tiene un gran impacto en el tiempo / esfuerzo de prueba.

Las máquinas virtuales y la “contenedorización” son técnicas alternativas para lograr objetivos de portabilidad similares, pero se centran en mantener constante la interfaz entre las aplicaciones y el sistema operativo (o lo que parece un sistema operativo para las aplicaciones) en las plataformas de hardware en lugar de centrarse en facilitar la portabilidad del Sistema operativo en diferentes plataformas de hardware a través de la capa de microkernel.