30.06.2022

Проект Neptune OS развивает слой совместимости с Windows на базе микроядра seL4

Опубликован первый экспериментальный выпуск проекта Neptune OS, развивающего надстройку над микроядром seL4 с реализацией компонентов ядра Windows NT, нацеленную на предоставление поддержки выполнения Windows-приложений. Код распространяется под лицензией GPLv3.

Проект реализует «NT Executive», один из уровней ядра Windows NT (NTOSKRNL.EXE), отвечающий за предоставление API системных вызовов NT Native и интерфейс для работы драйверов. В Neptune OS компонент NT Executive и все драйверы выполняются не на уровне ядра, а в форме пользовательских процессов в окружении на базе микроядра seL4. Взаимодействие компонента NT Executive с драйверами осуществляется через штатный seL4 IPC. Предоставляемые системные вызовы дают возможность обеспечить работу библиотеки NTDLL.DLL с реализацией программного интерфейса Win32, используемого в приложениях.

Первая версия Neptune OS включает в себя драйвер клавиатуры (kbdclass.sys), драйвер порта PS/2 (i8042prt.sys), драйвер подачи звукового сигнала (beep.sys) и интерпретатор командной строки (ntcmd.exe), перенесённые из ReactOS и позволяющие продемонстрировать основные принципы организации работы. Размер загрузочного образа 1.4 МБ.

Конечной целью является доведение прослойки до состояния, достаточного для портирования пользовательского окружения и драйверов ReactOS. Разработчиками также рассматривается возможность достижения бинарной совместимости с исполняемыми файлами Windows и приемлемой совместимости на уровне исходных текстов с драйверами ядра Windows.

В качестве основного препятствия на пути к обеспечению поддержки драйверов Windows называется использование в большинстве драйверов ядра Windows не стандартного коммуникационного протокола при обращении к другим драйверам, а прямой передачи указателей, что не может быть реализовано в Neptune OS из-за запуска драйверов в разных процессах.

Источник.