Neptune OS プロジェクトは、seL4 マイクロカーネルに基づいた Windows 互換レイヤーを開発しています

Neptune OS プロジェクトの最初の実験リリースが公開されました。これは、Windows アプリケーションの実行のサポートを提供することを目的として、Windows NT カーネル コンポーネントの実装を備えた seL4 マイクロカーネルへのアドオンを開発しています。 コードは GPLv3 ライセンスに基づいて配布されます。

このプロジェクトは、Windows NT カーネル層 (NTOSKRNL.EXE) の 4 つである「NT Executive」によって実装され、NT ネイティブ システム コール API とドライバ操作用のインターフェイスを提供します。 Neptune OS では、NT Executive コンポーネントとすべてのドライバーはカーネル レベルでは実行されず、seL4 マイクロカーネルに基づく環境内のユーザー プロセスの形式で実行されます。 NT Executive コンポーネントとドライバとの対話は、標準の seL32 IPC を通じて実行されます。 提供されたシステム コールにより、NTDLL.DLL ライブラリがアプリケーションで使用される WinXNUMX プログラミング インターフェイスの実装で動作することを確認できます。

Neptune OS の最初のバージョンには、ReactOS から移植されたキーボード ドライバー (kbdclass.sys)、PS/2 ポート ドライバー (i8042prt.sys)、ビープ ドライバー (beep.sys)、およびコマンド ライン インタープリター (ntcmd.exe) が含まれています。そして、作業組織の基本原則を実証できるようにします。 ブート イメージのサイズは 1.4 MB です。

最終的な目標は、レイヤーをユーザー環境と ReactOS ドライバーを移植するのに十分な状態にすることです。 開発者は、Windows 実行可能ファイルとのバイナリ互換性、および Windows カーネル ドライバとの許容可能なソース レベルの互換性を実現する可能性も検討しています。

Windows ドライバーのサポートを提供する際の主な障害は、ほとんどの Windows カーネル ドライバーで他のドライバーにアクセスするときに標準の通信プロトコルではなく、直接ポインター転送が使用されていることです。ドライバーが異なるプロセスで実行されているため、Neptune OS ではこれを実装できません。

出所: オープンネット.ru

コメントを追加します