Want to run Windows apps on Linux? Wine just got this huge update

The Wine 6.0 compatibility layer is now available with better support for running Windows games on Linux and Unix-like machines, with early support for Apple's Arm-based silicon Macs.

Securing Windows 10 PCs: What to watch out for

The open-source Windows-Linux compatibility layer project, Wine, has announced the stable release of Wine 6.0 and it's even bigger than the previous stable release from mid-2020. 

This update is the culmination of an entire year of development effort and contains over 8,300 individual changes – or 900 more changes than shipped in the last release from July 2020

Wine (Wine is Not an Emulator) is for getting Windows apps and games to run on Linux and Unix-like systems, including macOS. As opposed to running a VM or emulator, Wine focuses on Windows application protocol interface (API) calls and translating them to Portable Operating System Interface (POSIX) calls. 

SEE: Windows 10 toolbar: Here's how Microsoft is adding news, weather and traffic

Wine holds an interesting place in the history of Microsoft, which in the past opposed the software but more recently held up Wine as an example of the importance of open APIs. Microsoft said it created 'the inverse of Wine' in Windows 10 by reimplementing the structure of some Linux APIs to create the Windows Subsystem for Linux, a program that allowed Linux programs to run on Windows. 

The key highlights for this release include core modules in PE format, a Vulkan backend for WineD3D, DirectShow and Media Foundation support, and a redesign of the text console. The core models in PE format include NTDLL, KERNEL32, GDI32, and USER32. 

The graphics improvements around Direct3D include an experimental Vulkan renderer for WineD3D with better shader support. The Vulkan driver supports up to version 1.2.162 of the Vulkan specification.

"This requires the vkd3d-shader library in order to translate Direct3D shaders to SPIR-V shaders. In this release, shader support in the Vulkan renderer is limited to shader model 4 and 5 shaders. In practice, that limits its usefulness to Direct3D 10 and 11 applications. The Vulkan renderer can be enabled by setting the Direct3D "renderer" registry setting to 'vulkan'," the Wine team explains in release notes. 

This release brings support for several Direct3D 11 features, including per render-target blend states, dual-source blending, and multi-sample anti-aliasing sample masks.

There is a new mechanism to associate a Unix library with a PE module, which allows PE calls to Unix libraries for functions that can't be handled with Win32 APIs.

Wine has deprecated the libwine library. "Applications that explicitly call libwine functions will need to be changed to call equivalent Win32 or Unix APIs instead. As a consequence, the wine/library.h header has also been removed," the Wine project notes. 

SEE: Windows 10 Start menu hacks (TechRepublic Premium)    

There's also improvements on the input devices front, a basic USB kernel driver, mouse position history for games, and plug and play device notifications. 

Wine 6.0 includes a host of Windows NT kernel improvements, including better support for anti-cheat systems for games that load kernel drivers, and better network support for copy protection drivers. 

On the networking side, Mozilla's Gecko layout engine has been updated to version 2.47.2 and the WebSocket API has been implemented.      

The project has added early support for ARM64 on macOS, for Apple silicon-based Macs while support for 32-bit PowerPC architecture has been removed. It notes that "exception handling and stack unwinding on ARM platforms (both 32-bit and 64-bit) should be on par with the x86architectures."