Lanzamiento de MirageOS 4.0, una plataforma para ejecutar aplicaciones sobre un hipervisor

Después de un año y medio de desarrollo, se ha publicado el lanzamiento del proyecto MirageOS 4.0, que permite la creación de sistemas operativos para una aplicación, en los que la aplicación se entrega como un “unikernel” autónomo, capaz de ejecutarse sin el uso de sistemas operativos, un kernel de sistema operativo separado y cualquier capa. El lenguaje OCaml se utiliza para desarrollar aplicaciones. El código del proyecto se distribuye bajo la licencia ISC gratuita.

Toda la funcionalidad de bajo nivel inherente al sistema operativo se implementa en forma de una biblioteca adjunta a la aplicación. La aplicación se puede desarrollar en cualquier sistema operativo, después de lo cual se compila en un kernel especializado (concepto unikernel), que puede ejecutarse directamente sobre los hipervisores Xen, KVM, BHyve y VMM (OpenBSD), sobre plataformas móviles, en el forma de un proceso en un entorno compatible con POSIX o en entornos de nube Amazon Elastic Compute Cloud y Google Compute Engine.

El entorno generado no contiene nada superfluo e interactúa directamente con el hipervisor sin controladores ni capas del sistema, lo que permite una reducción significativa de los costos generales y una mayor seguridad. Trabajar con MirageOS se reduce a tres etapas: preparar la configuración, definir los paquetes OPAM utilizados en el entorno, ensamblar el entorno y ejecutar el entorno. Para garantizar el funcionamiento sobre hipervisores, Runtime se basa en el kernel Solo5.

A pesar de que las aplicaciones y bibliotecas se crean en el lenguaje OCaml de alto nivel, los entornos resultantes demuestran un rendimiento bastante bueno y un tamaño mínimo (por ejemplo, el servidor DNS ocupa sólo 200 KB). También se simplifica el mantenimiento de entornos, ya que si es necesario actualizar el programa o cambiar la configuración, basta con crear y lanzar un nuevo entorno. Se admiten varios cientos de bibliotecas en el lenguaje OCaml para realizar operaciones de red (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, etc.), trabajar con almacenamiento y proporcionar procesamiento de datos paralelo.

Mejoras clave:

  • Se ha modificado el proceso de compilación de proyectos y unikernel. En lugar del sistema de ensamblaje ocamlbuild utilizado anteriormente, se utilizan el kit de herramientas dune y los repositorios locales (monorepo). Para crear dichos repositorios, se ha agregado una nueva utilidad, opam-monorepo, que permite separar la administración de paquetes de la construcción a partir del código fuente. La utilidad opam-monorepo funciona, como crear archivos de bloqueo para dependencias relacionadas con el proyecto, cargar y extraer código de dependencia y configurar el entorno para usar el sistema de compilación dune. El montaje real lo realiza el kit de herramientas de dunas.
  • Se proporciona un proceso de construcción repetible. El uso de archivos de bloqueo proporciona un enlace a las versiones de dependencia y le permite repetir completamente el proceso de compilación con el mismo código en cualquier momento.
  • Se ha implementado un nuevo proceso de compilación cruzada y se proporciona la capacidad de realizar una compilación cruzada para todas las plataformas de destino compatibles desde un entorno de compilación común, que también compila dependencias y bibliotecas que tienen enlaces C, sin la necesidad de agregar estos enlaces a el paquete principal. La compilación cruzada se organiza utilizando espacios de trabajo proporcionados por el sistema de construcción de dunas.
  • Se ha agregado soporte para nuevas plataformas de destino, por ejemplo, se ha proporcionado una capacidad experimental para crear aplicaciones autónomas para ejecutar en placas Raspberry Pi 4.
  • Se ha trabajado para integrar partes de MirageOS en ecosistemas relacionados con el desarrollo en lenguaje OCaml para simplificar el ensamblaje de aplicaciones en forma de unikernel. Muchos paquetes de MirageOS se han portado al sistema de compilación dune. La utilidad opam-monorepo está disponible para su instalación mediante el administrador de paquetes opam y se puede utilizar en proyectos que utilizan el sistema de compilación dune. Para mantener parches que resuelven problemas con la creación de dependencias en dune, se han creado dos repositorios: dune-universe/opam-overlays y dune-universe/mirage-opam-overlays, que están habilitados de forma predeterminada cuando se usa la utilidad CLI de mirage.
  • Se ha simplificado la integración de MirageOS con las bibliotecas C y Rust.
  • Se ha propuesto un nuevo tiempo de ejecución de OCaml que le permite prescindir de libc (libre de libc).
  • Es posible utilizar el servicio Merlin para la integración con entornos de desarrollo integrados estándar.

Fuente: opennet.ru

Añadir un comentario