什麼是WINE?
Wine 是一個相容層,能夠在多種 作業系統(例如 Linux、macOS 和 BSD)上運行 Windows 應用程式。 Wine 不是像虛擬機器或模擬器那樣模擬內部 Windows 邏輯,而是將 Windows API 呼叫即時轉換為 POSIX 調用,消除了其他方法的效能和記憶體損失,並允許您將 Windows 應用程式乾淨地整合到桌面中。
WINE 是如何工作的?
WINE 就是一個“兼容層”,它位於 Windows 軟件和 Linux 之間,將每個軟件的 “語言” 翻譯成另一個。它不是模擬器,因爲它沒有試圖模擬整個系統。根本沒有 Windows 仿真,只是在需要的地方進行了聰明而有效的翻譯。基本過程是這樣的:
- Windows 應用程序發出請求,如打開文件或顯示窗口。
- WINE 攔截了這個請求,並將請求轉換爲本地 Linux 應用程序可能發出的等效請求。
- Linux 執行請求,而 WINE 執行相同的操作,但是方向相反。
當然,在現實中,這種情況每秒鐘發生數百萬次,所以這個應用程序運行起來很像 Windows 系統。
爲什麼要用 WINE ?
如果你是一個 Linux 或者 macOS 用戶,使用 WINE 有很多好的理由,最明顯的就是你可以訪問那些沒有 Linux 等價物的 Windows 應用程序,或者沒有 Linux 端口。
WINE 也一直是讓 Windows 遊戲在 Linux 上運行的流行方式。現代的 Linux 遊戲,比如在 Stream Deck 上,使用了一種叫做 Proton 的特殊兼容層,它至少包含了一部分主要 wINE 程序的修改版本。
因爲它是一個兼容層,而不是一個模擬器或虛擬機,所以 wINE 不會增加太多的計算開銷。因此,這通常是獲得有用體驗的唯一途徑,例如,運行 Linux 的低端筆記本電腦。
WINE 也是一個偉大的 (和合法的) 方式來避免支付 Windows 時,你想做的只是運行一些特定的應用程序,只有微軟的流行操作系統可用。
WINE 的侷限性 (limitations)
雖然 WINE 現在的狀態很好,但它並不完美。並非所有的應用程序都能100% 使用 WINE,它的 API 轉換也並不完整。雖然這比其他方法的開銷要小,但是 WINE 仍然會增加開銷,而且在一些應用程序中,特別是那些圖形化程度較高的應用程序中,這可能是一個重要的問題。
WINE 的另一個限制是,讓一個特定的程序工作可,能需要大量的調整、測試和配置。畢竟,時間就是金錢,有時候只是購買並運行 Windows 來讓某些軟件工作會更便宜。您可以使用 WINEHQ 應用程序數據庫來檢查特定應用程序的工作情況,例如 AppB 主頁上的“ Platinum”應用程序列表。
應用程序是根據它們運行的好壞來排序的,你還可以得到關於你需要採用的任何特定問題或變通方法的信息。
WINE 的替代品
Proton,這是大多數人在 Linux 上應該,使用的遊戲,但是它被集成到了 Stream 中,這使得它對於那些不在 Valve 店面上的遊戲來說並不理想。
虛擬機也是 WINE 的一個很好的替代品,因爲現在甚至主流的 CPU 都有優秀的虛擬化支持,而這在 WINE 的大部分時間裏都是不正確的。如果需要在 VM 和本地 Linux 主機上的軟件之間移動文件或信息,虛擬機確實會使應用程序的集成度降低一些,但這是可以忍受的。
CrossOver 是一個基於 WINE 的付費商業兼容層,但是更加用戶友好,並且提供支持。
最後,你可以簡單地雙重啓動 Windows 和 Linux,如果你想喫你的蛋糕。
WINE 的未來
WINE 不會去任何地方,甚至它的替代品在某種程度上依賴於這個開源項目。有成千上萬的人以這樣或那樣的方式爲 WINE 做出貢獻,他們將不斷添加功能,提高性能,並使其與新舊軟件兼容。除非 Linux 以某種方式變得足夠流行,以說服大多數軟件開發人員爲其開發一個本地版本的應用程序,否則對 WINE 或類似的東西的需求將與 Linux 本身一樣長久。
Platinum List
在這里你可以查找一些能夠完美安裝和運行的應用程式,例如 Adobe Photoshop CS6 (13.0) 、Guild Wars、Microsoft Word 2010 (32 bit) 等。