Meet Hangover, the Wine to run Windows apps on ARM64 

hangover

hangover Wine for ARM64

Wine is undoubtedly one of the best-known projects in the Linux world. and we must not do less to the project, because although for several years it was in a state in which many of us thought it would be forgotten, it regained strength and today, which is in version 9.0, Wine is one of those applications that most Linux users usually have included within their system.

With the arrival of ARM and the great strength it has taken this architecture, Various distributions have been developed and even adapted of all kinds and with which also various applications have reached this architecture. But in the case of those that depend on a Windows application, things become a little complicated., because being able to run an application designed for the desktop on ARM is not as easy as installing and that's it.

It is because of that The Hangover project was born out of this need., which is designed to allow the execution of 32-bit Windows applications compiled for x86 (i386) and ARM32 architectures in environments based on the ARM64 (Aarch64) architecture.

About Hangover

In the repository of Hangover describes that project:

It uses various emulators as DLLs to emulate just the application you want to run rather than emulating a full Wine installation. As soon as the application makes a Windows/Wine system call, say NtUserCreateWindowEx, it runs outside of the emulator (read not emulated, fast, native). Even better, anything Unix related is never emulated.

In short, we exit emulation at the win32 or Wine Unix system call level for performance reasons, which is enabled by WoW64 support in Wine.

The main benefit of this project lies in its ability to significantly improve performance compared to running Wine completely in emulation mode. With Hangover, the emulator is used only to run the application code itself, while all system calls, libraries, and Wine components are executed outside of the emulator in the native version for the current platform.

This approach dismantles the emulation chain at the level of calls to win32 and wine. For the emulation layer, users can choose to use QEMU, FEX and Box64 emulators, depending on their preferences. Additionally, work has begun to support the Blink emulator, although it is still ongoing and not finalized.

Main new features of Hangover 9.0

In this new version of Hangover they have implemented several significant improvements and additions to the project, of which the following stand out:

  • Using QEMU with WoW64: Introduced the ability to use QEMU in conjunction with the WoW64 (Windows-on-Windows 64-bit) layer, available in Wine. This allows running 32-bit Windows applications on 64-bit Unix systems, with support for x86_32 and ARM32 architectures.
  • Support for FEX: Added support for the FEX emulator in PE format and in Unix builds. It is planned, in the future, to discontinue the use of FEX Unix builds in favor of PE format builds.
  • Jobs at Box64: Full integration has been achieved with the Box64 emulator.
  • Prebuilt deb packages: Deb packages have been prepared for Debian 11 and 12, with future plans to release packages for Ubuntu and Alpine Linux.
  • Jobs for RISC-V architecture: Efforts have begun to ensure the launch of Windows applications in environments based on the RISC-V architecture.
  • Restoring support for x86_64 emulation: Work is underway to return support for emulation of the x86_64 architecture for running 64-bit Windows applications. In the 0.8 branch, support was limited to i386 due to unavailability of using ARM64EC in Wine.

In addition, it is highlighted that the development of a Hangover implementation adapted for the RISC-V architecture is being carried out. This latest development is based on the Wine 9.0 codebase, which is reflected in its version number.

Finally if you are interested in knowing more about it, you can check the details in the following link.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.