Lançamento do MirageOS 4.0, uma plataforma para executar aplicações sobre o hipervisor

Após um ano e meio de desenvolvimento, foi lançado o projeto MirageOS 4.0, que permite a criação de sistemas operacionais de um único aplicativo, onde o aplicativo é fornecido como um "unikernel" autossuficiente, capaz de funcionar sem sistemas operacionais, núcleo separado ou qualquer camada intermediária. Para o desenvolvimento de aplicativos, é utilizado a linguagem OCaml. O código do projeto é distribuído sob a licença ISC.

Toda a funcionalidade de baixo nível típica de um sistema operacional é implementada na forma de uma biblioteca anexada ao aplicativo. O aplicativo pode ser desenvolvido em qualquer sistema operacional, após o que é compilado em um núcleo especializado (a concepção de unikernel), que pode ser executado diretamente sobre hypervisores como Xen, KVM, BHyve e VMM (OpenBSD), sobre plataformas móveis, na forma de um processo em um ambiente compatível com POSIX ou em ambientes de nuvem como Amazon Elastic Compute Cloud e Google Compute Engine.

O ambiente gerado não contém nada desnecessário e interage diretamente com o hypervisor sem drivers ou camadas de sistema, o que permite uma redução significativa de overhead e um aumento na segurança. O trabalho com MirageOS é dividido em três fases: preparação da configuração definindo os pacotes OPAM utilizados no ambiente, construção do ambiente e execução do ambiente. O runtime para garantir a operação sobre hypervisores é construído sobre o núcleo Solo5.

Embora os aplicativos e bibliotecas sejam formados em uma linguagem de alto nível como OCaml, os ambientes finais apresentam um desempenho bastante satisfatório e um tamanho mínimo (por exemplo, um servidor DNS ocupa apenas 200 KB). A manutenção dos ambientes também é simplificada, pois, em caso de necessidade de atualização do programa ou mudança de configuração, é suficiente criar e executar um novo ambiente. Suporta várias centenas de bibliotecas em OCaml para operações de rede (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, etc.), trabalho com repositórios e garantindo o processamento paralelo de dados.

Principais melhorias:

  • O processo de compilação de projetos e unikernel foi modificado. Em vez do sistema de construção ocamlbuild anteriormente utilizado, agora é usado o conjunto de ferramentas dune e repositórios locais (monorepo). Para a formação de tais repositórios, foi adicionada uma nova ferramenta opam-monorepo, que permite separar a gestão de pacotes da compilação a partir do código fonte. A ferramenta opam-monorepo realiza tarefas como a criação de arquivos lock para dependências relacionadas ao projeto, download e extração de código de dependências e configuração do ambiente para aplicar o sistema de construção dune. A compilação é diretamente realizada com o conjunto de ferramentas dune.
  • Um processo de construção reprodutível foi disponibilizado. O uso de arquivos lock assegura a vinculação às versões das dependências e permite replicar completamente o processo de construção a qualquer momento com o mesmo código.
  • Foi implementado um novo processo de cross-compilation e garantida a possibilidade de cross-compilation para todas as plataformas alvo suportadas a partir de um único ambiente de construção geral, no qual também é realizada a cross-compilation de dependências e bibliotecas que possuem ligações em C, sem necessidade de adicionar essas ligações ao pacote principal. A cross-compilation é organizada com o uso de workspaces fornecidos pelo sistema de construção dune.
  • Adicionado suporte a novas plataformas alvo, por exemplo, foi fornecida uma opção experimental para construir aplicativos autossuficientes que funcionem em placas Raspberry Pi 4.
  • Trabalhou-se na integração de partes do MirageOS em ecossistemas relacionados ao desenvolvimento em OCaml, para simplificar a construção de aplicativos na forma de unikernel. Muitos pacotes do MirageOS foram portados para o sistema de construção dune. A ferramenta opam-monorepo está disponível para instalação através do gerenciador de pacotes opam e pode ser utilizada em projetos que usam o sistema de construção dune. Para oferecer suporte a patches que resolvem problemas de construção de dependências no dune, foram criados dois repositórios dune-universe/opam-overlays e dune-universe/mirage-opam-overlays, que estão incluídos por padrão ao usar a ferramenta CLI mirage.
  • A integração do MirageOS com bibliotecas em C e Rust foi simplificada.
  • Um novo runtime OCaml foi proposto, permitindo operar sem libc (libc-free).
  • Foi disponibilizada a possibilidade de usar o serviço Merlin para integração com ambientes de desenvolvimento integrados baseados em tipos.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster