掛起一個項目以在ARM64上啟動Windows應用程序

Wine Android特色圖片

葡萄酒項目開發商 Stefan Dösinger 和 André Hentschel 宣布推出 Hangover 模擬器的第一個公開版本,允許您運行 32 位和 64 位 Windows 應用程序 專為 x86 和 x86_64 架構設計 在基於 ARM64 架構(Aarch64)的 Linux 和 Android 環境中。

與在系統調用級別的模擬模式下使用 QEMU(使用與主系統相同的內核)在最小系統環境下運行 Wine 不同。

關於宿醉模擬器

該項目 Hangover 可以讓用戶獲得顯著更高的性能。 該項目的加速推進 是通過將仿真層轉移到Win32/Win64 API級別來實現的, 而不是使用基於它們的後續 Win32/Win64 API 模擬來模擬常規系統調用。
目前,該項目僅允許用戶運行使用 Win64 和 Win32 API 的簡單應用程序和遊戲。

對於 Linux,已經實現了對 Direct3D 的支持,但由於 Wine 中對 OpenGL ES 的支持不完整,因此尚未在 Android 上實現。

不存在調試器支持,並且異常處理存在已知錯誤。 由於這些原因,版權保護和反作弊系統的狀況可能比普通版本的 Wine 更糟糕。

一般來說,64 位應用程序的性能比 32 位應用程序要好,因為不需要數據結構。
為了確保工作,使用常規的 Wine 安裝,並輔以各種庫和 DLL 層。
在 Linux 環境中,當 QEMU 位於 Wine 目錄(“C:\ x86\ qemu-x86_64.exe.so”)中時,Windows 應用程序會自動運行。

而在Android中,建議使用cmd實用程序來執行執行。
通過保留低於 4 GB 的每個地址,地址空間限制為 4 GB。

大多數 Wine 的核心庫都預加載到 4 GB 以上 盡可能將上述空間保持在 4 GB 以下。 這樣做的缺點是啟動一個新進程大約需要 2 秒。

葡萄酒-4.0

ARM64 的宿醉酒

Wine 將每個進程視為 64 位進程,因此其 WoW64 層不處於活動狀態。。 這對於純 32 位或純 64 位應用程序來說效果很好,但對於需要區分 C:\windows\system32 和 C:\windows\syswow64 的混合應用程序來說會出現問題。

關於32位(x86)Windows應用程序的發布, 在應用程序和 Wine 之間傳遞的結構的翻譯級別進行處理 (Windows 上的 LLP64 模型保留了 32 位和 64 位 WinAPI 之間的基本框架兼容性。)

為了運行 32 位 Windows 應用程序,需要使用 64 位 Wine 程序集,並且每個進程首先被視為 64 位。

在主機端,僅支持 ARM64 和 x86_64 架構,但代碼是統一的,允許項目按照從最新到最舊(little-endian)的字節順序移植到其他架構,而不需要太多努力。

還有很多需要打磨的地方

迄今為止,Hangover 的表現還有很多不足之處。 因為它是主要瓶頸是 QEMU 生成的代碼的性能。

黃大仙禁運, 在 Nvidia Shield Android TV 設備上運行時。 性能足以運行 2000 年代以後的遊戲。

在 Hangover 上測試的應用程序包括 Notepad++、ANNO 1602、奇蹟時代、戰鎚 40k:戰爭黎明、工人物語 II 10 週年、波斯王子 3D、百戰天虫 2 和百戰天虫世界末日。 DirectX 9 SDK 示例也以可接受的速度運行。

該版本基於 Wine 4.0 代碼庫,這反映在 Hangover 0.4.0 版本號中。 仿真層基於QEMU項目。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。