O projeto Neptune OS está desenvolvendo uma camada de compatibilidade do Windows baseada no microkernel seL4

Foi publicada a primeira versão experimental do projeto Neptune OS, desenvolvendo um add-on para o microkernel seL4 com a implementação de componentes do kernel do Windows NT, visando fornecer suporte para execução de aplicativos Windows. O código é distribuído sob a licença GPLv3.

O projeto é implementado pelo "NT Executive", uma das camadas do kernel do Windows NT (NTOSKRNL.EXE), responsável por fornecer a API de chamada do sistema NT Native e interface para operação do driver. No Neptune OS, o componente NT Executive e todos os drivers não são executados no nível do kernel, mas na forma de processos de usuário em um ambiente baseado no microkernel seL4. A interação do componente NT Executive com os motoristas é realizada através do padrão seL4 IPC. As chamadas de sistema fornecidas permitem garantir que a biblioteca NTDLL.DLL funcione com a implementação da interface de programação Win32 utilizada nas aplicações.

A primeira versão do Neptune OS inclui um driver de teclado (kbdclass.sys), um driver de porta PS/2 (i8042prt.sys), um driver de bipe (beep.sys) e um interpretador de linha de comando (ntcmd.exe), portado do ReactOS e permitindo demonstrar os princípios básicos da organização do trabalho. O tamanho da imagem de inicialização é 1.4 MB.

O objetivo final é levar a camada a um estado suficiente para portar o ambiente do usuário e os drivers ReactOS. Os desenvolvedores também estão considerando a possibilidade de obter compatibilidade binária com arquivos executáveis ​​do Windows e compatibilidade aceitável em nível de origem com drivers de kernel do Windows.

O principal obstáculo para fornecer suporte para drivers do Windows é o uso na maioria dos drivers do kernel do Windows não de um protocolo de comunicação padrão ao acessar outros drivers, mas de transferência direta de ponteiro, que não pode ser implementada no Neptune OS devido aos drivers rodando em processos diferentes.

Fonte: opennet.ru

Adicionar um comentário