Wine 4.0正式版發表,Mac與GNU/Linux系統執行Windows應用程式更好

Wine 2.0 正式版發表,Mac 與 GNU/Linux 系統執行 Windows 應用程式更全面

已經無法忍受 Microsoft 不斷警告你 Windows 7 不安全,催促你升級到 Windows 10 嗎?如果你真的只為了單單一兩個特定 Windows 應用程式而非得使用 Windows,最新發表的 Wine 2.0 可能是你更好的選擇。

Wine 是一套以 LGPL 授權發表的開源專案,名稱來源是 Wine Is Not an Emulator 的遞迴幽默式縮寫,功能是在 X86 / X86-64 的硬體平台上,讓 Unix / Linux 的作業系統也可以執行 Windows 的應用程式。Wine 跟模擬器最大的不同,就是如同名稱來源,它真的不是模擬器,而是在泛 Unix 系統上,以函式庫的方式實作 Windows API,將 Windows API 轉譯成 POSIX 。這意味著你不用安裝 Windows 系統,也能在 macOS、GNU / Linux 桌面和 BSD Unix 系統上高效能執行 Windows 應用程式。畢竟模擬器是「模擬一個硬體」的運作行為,例如把個人電腦(8086 系列的 CPU )模擬成 68000 CPU 系的遊樂器,透過模擬器要跑 Windows 程式,你還是要在模擬器下安裝真正的 Windows,而透過模擬硬體來執行效能也很差,何苦要在 80X86 的 Mac 上模擬 80X86 的 Windows  呢?

既然是同樣的硬體,GNU / Linux 跟 Mac 要執行 Windows 程式,只要在軟體層面轉譯 API,效能自然會好得多。

註 1:「遞迴」是指「Wine」Is Not an Emulator 裡面的 Wine 還可以不斷展開,例如:{[(Wine Is Not an Emulator) Is Not an Emulator] Is Not an Emulator}Is Not an Emulator……註 2:POSIX 可移植作業系統介面:所有 Unix-like 作業系統 API 實作的共通標準,而 MS Windows 則只有實作一部分。

當然事情做起來不會那麼簡單。相較 POSIX 的開放規格,Windows 的 api 可是不透明的黑箱,只有 Microsoft 公司的職員才知道其內部實際運作,要合法做到跟 Windows 高度相容,外人只能用大量猜測與反覆 try and error 來加以實作。Wine 專案到今年為止,已經有 24 年的歷史,筆者自離開 Windows 平台到現在,也已經使用 Wine 十多年了,一路走來,從剛開始很早期的 0.XX beta 版本只能正確運作少數 Windows 程式,到今日 Wine 2.0 了,對 Windows 的相容性終於達到一個里程碑,甚至對早期 Windows 95 時代程式的相容性,可能比現代的 Windows 還要更好(Wine 可針對軟體,微調模擬不同時代 Windows 作業系統的行為),今昔不可同日而語,這都要向 20 多年來許許多多投入的志工致敬(筆者其實也是回報志工之一,是 Vocaloid2 軟體的維護人,不過跟他人比起來,貢獻微不足道就是了)。

Wine 2.0 的進化細節

這次 2.0 版是大規模更新的版本,包括 15 大項的改進和新功能,還有修正超過 6,600 個錯誤。最重要的亮點是支援 Microsoft Office 2013、支援 64 位元的 macOS、DirectX 支援的大提升以及 CJK 字形處理更完善,也就是對中文遊戲支援性更好了。

更詳細的改良摘錄如下:

更多 DirectWrite 功能被實作:如下劃線、字體回退支援、改進字體指標分辨率、PDF 文件中的字體嵌入、Unicode 9.0.0 支援、支援 EUDC 造字檔。

圖像方面:macOS 上可以驅動 Retina 渲染模式、描繪效能提升。

Direct3D:更多 Direct3D 10 與 11 的機能實作、支援更多顯示卡、支援 Direct3D 11 的特色功能、對 D3DX(Direct3D 擴展)9 效果框架的全面支援、Shader Model5 更多指令實作完成。

音訊、視訊:支援 GStreamer 1.0 多媒體框架、讓 DirectSound 支援 5.1 / 4.0 聲道降混音到雙聲道立體聲。

使用者介面:剪貼簿重新實作機能改善(包含複製 html 文字)現在有更好的相容性、Drag & Drop 機能變更流暢、支援第四版 System Tray、比較少見的桌面解析度如 640×400 或 1,280×960 也可支援了。

