ОС Neptune: настройка микроядра seL4 под WinNT

Публикация первой экспериментальной версии проекта ОС Нептун, которая отличается от проекта дистрибутив Linux на основе Debian с таким же названием.

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

Об ОС Neptune

проект яреализует "NT Executive", один из уровней ядра Windows NT (NTOSKRNL.EXE), отвечающий за предоставление собственного API-интерфейса системных вызовов NT и интерфейса для работы драйверов.

В ОС Neptune компонент NT Executive и все драйверы не работают на уровне ядра, Китайско как пользовательские процессы в среде на основе микроядра seL4. Взаимодействие компонента NT Executive с драйверами осуществляется через стандарт seL4 IPC. Предоставленные системные вызовы позволяют библиотеке NTDLL.DLL работать с реализацией Win32 API, используемой в приложениях.

 NT Executive также отвечает за интерфейс драйвера ядра Windows (известный как модель драйвера Windows), который включает в себя такие функции, как IoConnectInterruptIoCallDriver

В Windows они загружаются в режиме ядра и связываются сNTOSKRNL.EXEизображение. В ОС Neptune мы запускаем все драйверы ядра Windows в пользовательском режиме, и они взаимодействуют с исполнительным процессом NT через стандартные IPC-примитивы seL4.

Конечная цель из проекта Neptune OS заключается в реализации достаточной семантики NT так что пользовательскую среду ReactOS можно портировать под ОС Neptune, а также большинство драйверов ядра ReactOS.

Теоретически разработчики упоминает, что они должны быть в состоянии достичь двоичной совместимости с собственными исполняемыми файлами Windows, если предлагаемая реализация собственного NT API достаточно точна.

Мы также должны быть в состоянии достичь высокой степени совместимости исходного кода с драйверами ядра Windows. Основным препятствием для достижения бинарной совместимости драйверов ядра является то, что многие драйверы ядра Windows не следуют стандартному протоколу связи драйверов Windows (т. е. они передают IRP, когда им нужно вызвать другой драйвер), а вместо этого они просто передают указатели и напрямую вызывают другие контроллеры. . В ОС Neptune, если это не пара драйвер-минидрайвер, мы всегда запускаем «ядро».

Об ОС Нептун 0.1.0001

В настоящее время проект находится в предварительной версии, так как нам удалось реализовать достаточное количество примитивов NT для загрузки базового стека драйверов клавиатуры, который включает в себя драйвер класса клавиатуры kbdclass.sys и драйвер порта. 2 i8042prt.sys, а также базовую командную строку ntcmd.exe, взятую из проекта ReactOS.

Практически ни одна из команд оболочки не работает, но стек клавиатуры стабилен. Сборки отладки могут быть немного медленными, так как создается слишком много журналов отладки.

Но упоминается, что их можно отключить в коде (вы должны указать на private/ntos/inc). Также упоминается, что был включен драйвер «beep.sys» (что не имеет смысла, но только разработчик будет знать почему), который издает раздражающий звук в динамике ПК, и что для того, чтобы его услышать, вы должны включить звук. (особенно если вы используете pulseaudio).

Все контроллеры работают в пользовательском пространстве! Вся система умещается на одной дискете и может быть загружена с версии v0.1.0001. Вы также можете построить его самостоятельно, процедура для чего описана в следующем разделе.

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

Размер загрузочного образа составляет 1,4 МБ, а код выпущен под лицензией GPLv3.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.