Neptune OS: WinNT персонализиране на микроядрото seL4

Публикуването на първата експериментална версия на проекта Neptune OS, която се различава от проекта на базираната на Debian Linux дистрибуция със същото име.

Тази система, за която ще говорим днес се характеризира с разработване на плъгин за микроядрото seL4 с внедряването на компоненти на ядрото на Windows NT, с цел предоставяне поддръжка за стартиране на Windows приложения. 

Относно Neptune OS

проектът иприлага "NT Executive", един от слоевете на ядрото на Windows NT (NTOSKRNL.EXE), отговорен за предоставянето на API за системно извикване на NT Native и интерфейс за работа на драйверите.

На Neptune OS компонентът NT Executive и всички драйвери не работят на ниво ядро, сино като потребителски процеси в среда, базирана на микроядрото seL4. Взаимодействието на компонента NT Executive с драйверите се осъществява чрез IPC стандарта seL4. Предоставените системни извиквания правят възможно библиотеката NTDLL.DLL да работи с реализация на Win32 API, използван в приложенията.

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

В Windows те се зареждат в режим на ядрото и се свързват сNTOSKRNL.EXEобраз. В Neptune OS стартираме всички драйвери на ядрото на Windows в потребителски режим и те комуникират с NT Executive процеса чрез стандартните seL4 IPC примитиви.

Крайната цел от проекта Neptune OS е да се внедри достатъчно NT семантика така че потребителската среда на ReactOS може да бъде пренесена под Neptune OS, както и повечето драйвери на ядрото на ReactOS.

На теория разработчиците споменава, че те трябва да могат да постигнат двоична съвместимост с родни изпълними файлове на Windows, стига предлаганата реализация на родния NT API да е достатъчно вярна.

Също така трябва да можем да постигнем висока степен на съвместимост на изходния код с драйверите на ядрото на Windows. Основната пречка за постигане на двоична съвместимост на драйверите на ядрото е, че много драйвери на ядрото на Windows не следват стандартния протокол за комуникация на драйвера на Windows (т.е. предават IRP, когато трябва да извикат друг драйвер) и вместо това те просто предават указатели и директно извикват други контролери . В Neptune OS, освен ако не е двойка драйвер-минидрайвър, винаги изпълняваме "kernel".

Относно Neptune OS 0.1.0001

Състоянието на проекта в този момент е предварителна версия, тъй като досега успяхме да внедрим достатъчно NT примитиви, за да заредим основен стек от драйвери на клавиатурата, който включва драйвера за клас клавиатура kbdclass.sys и драйвера за порт. PS/ 2 i8042prt.sys, както и основен команден ред ntcmd.exe, взет от проекта ReactOS.

Едва ли някоя от командите на shell наистина работи, но стекът на клавиатурата е стабилен. Компилациите за отстраняване на грешки могат да бъдат малко бавни, тъй като се генерират твърде много регистрационни файлове за отстраняване на грешки.

Но се споменава, че те могат да бъдат деактивирани в кода (трябва да посочите private/ntos/inc). Споменава се също, че е включен драйвер "beep.sys" (което няма смисъл, но само разработчикът ще знае защо), който издава досаден звук в високоговорителя на компютъра и че за да го чуете, трябва да включите звука (особено ако използвате pulseaudio).

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

И накрая, за тези, които се интересуват да научат малко повече за проекта, можете да се консултирате с подробностите В следващия линк.

Размерът на изображението за зареждане е 1,4 MB и кодът е пуснат под лиценз GPLv3.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

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