O protótipo do sistema operacional doméstico Phantom baseado no Genode estará pronto antes do final do ano

Dmitry Zavalishin falou sobre o projeto de portar a máquina virtual do sistema operacional Phantom para funcionar no ambiente do SO microkernel Genode. A entrevista observa que a versão principal do Phantom já está pronta para projetos-piloto, e a versão baseada no Genode estará pronta para uso no final do ano. Ao mesmo tempo, apenas um protótipo conceitual viável foi anunciado no site do projeto até agora, cuja estabilidade e funcionalidade não foram trazidas a um nível adequado para uso industrial, e entre os planos mais próximos está a formação de uma versão alfa adequado para experimentos de desenvolvedores terceirizados.

O código do projeto é distribuído sob a licença LGPL, mas a última alteração no repositório principal é de novembro de 2019. A atividade pública relacionada ao projeto está concentrada no repositório com uma bifurcação para o Genode, que desde dezembro de 2020 é mantido por Anton Antonov, aluno da Universidade de Innopolis.

Desde o início dos anos 2000, o sistema operacional Phantom foi desenvolvido como um projeto pessoal de Dmitry Zavalishin e, desde 2010, foi transferido para a proteção da empresa Digital Zone criada por Dmitry. O sistema se destaca pelo foco em alta confiabilidade e pela utilização do conceito de "tudo é um objeto" ao invés de "tudo é um arquivo", o que dispensa o uso de arquivos devido à preservação do estado da memória e um ciclo contínuo de trabalhar. Os aplicativos no Phantom não são encerrados, mas apenas pausados ​​e retomados de onde pararam. Todas as variáveis ​​e estruturas de dados podem ser armazenadas pelo tempo que a aplicação precisar, e o programador não precisa ter nenhum cuidado especial para salvar os dados.

Os aplicativos no Phantom são compilados em bytecode, que é executado em uma máquina virtual baseada em pilha, semelhante à máquina virtual Java. A máquina virtual fornece persistência de memória do aplicativo - o sistema libera periodicamente instantâneos do estado da máquina virtual para a mídia persistente. Após o desligamento ou falha, o trabalho pode continuar a partir do último instantâneo de memória salvo. Os instantâneos são criados de forma assíncrona e sem suspender a máquina virtual, mas um instantâneo captura uma fatia única, como se a máquina virtual fosse interrompida, salva no disco e iniciada novamente.

Todos os aplicativos são executados em um espaço de endereço global comum, o que elimina a necessidade de trocas de contexto entre o kernel e os aplicativos, além de simplificar e acelerar muito a comunicação entre os aplicativos executados em uma máquina virtual que pode trocar objetos por meio da passagem de referência. A separação de acesso é realizada no nível dos objetos, cujas referências só podem ser obtidas chamando os métodos correspondentes (não há aritmética de ponteiro). Quaisquer dados, incluindo valores numéricos, são tratados como objetos separados.

Para o aplicativo, o trabalho parece contínuo e não depende de reinicializações do sistema operacional, travamentos e desligamentos do computador. O modelo de programação do Phantom é comparado à execução de um servidor de aplicativos ininterrupto para uma linguagem de programação de objetos. A portabilidade de programas Java para Phantom é considerada uma das principais formas de desenvolver aplicações, o que é facilitado pela similaridade da máquina virtual Phantom com a JVM. Além do compilador de bytecode para a linguagem Java, o projeto prevê a criação de compiladores para Python e C#, bem como a implementação de um tradutor a partir do código intermediário WebAssembly.

Para executar operações que requerem alto desempenho, como processamento de vídeo e áudio, é possível executar objetos binários com código nativo em threads separadas (LLVM é usado para construir objetos binários). Para acessar os serviços do kernel de baixo nível, algumas classes VM (classes “internas”) são implementadas no nível do kernel do sistema operacional. Para executar aplicativos Linux, é fornecida uma camada POSIX que emula as chamadas necessárias para a operação de processos Unix (a persistência para aplicativos na camada POSIX ainda não é fornecida).

O protótipo do sistema operacional doméstico Phantom baseado no Genode estará pronto antes do final do ano

O Phantom OS tradicional, além da máquina virtual, inclui seu próprio kernel com a implementação de threads, um gerenciador de memória, um coletor de lixo, mecanismos de sincronização, um sistema de E / S e drivers para trabalhar com equipamentos, o que complica significativamente trazer o projeto para prontidão para uso generalizado. Separadamente, estão sendo desenvolvidos componentes com uma pilha de rede, um subsistema gráfico e uma interface de usuário. Vale ressaltar que o subsistema gráfico e o gerenciador de janelas funcionam no nível do kernel.

Para melhorar a estabilidade, portabilidade e segurança do projeto, foi feita uma tentativa de transferir a máquina virtual Phantom para funcionar com os componentes do sistema operacional de microkernel aberto Genode, cujo desenvolvimento é supervisionado pela empresa alemã Genode Labs. Para aqueles que desejam experimentar o Phantom baseado no Genode, um ambiente de construção especial baseado no Docker foi preparado.

O uso do Genode tornará possível usar microkernels e drivers já testados, bem como trazer drivers para o espaço do usuário (em sua forma atual, os drivers são escritos em C e executados no nível do kernel Phantom). Em particular, será possível utilizar o microkernel seL4, que passou por verificação matemática de confiabilidade, confirmando que a implementação atende plenamente às especificações especificadas na linguagem formal. Está sendo considerada a possibilidade de preparar uma prova de confiabilidade semelhante para a máquina virtual Phantom, o que permitirá a verificação de todo o ambiente do sistema operacional.

A principal área de aplicação da porta baseada em Genode é o desenvolvimento de aplicativos para vários dispositivos industriais e embarcados. No momento, um conjunto de mudanças para a máquina virtual já foi preparado e as ligações rodando sobre o Genode foram adicionadas para os componentes de persistência do kernel e as principais interfaces de baixo nível. Note-se que a máquina virtual Phantom já pode funcionar em um ambiente Genode de 64 bits, mas a VM ainda não foi implementada no modo de persistência, o subsistema de driver precisa ser reformulado e os componentes com uma pilha de rede e um subsistema gráfico foram para ser adaptado para Genode.

O protótipo do sistema operacional doméstico Phantom baseado no Genode estará pronto antes do final do ano
O protótipo do sistema operacional doméstico Phantom baseado no Genode estará pronto antes do final do ano
O protótipo do sistema operacional doméstico Phantom baseado no Genode estará pronto antes do final do ano


Fonte: opennet.ru

Adicionar um comentário