Llega la nueva versión de MirageOS 3.5, una biblioteca para crear Unikernels

MirageOS es una biblioteca de sistema operativo que permite formar los sistemas operativos de una sola aplicación en la que la aplicación se entrega como un “unikernel” el cual es autónomo, capaz de ejecutarse sin el uso de sistemas operativos, un núcleo de sistema operativo independiente y además.

Para el lenguaje de desarrollo de aplicaciones se utiliza OCaml un lenguaje con bibliotecas para proveer funcionalidades de redes, almacenamiento, y las características soportadas por un sistema. El código del proyecto se distribuye bajo la licencia libre de ISC.

MirageOS admite varias docenas de bibliotecas en el lenguaje OCaml para realizar operaciones de red (DNS, SSH, OpenFlow, HTTP, XMPP, etc.), trabajar con repositorios y proporcionar procesamiento de datos en paralelo.

Sobre MirageOS

Para los que no sepan qué son los unikernels, se trata de unas estructuras especialmente diseñadas para usar bibliotecas de sistemas operativos, las mínimas necesarias para hacer correr una determinada aplicación. Así se ahorra virtualizar todo el SO completo y se mejora el rendimiento del conjunto.

Toda la funcionalidad de bajo nivel inherente en el sistema operativo se implementa en forma de una biblioteca adjunta a la aplicación.

La aplicación puede desarrollarse en cualquier sistema operativo y luego compilarse en un Kernel especializado (de ahí el concepto Unikernel).

Que puede ejecutarse directamente sobre los hipervisores Xen, KVM, BHyve y VMM, en la forma de un proceso en un entorno compatible con POSIX o en Amazon Elastic Compute Cloud y Google Compute Engine.

El entorno generado interactúa directamente con el hipervisor sin controladores ni capas de sistema, lo que permite lograr una reducción significativa en los costos generales y aumentar la seguridad al reducir la cantidad de código desplegado para correr la aplicación.

Trabajar con MirageOS se reduce a tres etapas:

  • Preparación de la configuración con la definición de paquetes OPAM utilizados en el entorno
  • Creación del entorno
  • Inicio del entorno.

A pesar del hecho de que las aplicaciones y las bibliotecas se forman en el lenguaje de alto nivel OCaml, los entornos finales muestran un rendimiento bastante bueno y un tamaño mínimo (por ejemplo, un servidor DNS ocupa solo 200 KB).

El mantenimiento de los entornos también se simplifica, ya que, si un programa necesita actualizarse o se cambia una configuración, es suficiente crear y lanzar un nuevo entorno.

Principales novedades de MirageOS 3.5

Recientemente fue liberada una nueva versión de esta biblioteca, la cual llega a su versión MirageOS 3.5 con nuevas mejoras.

En MirageOS 3.5 se añade la especificación de interfaces para trabajar con la base de datos en el formato (mirage-kv), así como un nuevo almacenamiento con soporte para operaciones de lectura y escritura y la opción de almacenamiento para el “almacenamiento no permanente de datos en la RAM”.

El objetivo de este trabajo es reemplazar la interfaz mirage-fs con el almacenamiento. Además, se está desarrollando el almacenamiento distribuido de irmin, que brinda la capacidad de crear bases de datos y acceder mediante el protocolo Git, así como el sistema de archivos wodan, que se puede usar en unidades flash.

Las bibliotecas de API en esta nueva versión han sido expandidas a mirage-clock (reloj del sistema), mirage-protocol (protocolos de red) y mirage-net (dispositivos de red).

Por otro lado, se ha agregado soporte para volver a ensamblar fragmentos de paquetes IPv4 (reensamblado de fragmentos) a la implementación de la pila TCP / IP.  Para TCP, se ha agregado soporte keepalive.

El paquete mirage-net, que proporciona herramientas para la interacción de bajo nivel con dispositivos de red, implementa versiones posteriores de xen, solo5, unix, macos y vnetif.

El runtime basado en Solo5 recibió soporte para ejecutarse en los hipervisores FreeBSD bhyve y OpenBSD VMM, soportando ARM64 y KVM, agregando la capacidad de trabajar con el microkernel GenodeOS.

Finalmente, otro punto clave es que se agregó la capacidad de adjuntar dependencias de paquetes a unikernel, que requieren el administrador de paquetes opam 2.0.2.

Y el soporte para el lenguaje OCaml 4.06.0 en el modo seguro para trabajar con cadenas.

Si quieres conocer más al respecto puedes consultar el siguiente enlace.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.