![]()
Gabriel Iv?ncescu 在郵件列表里敲下最后一段提交說明時,大概沒想到這個補丁會讓多少玩家重新翻出Steam庫里吃灰的3A大作。NTSYNC——這個被塞進Wine 11的新功能,本質上是在Linux內核里造了一扇后門,讓Windows游戲的線程同步請求不用再繞遠路。
過去七年,Linux玩家已經習慣了"能跑就行"的妥協。Proton 2018年橫空出世時,Linus Torvalds那句"我他媽受夠了"的咆哮還歷歷在目。但妥協是有代價的:你打開任務管理器,看到 wineserver 進程吃掉20%的CPU,幀數在復雜場景里斷崖式下跌,卻束手無策。
問題的根源藏在Windows和Linux的線程哲學差異里。
現代游戲是并行的野獸。渲染線程往GPU塞三角形的同時,物理線程在算彈道,音頻線程在混音,AI線程在尋路。這些線程需要 constantly 互相喊話:「我完事了」「輪到你了」「別動那塊內存」。Windows用NT內核原語處理這些對話——mutex、semaphore、event,直接在內核態完成。
Linux沒有這些。Wine的權宜之計是 wineserver:一個獨立的用戶態進程,所有同步請求都要打包成RPC發過去,等它裁決后再返回。這就像讓兩個室友傳紙條溝通,而非直接對話。游戲線程越多、同步越頻繁,wineserver的瓶頸越明顯。
社區先是用 esync 緩解癥狀:把部分同步操作映射到Linux的eventfd,繞過wineserver。Valve的fsync更進一步,用futex實現更高效的等待隊列。但它們都是打補丁——在錯誤的架構上修修補補。
NTSYNC:把Windows的同步邏輯塞進Linux內核
NTSYNC的激進之處在于承認一個事實:完全兼容Windows游戲,需要Linux內核理解NT原語的語義。Gabriel Iv?ncescu寫的這組驅動模塊,直接在Linux內核里實現了Windows風格的mutex、semaphore和event。
游戲調用WaitForSingleObject時,不再觸發用戶態的RPC往返,而是直接進入內核態的ntsync驅動,由Linux調度器按Windows規則處理。延遲從微秒級降到納秒級,wineserver的CPU占用可以忽略不計。
![]()
Phoronix的實測數據很能說明問題。《賽博朋克2077》在相同硬件下,CPU受限場景的幀率提升從15%到翻倍不等,取決于場景復雜度。《艾爾登法環》的卡頓幀(1% low)顯著減少,開放世界旋轉鏡頭時不再出現明顯的幀時間尖峰。
但Iv?ncescu本人在提交說明里留了余地:「性能提升高度依賴工作負載」。老游戲、單線程主導的游戲、同步調用稀少的游戲,幾乎感知不到變化。NTSYNC解決的是特定類型的瓶頸,而非萬能藥。
WoW64完工:32位游戲的臨終關懷
Wine 11的另一個重頭戲是WoW64架構的徹底重構。這個允許64位Wine運行32位Windows程序的系統,終于擺脫了依賴獨立32位庫的歷史包袱。
過去,運行32位游戲需要安裝一整套i386架構的Wine庫,占用空間、增加維護復雜度。新架構下,32位代碼通過thunk層直接調用64位系統庫,翻譯開銷在可接受范圍內。對于Steam上仍占相當比例的32位老游戲(《泰拉瑞亞》《星露谷物語》等),這意味著更干凈的依賴管理和更長的生命周期。
Wayland驅動的進步則回應了另一個痛點。Wine 11的Wayland后端現在支持多顯示器配置、剪貼板集成、以及更完整的窗口管理協議。X11的時代正在落幕,這個更新讓Linux發行版默認Wayland的決策少了后顧之憂。
辯論:這是必要的重構,還是過度工程?
正方觀點:NTSYNC是Linux游戲的基礎設施升級
支持者認為,NTSYNC代表了兼容層設計的正確方向——在合適的層級解決問題。esync和fsync證明了用戶態優化的天花板,內核態的NT原語支持才是終極方案。Valve、CodeWeavers和獨立貢獻者的長期投入,說明生態共識已經形成。
![]()
更深層的影響在于維護成本。wineserver的RPC機制代碼復雜、調試困難,NTSYNC的驅動代碼路徑清晰,長期而言降低了Wine項目的債務負擔。Proton、Lutris、Heroic等下游項目無需額外適配,自動繼承性能收益。
反方觀點:內核模塊是危險的賭注
批評者指出,NTSYNC驅動尚未進入主線內核,需要用戶手動編譯或依賴發行版打包。這意味著普通玩家短期內用不上,而敢于嘗鮮的人要承擔內核模塊不穩定的風險。
更尖銳的質疑來自架構哲學:為了一個兼容層修改內核,是否本末倒置?Linux內核的穩定性承諾與Windows原語的快速演變存在張力,NTSYNC的維護負擔可能從Wine轉移到內核社區。如果微軟在下一代Windows中調整同步語義,Linux內核是否要跟進?
性能提升的真實幅度也存在爭議。Phoronix的測試集中在高CPU負載場景,而GPU受限的游戲(4K高畫質設置)幾乎不受影響。對于已經用fsync獲得大部分收益的用戶,NTSYNC的邊際改進是否值得折騰內核,答案因人而異。
判斷:技術債到了必須償還的時候
我的看法是,NTSYNC的爭議性恰恰說明它觸到了問題的核心。Wine項目二十年來一直在用戶態打太極,把Windows的復雜性翻譯成Linux能理解的方言。這種策略在早期是必要的——內核社區不會為兼容層開綠燈——但現在Linux游戲的市場地位已經不同。
Steam Deck的銷量、SteamOS的擴張、以及Valve對Proton的持續輸血,創造了一個此前不存在的政治經濟條件:內核維護者有動力接受NTSYNC這類補丁,發行版有動力預裝它,玩家有動力期待它。
WoW64的重構和Wayland的成熟則是同一趨勢的副產品:Linux游戲不再是邊緣愛好,而是需要企業級維護質量的平臺。Wine 11的"感覺像全新項目"不是修辭,是技術債務償還后的輕盈感。
對于普通玩家,最務實的行動是檢查自己的使用場景。CPU受限的開放世界游戲、多線程密集的模擬類游戲、對幀時間敏感的節奏游戲——這些會從NTSYNC獲益最多。GPU已經跑滿的老顯卡用戶,可以等驅動進入主線內核后再考慮升級。
Gabriel Iv?ncescu在補丁說明的最后一行寫道:「This has been a long time coming」。三年開發,無數測試版本,郵件列表里的技術爭論,最終濃縮成一個需要root權限加載的內核模塊。Linux游戲社區習慣了等待,但這次等待似乎快到了盡頭。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.