NTSync

NTSync是Windows NT同步原語的Linux核心驅動實現,主要用於提升Windows應用程式在Linux系統(通過Wine/Proton兼容層)的多執行緒同步性能,尤其適用於遊戲等高並發場景。它通過核心驅動模擬Windows NT的同步原語(如信號量、互斥鎖、事件),其接口僅作為兼容工具使用。

該驅動程式由CodeWeavers的Elizabeth Figura領導開發,旨在解決用戶空間模擬的性能開銷問題。Linux 6.10版本初步引入了NTSYNC驅動程式,但被標記為實驗性功能;上游6.14版本完成功能完善並默認啟用。Wine 10.15首次集成NTSync驅動支持,deepin-ge-proton10也已正式支持該特性。在實際套用中,該驅動可為在Linux上運行的Windows遊戲帶來性能優勢。

研發背景,發展歷程,核心技術,運營模式,核心團隊,重要事件,

研發背景

NTSync驅動誕生的核心原因在於解決用戶空間模擬Windows NT同步原語時存在的性能與語義準確性瓶頸。
在用戶空間模擬NT同步原語(如通過Wine)存在局限性,其實現無法在提供準確語義的同時匹配Windows性能。在用戶空間正確模擬NT同步原語一直很麻煩,而且會產生很大的性能開銷。
NTSync是一個支持驅動,用於用戶空間NT模擬器對NT同步原語的模擬。該核心驅動方案為仿真Windows NT同步原語提供了核心支持,旨在提供高性能且語義準確的模擬。其目標在於提升Windows應用程式(尤其是遊戲)在Linux上的兼容性和運行效率。

發展歷程

2024年,CodeWeavers的Elizabeth Figura領導開發NTSync驅動程式,通過核心支持模擬Windows NT同步原語,以提高Wine/Proton等兼容層在Linux上運行Windows應用程式的性能。2024年4月,NTSync補丁被納入char-misc-next分支,計畫提交給5月開放的Linux 6.10核心合併視窗。
2024年5月,NTSync驅動程式隨Linux 6.10的char/misc更新被初步合併至核心主線。但由於大部分功能補丁未合併,該版本中的驅動程式被標記為“已損壞”或實驗性,無法在正常核心構建中使用。
NTSync驅動的剩餘功能補丁有望在Linux 6.11或後續版本中被上游接受。根據規劃,該驅動將在Linux 6.14版本中完成功能完善並默認啟用。在Linux核心主線開發的同時,下游生態也開始適配,Wine 10.15版本首次集成了對NTSync驅動的支持,deepin 25發行版所搭載的Linux 6.12核心也已集成了該特性。

核心技術

NTSync是一個純軟體實現的Linux核心驅動,不驅動任何硬體設備,用於在用戶空間NT模擬器中模擬Windows NT同步原語。同步對象(信號量、互斥鎖、事件)由檔案描述符(fd)表示,生命周期與檔案描述符綁定;每個打開的檔案描述代表一個獨立的NT實例(虛擬機),實例間對象隔離;對同一對象的操作具有原子性和全序性。

運營模式

NTSync是Linux核心驅動模組,通過字元設備提供服務,用於模擬Windows NT同步原語以提升Windows套用在Linux上的性能。該驅動主要被Wine、Valve Steam Play(Proton)等Windows套用兼容層調用,並在特定Linux發行版(如deepin 25的6.12核心)和定製Wine版本(如deepin-ge-proton10)中集成並默認啟用。

核心團隊

NTSync驅動項目的開發工作由CodeWeavers公司主導,該公司工程師Elizabeth Figura是該項目的主要領導者和技術貢獻者。Linux核心維護者Greg Kroah-Hartman負責將該驅動的補丁提交併合併入Linux核心主線(如Linux 6.10)。CodeWeavers公司在此過程中與Valve(Steam/Proton)等利益相關方進行了合作。

重要事件

2024年4月,NTSYNC驅動程式被宣布將合併到即將發布的Linux 6.10核心中。
2024年5月,NTSYNC驅動程式隨Linux 6.10的char/misc更新正式併入核心樹,但初始版本因功能不完整被標記為“已損壞”。
該事件對於提升Linux上Windows遊戲及應用程式的性能與生態兼容性具有重要意義。

相關詞條

熱門詞條

聯絡我們