Uma recente entrevista do projeto revelou que o Phantom OS terá uma versão baseada em Genode até o final de 2022. Confira os detalhes.
Informações sobre o projeto de portar a máquina virtual Phantom OS para trabalhar no ambiente Genode microkernel OS foram divulgadas recentemente.
Phantom OS, terá uma versão baseada em Genode até o final de 2022
A informação foi revelada numa entrevista em que se nota que a versão principal do Phantom OS já está pronta para projetos piloto, e a versão baseada em Genode estará pronta para uso até o final do ano.
Ao mesmo tempo, até agora, apenas um protótipo conceitual viável foi anunciado no site do projeto, 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 .
Desde o início dos anos 2000, o Phantom OS foi desenvolvido como um projeto pessoal de Dmitry Zavalishin e desde 2010 foi transferido para a empresa Digital Zone criada por Dmitry.
O sistema se destaca pelo foco na alta confiabilidade e uso do conceito “tudo é um objeto” em vez de “tudo é um arquivo”, o que elimina o uso de arquivos devido à preservação do estado da memória e um ciclo contínuo de trabalho.
Os aplicativos no Phantom não são encerrados, 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 tomar 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 baixa periodicamente instantâneos do estado da máquina virtual para a mídia persistente.
Após um 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 um único segmento, como se a máquina virtual fosse interrompida, salva em 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 alternâncias de contexto entre o kernel e os aplicativos e simplifica e acelera bastante a comunicação entre os aplicativos executados em uma máquina virtual que pode trocar objetos por meio da etapa de referência.
A portabilidade de programas Java para o Phantom é considerada uma das principais formas de desenvolvimento de aplicativos, o que é facilitado pela semelhança 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 do WebAssembly.
O Phantom OS tradicional, além da máquina virtual, inclui seu próprio kernel com 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 equipes, o que dificulta significativamente a colocação do projeto em prontidão para uso generalizado.
Separadamente, componentes com uma pilha de rede, um subsistema gráfico e uma interface de usuário estão sendo desenvolvidos. Vale a pena notar 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 portar a máquina virtual Phantom para funcionar usando os componentes do sistema operacional de microkernel aberto Genode, cujo desenvolvimento é supervisionado pela empresa alemã Genode Labs. que desejam experimentar o Phantom baseado no Genode, um ambiente de compilação especial baseado no Docker foi preparado.
O uso do Genode possibilitará o uso de drivers e microkernels comprovados, além de trazer os 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 usar o microkernel seL4, que passou na verificação de confiabilidade matemática, confirmando que a implementação atende totalmente às especificações especificadas na linguagem formal.
Está sendo considerada a preparação de um teste de confiabilidade semelhante para a máquina virtual Phantom, 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 aplicações para diversos dispositivos industriais e embarcados.
Atualmente, um changeset para a máquina virtual já foi preparado e foram adicionadas ligações que rodam em cima do Genode para os componentes de persistência do kernel e as principais interfaces de baixo nível.
Nota-se que a VM Phantom já pode funcionar em um ambiente Genode de 64 bits, mas a VM ainda não foi implantada em modo de persistência, o subsistema de driver precisa ser retrabalhado e componentes com pilha de rede e subsistema gráfico precisam ser adaptado para Genode.
Se você quiser saber mais sobre o funcionamento do sistema, você pode consultar os detalhes no seguinte endereço.