Wine 1.8 Released
The Wine team members released version 1.8 of their project this week. The project has been in constant development since 1993 and reached version 1 only in 2008, so new releases are major events.
This release is good news for anyone struggling to get a Windows app to run on Linux (or OS X or BSD, etc.). Wine is a Windows compatibility suite that runs Windows programs on POSIX-compliant systems.
Wine is often mistaken for an emulator--a common error that the developers are keen to correct. In fact, the name itself stands for "Wine is Not an Emulator". Emulators like MAME simulate the CPU, hardware and operating system in software, adding a lot of overhead and reducing performance by a large degree.
Wine takes another approach to compatibility. It provides a proxy environment that Windows apps can interact with, replicating the Windows interface. Behind the scenes, it translates the application's requests to POSIX system calls and translates responses into the format a Windows application would expect. It's a little like the universal translator from Star Trek. In other words, the app "thinks" it's running on a Windows box while your operating system "thinks" it's hosting a native app.
It's an approach that works for a large number of applications. Many of them run surprisingly well, with little performance degradation. In fact, some Windows apps even perform better on Linux than on Windows, due to better system architecture.
But although many Windows apps run smoothly on Wine, just as many that do not. Why is that? Wine currently covers the most common parts of the Windows API, but there are many areas where functionality is incomplete. If an app depends on features that Wine doesn't support, it either will fail or run with glitches.
There are alternatives to using Wine, but they all involve trade-offs. Perhaps the simplest solution is to install Windows on your computer as a second operating system. But for many Linux users, that isn't an option. We want to break free of Windows, not tie ourselves down to it.
What's more, switching between operating systems to run a single application is a major pain. So another solution is to run a virtual machine. A VM lets you run Windows without logging out of Linux. You can switch between apps, and some VMs support features like copy-paste between the VM and Linux. Additionally, you can save the VM state, allowing you to "boot" directly into the open application.
But, there are a couple serious downsides. First, you have to buy Windows and install it on your VM. And, then there's the performance hit. VMs are very resource-hungry, and they can slow a medium to low-spec PC to an absolute crawl.
Wine version 1.8 supports more of the Windows API, meaning better support for apps that were unstable under previous versions. Although there's still a long way to go for full API support, it's a huge step in the right direction.
Wine 1.8 will be making its way into the official repos of your favorite Linux distro soon if it's not there already. But for some users, "soon" isn't fast enough. You can get your hands on Wine today via https://www.winehq.org/download.
Binary packages are for several major Linux distros, or you can download the source code and compile it on your machine.