Wine 9.0 穩定發布

經過一年的開發和 26 個實驗版本,Win32 API 的開放實現的穩定版本 - Wine 9.0 誕生了,其中包含了 7000 多個變更。新版本的主要成就包括實現了在64位元環境中運行32位元程式的WoW64架構、支援Wayland的驅動程式整合、對ARM64架構的支援、DirectMusic API的實作以及對智慧卡的支援。

已確認 5336 個程序(一年前為 5266 個,兩年前為 5156 個,三年前為 5049 個)在 Wine 中可以正常運作。 Windows另有 4397 個程式(一年前為 4370 個,兩年前為 4312 個,三年前為 4227 個)在增加額外設定和外部 DLL 後運作良好。 3943 個程式(一年前為 3888 個,兩年前為 3813 個,三年前為 3703 個)存在一些小問題,但不影響應用程式的基本功能。

Wine 9.0 的主要創新:

  • 新增了 winewayland.drv 驅動程序,使得 Wine 無需使用 XWayland 或 X11 組件即可在基於 Wayland 的環境中運行。此項開發旨在提供一個支援啟動的純 Wayland 環境。 Windows- 這些應用程式無需安裝與 X11 相關的軟體包,從而消除了不必要的層,提高了遊戲的性能和響應速度。使用純 Wayland 環境運行 Wine 還可以消除 X11 固有的安全問題(例如,不受信任的 X11 遊戲可以監視其他應用程序,因為 X11 協議允許訪問所有輸入事件並執行按鍵替換)。

    該驅動程式被標記為實驗性的並且正在開發中,但儘管如此,它已經支援許多功能,例如視窗管理、使用多台顯示器、支援高 DPI 螢幕上的輸出縮放、追蹤滑鼠移動時使用相對座標以及支援 Vulkan 圖形 API。預設情況下,該驅動程式未處於活動狀態,若要啟用它,您應該將“wayland”新增至登錄參數“HKCU\Software\Wine\Drivers”,並確保未設定 DISPLAY 環境變數:wine reg.exe add HKCU\\Software\\Wine\\warers /v Graph

  • 所有模組都已轉換為 NT 系統調用接口,而不是在 PE 和 Unix 層之間直接調用,這標誌著多年來將所有 DLL 庫轉換為使用 PE(可移植可執行文件)可執行文件格式的工作已經完成。
  • WoW64層(64位元)的開發仍在繼續。 Windows-上-Windows),這允許您運行 32 位元程式。 Windows- 適用於 64 位元 Unix 系統的應用程式。所有存取 Unix 函式庫的模組都使用 WoW64 系統呼叫轉換器(thunk),從而允許 PE 格式的 32 位元模組存取 64 位元 Unix 函式庫。

    新的 WoW64 啟動模式已改進,允許 32 位元程式碼在 64 位元進程中運行(在舊的 WoW64 模式下,32 位元應用程式在 32 位元 Unix 進程中運行)。該平台已新增對使用新 WoW64 模式的支援。 macOS由於新的 WoW64 模式存在一些小錯誤,例如缺乏 16 位元支援以及由於缺乏對 ARB_buffer_storage 擴充功能的支援而導致的 OpenGL 效能降低,因此預設尚未啟用,需要在組態腳本中使用「--enable-archs=i386,x86_64」選項進行建置。

  • 增加了執行現有可執行檔的功能 Windows 在採用 ARM64 架構的系統上,Wine 現在可以建置支援 ARM64EC(ARM64 模擬相容)ABI 的版本,並且可以載入 ARM64EC 模組。這些模組透過允許使用模擬器在 ARM64 環境中執行單一 x86_64 程式碼模組,從而簡化了將最初為 x86_64 架構編寫的應用程式移植到 ARM64 系統的過程。此外,Wine 還新增了對 ARM64X PE 檔案格式的支持,該格式允許單一可執行檔同時載入到 x64/Arm64EC 和 ARM64 進程中。 Wine 已實現了用於模擬 32 位元 x86 系統的接口,但模擬器庫尚未包含在 Wine 主發行版中(可使用外部 FEX 模擬器在 ARM64 環境中運行 x86 程式碼)。
  • 圖形子系統
    • PostScript 驅動程式已重新設計,以支援以下格式的假脫機文件 Windows儲存列印作業資料的組件。從 Unix 環境直接呼叫驅動程式的操作將被排除在外。
    • WinRT 主題中新增了深色模式支援。 WineCfg 中新增了一個設定以啟用深色介面設計。
    • Vulkan 圖形 API 的驅動程式增加了對 Vulkan 1.3.272 規範的支援(Wine 8.0 支援 1.3.237)。
    • GdiPlus 庫的功能已經過最佳化,可以提高圖形效能。
  • Direct3D
    • 當沒有正在處理的渲染命令時,多執行緒命令流的解析被暫停,這允許在執行不佔用整個命令流頻寬的程式時將能耗降低到單執行緒處理的水平。
    • Direct3D 10 包括對附加效果的支援。
    • 使用 Vulkan 圖形 API 對 WineD3D 程式碼和後端進行效能最佳化。
    • 基於 Vulkan API 的渲染程式碼現在會檢查裝置支援哪些功能,並告訴應用程式可用的 Direct3D 功能等級。
    • D3DXFillTextureTX 和 D3DXFillCubeTextureTX 函數已實作。
    • 經典的 OpenGL ARB 著色器後端增加了對使用 ARB_fragment_program_shadow 擴充定義陰影的支援。
    • D3DXLoadMeshHierarchyFromX 和類似函數新增了使用 ID3DXLoadUserData 介面載入使用者資料的支援。
  • 聲音和視頻
    • DirectMusic API 的初步實作已被提出。新增了對 SoundFont 格式的集合、樂器和聲音樣本的支援。增加了對多普勒效應的支持。已實施測試以驗證操作 dmime 音序器和 dmsynth MIDI 合成器時的正確實作。
    • FluidSynth 函式庫內建於 DirectMusic API 中以供使用。
    • 實現了載入 DLS1 和 DLS2 格式以及 SF2 格式的聲音素材庫(SoundFont - 用於播放 MIDI 檔案的基於取樣的合成格式)的支援。 Linux.
    • 增加了使用 dmsynth 庫播放 MIDI 內容的功能,使用 FluidSynth 軟體合成器和 DirectSound API 進行音訊輸出。
    • 新增了 Indeo IV50 視訊編解碼器格式的視訊解碼器。
  • DirectShow的
    • 已實現具有 WMV 格式解碼器的 DMO(DirectX 媒體物件)元件(Windows 媒體影片)。
    • 新增了音訊擷取過濾器(DirectShow Audio Capture Filter)。
    • 除了音訊串流,DirectShow MPEG-1 Stream Splitter 現在還支援視訊和服務串流。
    • 已實現用於解碼 MPEG-1 格式視訊的過濾器(DirectShow MPEG-1 視訊解碼器)。
  • 輸入設備
    • DirectInput 支援動作映射,讓您可以將遊戲控制器上的按鈕綁定到遊戲中的特定動作。
  • 桌面集成
    • 綁定已匯出到主用戶環境,允許在Wine 下運行的應用程式在開啟URL 時被呼叫為協定處理程序(例如,在開啟「spotify:user:spotify:playlist:848218482355482821」等連結時啟動Spotify.exe )。
    • 實現了 EDID(擴展顯示識別數據)數據的提取,其中包含有關所連接顯示器的參數信息,例如設備的名稱和型號。
    • 可以使用「開始」功能表中的「退出桌面」按鈕關閉以全螢幕模式部署的桌面視窗。
  • 國際化
    • 對輸入法編輯器 (IME) 的支援已擴展。已開展工作以確保與原生應用程式的兼容性。 Windows IME 實現和改進的集成 Linux 我
    • 已提供從 Unicode CLDR(Unicode 通用區域設定資料儲存庫)版本 44 資料庫產生 locale.nls 格式的區域設定資料庫。支援其他區域設定 bew-ID、blo-BJ、csw-CA、ie-EE、mic-CA , prg-PL 已新增、skr-PK、tyv-RU、vmw-MZ、xnr-IN 和za-CN。
    • 該介面已翻譯成格魯吉亞語。提供 16 種語言的完整翻譯和 31 種語言的部分翻譯。
    • Unicode 字元表已更新至標準版本 15.1.0。時區資料庫已更新。
  • 核心(核心介面) Windows)
    • 已發布的版本 Windows 預設定義 Windows 10.
    • 對於PE格式的可執行文件,實現了對位址空間隨機化(ASLR)的支持,但將程式碼載入到記憶體中的位址尚未完全隨機化。
    • 已經實現了對弱碎片堆(LFH,低碎片堆)的支持,這提高了記憶體分配操作的效能。
    • 虛擬記憶體分配機制中添加了對記憶體預留(佔位符)的支持,允許應用程式預留虛擬記憶體的特定區域以供將來使用。
    • 可執行檔和函式庫的 64 位元載入器(載入器和預載器)以 PIE(位置無關執行檔)格式編譯,以釋放部分 32 位元位址空間。
    • 現在為 NT 系統呼叫和使用者回呼提供了正確的堆疊展開。
  • 聯網功能
    • MSHTML引擎支援「Cycle Collection」垃圾回收機制。
    • MSHTML 新增了對同步處理 XMLHttpRequest 請求的支援。
    • jscript.dll 新增了對 WeakMap 物件的支持,以處理鍵/值對的集合,其中鍵是可以附加任意值的物件。實作了 WeakMap.get()、WeakMap.delete()、WeakMap.clear() 和 WeakMap.has() 方法。
    • Gecko 瀏覽器引擎已更新至 2.47.4 版本。
    • 已實現對有關網路介面狀態變更的通知的支援。
  • 密碼學與安全
    • Winscard.dll 庫中新增了對智慧卡的支持,透過 PCSClite 系統庫實現。
    • BCrypt 增加了對 Diffie-Hellman 金鑰交換協定的支援。
    • Negotiate 套件已經實現,為使用安全支援提供者介面 (SSPI) 存取安全支援提供者 (SSP) 提供了一個層。
  • 嵌入式應用
    • Wine 偵錯器 (winedbg) 使用 Zydis 函式庫來反組譯 X86 機器指令。
    • WineCfg 介面已更新,以支援 64 位元平台上的舊版本。 Windows (在 XP 之前),它允許您使用 WoW64 模式運行舊版應用程式。
    • 所有內建圖形應用程式現在都在單獨的對話方塊中顯示錯誤訊息,而不是在控制台中顯示它們。
    • systeminfo 程式提供來自 WMI 資料庫的資訊顯示(Windows 管理儀器)。
    • 新增了 klist 應用程式來顯示 Kerberos 票證。
    • taskkill 應用程式實作了強制終止子程序的功能。
    • 啟動實用程式現在有一個「/machine」選項,用於選擇執行支援 x86 和 ARM 的混合執行檔時所使用的體系結構。
    • 任務清單程式的大部分功能已經實現。
    • 新增了 findstr 應用程式的基本實作。
  • 開發工具
    • WineDump 工具能夠顯示註冊表檔案的內容。 Windows (REGF 格式),以及顯示混合 PE 檔案中支援的所有架構(x86/ARM64)的資料。
    • IDL 編譯器現在支援「composable」、「default_overload」、「deprecated」和「protected」屬性。
    • 刪除了 libwine.so 函式庫,該函式庫在 Wine 6.0 中已棄用,並且不再在 Wine 中使用。使用 libwine.so 在舊版本 Wine(5.0 以上版本)中建立的 ELF 程式需要重建才能在 Wine 9.0 中運作。
  • 內建庫和外部依賴項
    • FluidSynth 2.3.3、Musl 1.2.3(僅數學函數)和 Zydis 4.0.0 函式庫已整合到該套件中。
    • 以下元件已更新至新版本:Vkd3d 1.10、Faudio 23.12、OpenLDAP 2.5.16、LCMS2 2.15、LibMPG123 1.32.2、LibPng 1.6.40、LibMPG4.6.0 2、LibPng 2.11.5、LibTiff 1.1.38、LibXX. 1.3。採用 .NET 平台實現的 Wine Mono 引擎已更新至 8.1.0 版本。
    • 驅動程式 winewayland.drv 使用 Wayland 用戶端程式庫作為外部依賴項,以及 xkbcommon 和 xkbregistry 函式庫。
    • 為了支援智慧卡,使用了外部 PCSClite 庫(在 macOS — PCSC)。
    • 現在,在非 i386 平台上建立 PE 檔案需要支援「.seh」指令的交叉編譯器來處理異常。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster