How to run Windows software in Linux: Everything you need to know

Linux is more capable than ever. With over 1000 Linux games available on Steam and a general shift towards more web-based desktop software, there’s less need for Windows than ever. After all, you can now watch Netflix on Linux without any hacks, and you can even use Microsoft Office on Linux—a web-based version of it, at least.

But, as most dedicated Linux desktop users will eventually discover, there comes a time when you just need to run a particular piece of Windows software on your Linux PC. There are quite a few ways to do so. Here’s what you need to know.

Wine

Wine is a way to run Windows software on Linux, but with no Windows required.

Wine is an open-source “Windows compatibility layer” that can run Windows programs directly on your Linux desktop. Essentially, this open-source project is attempting to re-implement enough of Windows from scratch that it can run all those Windows applications without actually needing Windows.

This is the only method here that won’t actually require a copy of Windows, but the downside is that it won’t run every application properly. You may encounter bugs or performance issues, especially if you’re using Wine to play video games. But if you’re running a popular game released a few years ago, you may find that it performs very well. Many people use Wine to play World of Warcraft on Linux, for example. You can get an idea of how an application will run and any tweaks it might require by visiting the Wine Application Database website and searching for that application.

playonlinux wine

PlayOnLinux's version of Wine, running on Ubuntu.

First, download Wine from your Linux distribution’s software repositories. Once it’s installed, you can then download .exe files for Windows applications and double-click them to run them with Wine. You can also try PlayOnLinux, a fancy interface over Wine that will help you install popular Windows programs and games.

Codeweavers also offers a commercial version of Wine, known as CrossOver Linux. You have to pay to use it, but Codeweavers tries to go out of their way to officially support popular applications (like Microsoft Office, Adobe Photoshop, and some big PC games) and ensure they work properly. Codeweavers also contributes its changes back to the main Wine project.

Virtual machines

Virtual machines are a very convenient way to run Windows software on your Linux PC. As PCs have gotten faster, virtual machines have become comparatively more lightweight.

This process involves installing a copy of Windows in a “virtual machine” program like VirtualBox, VMware, or Linux’s built-in KVM (Kernel-based Virtual Machine) solution. That copy of Windows thinks it’s running on real hardware, but it’s really running in window on your desktop. Modern virtual-machine solutions can even break Windows programs running in the virtual machine out of that window, allowing them to act like normal windows on your Linux desktop.

virtualbox on ubuntu

VirtualBox in Ubuntu Linux.

This solution is more foolproof than Wine. As you’re running those Windows applications on an actual copy of Windows, you won’t encounter bugs.

Using a virtual machine does require a full copy of Windows, however, and there is more hardware overhead because that copy of Windows has to be running alongside your primary operating system. In particular, demanding PC games that need access to your computer’s graphics card won’t perform well at all—you’re better off with Wine for those. But for productivity applications like Microsoft Office or Adobe Photoshop, this is an excellent solution.

Dual-booting

Dual-booting isn’t technically a way to run Windows software on Linux itself, but it is how many Linux users run Windows software. Rather than using it directly under Linux, you just reboot your computer, choose Windows, and boot into Microsoft’s operating system. The Windows software can then run in its native environment. Thanks to modern solid-state drives, that reboot process should be faster than ever.

install linux in dual boot

Installing Linux in a dual-boot configuration.

This is particularly ideal if you’re a PC gamer who just can’t give Windows up yet. Rather than forgoing all those Windows games, you can just reboot your computer when you want to play Windows-only games. As you’re using plain-old Windows running directly on the hardware, you won’t have to deal with any compatibility or performance headaches.

The best way to set up a dual-boot system is to install Windows first—if your computer came with Windows installed, that’s good enough. Next, install the Linux distribution of your choice and tell it to install alongside Windows. You’ll then be able to choose your preferred operating system each time you boot your computer. This Ubuntu guide to installing Linux beside Windows can help walk you through the process.

Want to stay up to date on Linux, BSD, Chrome OS, and the rest of the World Beyond Windows? Bookmark the World Beyond Windows column page or follow our RSS feed.

The best option really depends on what you're trying to do. If you need to run a single application or game that works well in Wine, Wine may be ideal. If you need to run a variety of desktop applications—like the most modern versions of Office and Photoshop, which Wine might struggle with—a virtual machine will be best. If you’re a PC gamer who still wants to play the latest Windows games, dual-booting will give you the performance you want without the headaches of Wine.

Related:

Subscribe to the Best of PCWorld Newsletter

Comments