One of the main concerns for people making the switch to Linux is how to run the programs that they’ve become accustomed to on other operating systems, mainly Windows. For most, there are one or two programs of games that aren’t available on Linux, and that puts a major hold on adopting Linux full time. Thankfully, WINE can help to solve this problem.
WINE is a piece of software for Unix-like systems, including Linux, OSX, and the BSDs, that allows you to run native Windows applications. WINE stands for, WINE Is Not an Emulator. That’s because it isn’t. WINE isn’t a full Windows install or some kind of VM. It is a compatibility layer that essentially translates Windows binaries. This extends to graphics libraries like DirectX 9, which is converted to OpenGL. WINE allows Linux users to run many popular Windows applications and games at similar performance to if they were running on Windows itself.
WINE can be a tricky thing. There are multiple versions of WINE with different sets of patches and two different current versions. Even once you get past that, different programs require specialized settings, in many cases, and can’t just be run out of the box. However, once you know your way around and have configured a program to run properly through WINE, it will usually run flawlessly, like a native application.
Stable Vs. Development
There are two active versions of WINE at any given time. The first is the stable branch. The stable branch is, or should be, bug-free and ready to run in more critical and business situations. You should expect stable to be free from odd regressions or issues with supported applications. The downside to stable is that it is very slow moving and usually doesn’t support the latest programs and games. That’s where the development version comes in. The development version of WINE is very fast moving, with minor version upgrades coming every few weeks or so. It includes many of the latest updates to WINE and is quick to support new programs. If you’re looking to use WINE for gaming, you wan the development version.
WineHQ, Staging, and Gallium Nine
There are different variations of the development version with different patches that provide additional functionality. Those patches are not officially supported, but they are widely used and can greatly improve performance in some games and programs. Games tend to be more effected by the patches, since they tend to deal more with handling graphics, but there can certainly be benefits for other sorts of applications.
The first variation of the development version is the basic WineHQ version. This is the vanilla version of WINE, and is the one the most distributions ship by default in their repositories. It doesn’t include any additional patches, and should be considered the most stable variation of the development branch.
The second variation is also fairly common, but usually isn’t shipped by default. It is the staging branch, and it includes patches that have been submitted and may be included in future mainstream releases. These patches generally work to improve graphical performance and can be enabled through the wine configuration utility. The staging branch is a favorite of gamers because of the graphical improvements that it can provide.
The last variation is Gallium Nine, and it is the least common of the three. Gallium Nine is a project to provide native DirectX 9 support on Linux through the open source Mesa drivers. If you are using Mesa for your graphics drivers, the Gallium Nine patches can provide massive performance gains in games running DirectX 9. Though Gallium Nine can be used alongside the staging patches, not all features of staging can be used along with Gallium Nine. Very few distributions package WINE with Gallium Nine, even though it is open source.