網路:Gecko 引擎更新為 Firefox 47、支援 Web Service API、支援 IDN 名稱解析、可正確處理長 URL、Javascript 效能改善。

64 位元支援:支援 macOS 64 系統、Mono 引擎(開源 .net)也支援 64 位元系統。

人機介面:實作了新的驅動架構,讓更多的人機界面裝置(包含 USB 裝置)也可以透過 wine 正確的操作 Windows 應用程式、搖桿按鈕對應調整與力回饋效果改善。

版號:從 2.0 開始,正式版的版號會是 2.0.1、2.0.2、2.0.3……開發版的版號則會是 2.1、2.2、2.3,去掉中間那個 0,而下一世代的大更新則是 3.0。

目前已經有 Ubuntu、Debian、Fedora、Mageia and macOS 等二進位檔可以下載,也可以下載原始碼,如果你不想捲袖子辛苦調整 Wine 的設定來執行特定程式,也可以找客製化的 Wine:PlayOnLinux(專注遊戲的) 與更商業化的 CodeWeavers CrossOver(很多 Wine 開發者參與,更新快速)。

🍎たったひとつの真実見抜く、見た目は大人、頭脳は子供、その名は名馬鹿ヒカル!🍏

能在 Linux 環境執行 Windows 程式的 Wine 推出4.0更新,支援 Vulkan、Direct3D 12等 API

Wine是款能在macOS、Linux、BSD等類Unix作業系統中,執行Windows程式、遊戲的工具軟體,它的名稱為「Wine Is Not an Emulator」的遞迴縮寫,可以看出它並不是以模擬器的方式提供跨系統的軟體相容性。在最新推出的4.0版中,加入了Vulkan、Direct3D 12等繪圖API與遊戲控制器的支援。

直接硬上Windows程式

一般來說,要在某種硬體平台或作業系統中執行其他系統的程式,大多依賴模擬器或虛擬機器的方式達成。舉例來說,Windows 10 on Arm是透過模擬器的方式,在Arm架構處理器上執行x86架構的Windows作業系統與相關應用程式,而VirtualBox這類的工具軟體則屬於虛擬機器,它以軟體方式分配實體硬體資源,並在主機(Host)建立多台虛擬的客戶端(Clinet)電腦,讓使用者可以在這些虛擬電腦中安裝、執行不同的作業系統與程式。

然而Wine卻不是使用上述的方式,它能即時將Windows API呼叫(call)轉換為POSIX呼叫,並提供替代的Windows系統函數庫與系統元件,能夠進一步降低效耗損與記憶體使用量,因此執行的效率比模擬器與虛擬機器好。

提升遊戲相容性與體驗

Vulkan與OpenGL一樣是由Khronos Group開發的開放標準形式繪圖API,都屬有著跨平台的特性,能夠支援Android、Linux、Windows等許多作業系統,然而由Microsoft開發的DirectX與內含的Direct3D則未對外開放,因此只能在Windows環境中運作。基於這個原因,要讓Wine支援Vulkan並不是那麼困難,但要直接支援Direct3D就不是容易的事。

Wine 4.0的作法是透過vkd3d函數庫,將Direct3D 12轉譯為Vulkan,再由Vulkan進行繪圖工作,因此顯示卡必需支援Vulkan才能使用這項功能。此外Wine 4.0也改善了Direct3D 10、11的功能,讓更多遊戲能順利執行。

在遊戲控制器方面,除了能購支援Linux系統常見的SDL API之外,也能支援XInput、Raw Input等API,讓遊戲控制器的支援度與相容性獲得改善。

至於Wine對於Windows平台的程式與遊戲相容性,可以參考官方網站的App資料庫。在分類為「不需任何設定就能完美執行」的白金級清單中,可以看到《星海爭霸:怒火燎原》、《星海爭霸II》、《絕對武力:次世代》、《戰慄時空2》等熱門遊戲,甚至連《俠盜獵車手V》都有成功完美執行的案例。

至於「設定後就能完美執行」的黃金級清單中,則有《魔獸世界》、《太空戰士XIV:蒼天的伊修加爾德》、《駭客入侵:人類革命》等遊戲,以及《Adobe Animate》繪圖軟體。「具有不影響正常使用的小問題」的銀級清單則有Steam主程式、《異塵餘生3》遊戲,與《Photoshop CS6》、《iTunes 12》等軟體。

🍎たったひとつの真実見抜く、見た目は大人、頭脳は子供、その名は名馬鹿ヒカル!🍏