Neptune OS:seL4 微內核的 WinNT 定制

Neptune OS 項目的第一個實驗版本的發布,該項目不同於 基於 Debian 的 Linux 發行版 同名。

我們今天要講的這個系統 特點是為seL4微內核開發插件 與 Windows NT 內核組件的實現,目標是提供 支持運行 Windows 應用程序。 

關於海王星操作系統

我的項目實施“NT執行”,Windows NT 內核(NTOSKRNL.EXE)的層之一,負責提供NT Native 系統調用API 和接口供驅動程序工作。

在 Neptune OS 上,組件 NT Executive 和所有驅動程序不在內核級別運行,作為基於 seL4 微內核的環境中的用戶進程. NT Executive 組件與驅動程序的交互是通過seL4 IPC 標准進行的。 提供的系統調用使 NTDLL.DLL 庫可以與應用程序中使用的 Win32 API 的實現一起工作。

 NT Executive 還負責 Windows 內核驅動程序接口(稱為 Windows 驅動程序模型),其中包括諸如 IoConnectInterruptIoCallDriver

在 Windows 上,這些以內核模式加載並與NTOSKRNL.EXE圖片。 在 Neptune OS 中,我們在用戶模式下運行所有 Windows 內核驅動程序,它們通過標準 seL4 IPC 原語與 NT 執行進程通信。

最終目標 來自 Neptune OS 項目 就是實現足夠多的NT語義 以便在 Neptune OS 下移植 ReactOS 用戶環境,以及大多數 ReactOS 內核驅動程序。

理論上,開發商 提到他們應該能夠實現二進制兼容性 只要提供的本機 NT API 實現足夠忠實,就可以使用本機 Windows 可執行文件。

我們還應該能夠實現與 Windows 內核驅動程序的源代碼高度兼容。 實現內核驅動程序二進制兼容性的主要障礙是許多 Windows 內核驅動程序不遵循標準的 Windows 驅動程序通信協議(即,它們在需要調用另一個驅動程序時傳遞 IRP),而只是傳遞指針並直接調用其他控制器. 在 Neptune OS 上,除非它是驅動程序-微型驅動程序對,否則我們總是運行“內核”。

關於海王星操作系統 0.1.0001

此時項目的狀態是一個初步版本,因為到目前為止我們已經能夠實現足夠的 NT 原語來加載鍵盤驅動程序的基本堆棧,其中包括 kbdclass.sys 鍵盤類驅動程序和端口驅動程序。PS/ 2 i8042prt.sys,以及一個基本的命令提示符 ntcmd.exe,取自 ReactOS 項目。

幾乎沒有任何 shell 命令真正起作用,但鍵盤堆棧是穩定的。 由於生成的調試日誌過多,調試構建可能會有點慢。

但是提到這些可以在代碼中禁用(你應該指向 private/ntos/inc)。 還提到其中包含一個“beep.sys”驅動程序(這沒有意義,但只有開發人員會知道原因),它會在 PC 揚聲器中發出令人討厭的聲音,為了聽到它,您必須取消靜音(特別是如果您使用pulseaudio)。

所有控制器都在用戶空間中運行! 整個系統可以放在一張軟盤上,可以從 v0.1.0001 版本下載。 您也可以自己構建它,其過程將在下一節中描述。

最後,有興趣了解項目的小伙伴,可以查閱詳情 在下面的鏈接中。

啟動映像的大小為 1,4 MB,代碼在 GPLv3 許可下發布。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。