Neptune OS project develops Windows compatibility layer based on seL4 microkernel

The first experimental release of the Neptune OS project has been published, which develops an add-on for the seL4 microkernel with the implementation of Windows NT kernel components, aimed at providing support for running Windows applications. The code is distributed under the GPLv3 license.

The project implements the "NT Executive", one of the layers of the Windows NT kernel (NTOSKRNL.EXE), responsible for providing the NT Native system call API and the interface for the drivers to work with. In Neptune OS, the NT Executive component and all drivers do not run at the kernel level, but as user processes in an environment based on the seL4 microkernel. The interaction of the NT Executive component with the drivers is carried out through the standard seL4 IPC. The system calls provided make it possible for the NTDLL.DLL library to work with an implementation of the Win32 API used in applications.

The first version of Neptune OS includes a keyboard driver (kbdclass.sys), a PS/2 port driver (i8042prt.sys), a beep driver (beep.sys), and a command line interpreter (ntcmd.exe) ported from ReactOS to allow demonstrate the basic principles of organizing work. The size of the boot image is 1.4 MB.

The ultimate goal is to bring the layer to a state sufficient to port the ReactOS user environment and drivers. Developers are also considering the possibility of achieving binary compatibility with Windows executables and acceptable source-level compatibility with Windows kernel drivers.

The main obstacle to providing support for Windows drivers is the use in most Windows kernel drivers not of the standard communication protocol when accessing other drivers, but of direct transfer of pointers, which cannot be implemented in Neptune OS due to the drivers running in different processes.

Source: opennet.ru

Add a comment