Wine 8.0 穩定發布

經過一年的開發和 28 個實驗版本,Win32 API 的開放實現的穩定版本 - Wine 8.0 誕生了,其中包含了 8600 多個變更。 新版本的關鍵成就標誌著Wine模組翻譯成該格式的工作已經完成。

Wine 已確認5266 個(一年前5156 個、兩年前5049 個)Windows 程式可以完全運行,另外4370 個(一年前4312 個、兩年前4227 個)程式可以與附加設定和外部DLL 完美配合。 3888個程式(一年前3813個,兩年前3703個)有輕微的運行問題,但不影響應用程式主要功能的使用。

Wine 8.0 的主要創新:

  • PE格式的模組
    • 經過四年的工作,所有DLL函式庫到使用PE(Portable Executable,用於Windows)可執行檔格式的轉換已經完成。 PE 的使用允許使用適用於 Windows 的偵錯器,並解決了支援驗證磁碟和記憶體中系統模組身份的各種複製保護方案的問題。 在 32 位元主機上運行 64 位元應用程式和在 ARM 系統上執行 x86 應用程式的問題也已解決。 在 Wine 8.x 的後續實驗版本中計劃解決的剩餘任務中,有一個模組過渡到 NT 系統調用接口,而不是在 PE 和 Unix 層之間進行直接調用。
    • 已經實作了一個特殊的系統呼叫管理器,用於將呼叫從 PE 轉換為 Unix 庫,以減少執行完整 NT 系統呼叫的開銷。 例如,最佳化可以減少使用 OpenGL 和 Vulkan 函式庫時的效能下降。
    • Winelib 應用程式保留使用 ELF (.dll.so) 函式庫的混合 Windows/Unix 組件的能力,但此類沒有 32 位元函式庫的應用程式將不支援透過 NT 系統呼叫介面所提供的功能,例如 WoW64。
  • 魔獸64
    • WoW64(64位元Windows-on-Windows)層為所有Unix程式庫提供,允許PE格式的32位元模組存取64位元Unix程式庫,並在擺脫直接PE/Unix呼叫後,將使其無需安裝32 位元Unix 程式庫即可執行32 位元Windows 應用程式。
    • 在沒有 32 位元 Wine 載入程式的情況下,32 位元應用程式可以在新的實驗性類似 Windows WoW64 模式下運行,其中 32 位元程式碼在 64 位元進程內運行。 使用「—enable-archs」選項建立 Wine 時會啟用模式。
  • 圖形子系統
    • 預設配置使用淺色主題(“Light”)。 您可以使用 WineCfg 公用程式變更主題。
      Wine 8.0 穩定發布
    • 圖形驅動程式(winex11.drv、winemac.drv、wineandroid.drv)轉換為在 Unix 層級執行系統呼叫並透過 Win32u 程式庫存取驅動程式。
      Wine 8.0 穩定發布
    • 列印處理器架構已經實現,用於消除印表機驅動程式中PE和Unix層之間的直接呼叫。
    • Direct2D API 現在支援效果。
    • Direct2D API 新增了錄製和播放命令清單的功能。
    • Vulkan 圖形 API 的驅動程式增加了對 Vulkan 1.3.237 規範的支援(Wine 7 中支援 Vulkan 1.2)。
  • Direct3D
    • 為 HLSL(高階著色器語言)新增了新的著色器編譯器,基於 vkd3d-shader 函式庫實作。 同樣基於vkd3d-shader,也準備了HLSL反組譯器和HLSL預處理器。
    • D3DX 10 中引入的線程泵浦介面已實現。
    • Direct3D 10 效果增加了對許多新表達式的支援。
    • D3DX 9 的支援庫現在支援 Cubemap 紋理投影。
  • 聲音和視頻
    • 基於GStreamer框架,實現了對解碼MPEG-1格式音訊的過濾器的支援。
    • 新增了用於讀取 ASF(高級系統格式)格式的串流音訊和視訊的過濾器。
    • 中間庫層 OpenAL32.dll 已被刪除,現在使用隨應用程式提供的本機 Windows 庫 OpenAL32.dll。
    • Media Foundation Player 改進了內容類型檢測。
    • 控制資料傳輸速率(速率控制)的能力已經實現。
    • 改進了對增強視訊渲染器 (EVR) 中預設混合器和演示器的支援。
    • 新增了 Writer Encoding API 的初始實作。
    • 改進了拓撲載入器支援。
  • 輸入設備
    • 顯著改進了對控制器熱插拔的支援。
    • 提出了一個基於SDL函式庫的遊戲方向盤判定程式碼的改進實作。
    • 改進了使用遊戲輪時對力回饋效果的支援。
    • 使用 HID Haptic 規範控制左右振動馬達的能力已實現。
    • 更改了操縱桿控制面板的設計。
    • 透過使用 hidraw 後端提供對 Sony DualShock 和 DualSense 控制器的支援。
    • WinRT 模組 Windows.Gaming.Input 旨在實現用於存取遊戲手把、操縱桿和遊戲輪的軟體介面。 對於新的 API,除其他外,還實現了對設備熱插拔通知、觸覺和振動效果的支援。
  • 國際化
    • 確保從 Unicode CLDR(Unicode 公共區域設定資料儲存庫)儲存庫產生 locale.nls 格式的正確區域設定資料庫。
    • Unicode 字串比較函數已改為使用資料庫和 Windows Sortkey 演算法而不是 Unicode Collion 演算法,從而使行為更接近 Windows。
    • 大多數功能都增加了對較高 Unicode 程式碼範圍(平面)的支援。
    • 可以使用 UTF-8 作為 ANSI 編碼。
    • 字元表已更新為 Unicode 15.0.0 規格。
  • 文字和字體
    • 大多數系統字體都啟用了字體鏈接,解決了中文、韓文和日文系統上缺少字形的問題。
    • 重新設計了 DirectWrite 中的後備字體。
  • 核心(Windows 核心介面)
    • 已實作 ApiSetSchema 資料庫,它取代了 api-ms-* 模組並減少了磁碟和位址空間消耗。
    • DOS 檔案屬性使用擴充 FS 屬性以 Samba 相容格式儲存在磁碟上。
  • 聯網功能
    • 新增了對 OCSP(線上憑證狀態協定)的支持,用於檢查已撤銷的憑證。
    • JavaScript 標準合規模式中可用的 EcmaScript 功能範圍已擴充。
    • 為 JavaScript 實作了垃圾收集器。
    • Gecko 引擎包包含適合殘疾人士的功能。
    • MSHTML 新增了對 Web 儲存 API、效能物件和用於事件處理的其他物件的支援。
  • 嵌入式應用
    • 所有內建應用程式均已轉換為使用 Common Controls 6 庫,並支援設計主題和渲染,同時考慮高像素密度的螢幕。
    • Wine 偵錯器 (winedbg) 中偵錯執行緒的增強功能。
    • 註冊表實用程式(REGEDIT 和 REG)現在支援 QWORD 類型。
    • 記事本新增了狀態欄,其中包含有關遊標位置的資訊以及跳到指定行號的 Goto Line 功能
    • 內建控制台提供 OEM 代碼頁中的資料輸出。
    • “query”命令已新增至 sc.exe(服務控制)公用程式。
  • 組裝系統
    • 已經提供了為多種體系結構建構 PE 格式的可執行檔的能力(例如,「—enable-archs=i386,x86_64」)。
    • 在所有具有 32 位元 long 類型的平台上,Windows 中定義為 long 的資料類型現在在 Wine 中重新定義為「long」而不是「int」。 在 Winelib 中,可以透過 WINE_NO_LONG_TYPES 定義停用此行為。
    • 新增了不使用 dlltool 生成庫的功能(透過在 winebuild 中設定「—without-dlltool」選項啟用)。
    • 為了提高載入效率並減少無程式碼、純資源庫的大小,winegcc 實作了「--data-only」選項。
  • 雜記
    • 內建函式庫的更新版本 Faudio 22.11、LCMS2 2.14、LibJPEG 9e、LibMPG123 1.31.1、LibPng 1.6.39、LibTiff 4.4.0、LibXml2 2.10.3、LibXslt 1.1.37、LibXml1.2.13 XNUMX、LibXslt XNUMX.
    • .NET 平台實現的 Wine Mono 引擎已更新至版本 7.4。
    • 已實現對基於RSA演算法和RSA-PSS數位簽章的加密的支援。
    • 新增了 UI 自動化 API 的初始版本。
    • 原始碼樹包括 LDAP 和 vkd3d 函式庫,它們以 PE 格式編譯,無需提供這些函式庫的 Unix 組件。
    • OpenAL 程式庫已停止使用。

來源: opennet.ru

添加評論