Three Ways To Run Windows Apps On A Linux Box

hands on If you’re thinking about switching to Linux but there are a few Windows apps you just can’t do without, you do have options… and some of them are free.

Windows 10 is staring down the barrel of Microsoft’s gun. The “End of 10” is nigh. But when Windows 10 reaches its end of its life on October 14th, there are a wealth of free options available that will run on anything going. (As the meme puts it, Windows 11 has a list of specifications it requires, but the list for Linux is “electricity.”) The snag is that many Windows users will have some app which they just can’t live without. You are not alone. You might be able to take it with you.

There are two main routes open: run a copy of real Windows in a VM, or run a tool that lets Windows programs run under Linux. Both lead to further choices: if you use a VM, what VM? And if you use a runtime, which one?

Bare Word 97 window with no toolbars or ruler, showing the Help | About screen, on an Ubuntu desktop

Word 97, with all its fripperies and frills turned off, running seamlessly on WINE 10 – click to enlarge

Virtualize that (resource) sucker

First, the VM route. This vulture does occasionally use this route, and we use VirtualBox, because it’s FOSS and it is included in most mainstream distros. The main VirtualBox hypervisor is totally free, and it comes with “Guest Additions” that run on the OSes inside VMs. Those are free as well. There is only one bit that is licensed: the VirtualBox Extension Pack, which is in the box at the top right of Oracle’s Downloads page. That can cost money if used in production, but avoid that part and you’re in the clear.

Another option is VMware – that’s been free since late 2024. It’s not open source, and we suspect that even Broadcom doesn’t know whether it will stay free, but if you’re more familiar with it, it is a possibility.

Either way, grab a Windows ISO – both 10 and 11 are free downloads from Microsoft – install it in a fresh VM and off you go. We suggest trying the LTSC IoT version, as it will still get updates for years to come.

VirtualBox will identify Windows from the ISO file and suggest 2GB of RAM and a single core. We recommend 8GB of RAM and two processor cores. We also recommend installing the guest additions for your preferred hypervisor, as that gets you handy things like accelerated graphics, cut-and-paste between host and guest, and the ability to share a folder on the host machine with the guest, which is the easiest way to get things in and out of your VM. For VirtualBox in particular, it’s also worth enabling 3D acceleration in the VM’s display settings.

Word 2003 on WINE, showing a horizontal ruler and vertical toolbars

If Word 97 is too old, or too limiting, then the last version without the Ribbon works fine too – click to enlarge

We tested both VirtualBox and VMware Workstation. We found that VMware does make the process a little easier and Windows seems to perform rather more snappily. Other desktop hypervisors are also available, of course: if you use GNOME, then there’s GNOME Boxes, for instance.

This is where a key drawback of the VM route rises into view: with a VM, you need to dedicate enough of your resources to the VM to run that OS reasonably well – as well as whatever your host OS needs. So a modern Linux really will want at least 8 GB of RAM to itself, and if Windows wants 8 GB as well, that means 16 GB in total. The same goes for disk space, but CPU cores, perhaps oddly, are less critical. If you will run a VM all the time, you will need a well-specified host PC – or great patience.

There are some caveats. If your app is something that directly accesses the hardware, then a VM may not work well enough. At best, if it’s something that talks to an external device over USB, like say iTunes for Windows or its modern replacements with an Apple tablet – then you’ll have some fiddly extra work to do. For instance, you might have to disconnect the device from the host OS, and connect its port directly to the VM.

And, of course, you need a license for your guest Windows OS. Even if the machine has a Windows license in its firmware, which many UEFI machines will have and which you can easily extract with Nirsoft’s Produkey, a VM can’t see the real machine’s real firmware: it only gets the emulated firmware of the VM. You can try extracting the key and feeding it to the VM, but this is unlikely to work. You’ll either have to buy another copy, or enter the murky world of third-party activators. Ahaa, Jim lad!.

If the apps you need are not hampered by these limitations, then this approach works well and offers the best compatibility. The price, though, is poor integration. Effectively, your Windows apps are running inside an emulator, and you can’t easily open files on the host machine or vice versa.

The desktop version of VMware has some additional tweaks to try to improve integration, but it’s not great. There is a FOSS project called WinApps which conceals a Windows VM running on the Linux kernel’s built-in hypervisor, and exports individual apps over Microsoft’s RDP. The aim is to improve integration. We’re working on a standalone article on this.

Dual boot, or, duel of the OSes

A big drawback of the VM approach is that a virtual machine is, well, virtual. It’s a fancy hardware-assisted software emulator. Your VM can’t directly use your host graphics card: it drives an emulated, virtual one. VMs are not a good route for high performance, and this is not a great way to run games. If you want Windows games, then we suggest you dual-boot. We described how to do that in part 2 of The Register Guide to Linux, although it was long enough ago we described how to share a PC with Windows 7. (Which you still can do if you so desire, of course.) More recently, we shared some tips on how to clean up Windows before dual-booting.

Turn to WINE instead

Which leads us to the other option: WINE. As we said back when WINE 7.0 appeared, it took 18 years for WINE to get to version 1.0 and then another nine years to get to version 2.0 – but ever since WINE 3 in 2018, there’s been a new major version roughly once a year. We have covered WINE 8, WINE 9 and WINE 10.

The name of WINE sounds self-contradictory: it stands for WINE Is Not an Emulator. It isn’t: it’s a translation layer. WINE attempts to intercept the calls that a Windows program makes to the Windows OS and translate them to the closest equivalent Linux calls. This is a complicated and risky undertaking, which is partly why, after over 30 years, it’s now at the point where quite a few popular programs work to a useful degree.

WINE is also not a magic potion. It does work for some programs on some setups, but it also fails quite often. There are many Windows programs and tools that will probably never work, or not work well enough to use. There are many variables and factors involved, and as an example, on the Reg FOSS desk’s actual, er, desk, we have a laptop with Ubuntu 22.04 which can happily run both Word 97 and Word 2003 under WINE, and another with Ubuntu 24.04 which won’t install either version. It’s complicated.

As even in the FOSS world, this means that there are multiple options to explore.

Use the stock version

Most distros include WINE in their repositories. You can just run sudo apt install wine or your distro’s equivalent, wait a short time, then reboot (for good measure — it’s not essential) and try it. If you have Flatpak support, it’s also on Flathub.

With WINE installed, Linux can run Windows binaries. So, for instance, you could grab an ISO file of Office 97 from the Internet Archive, mount it, change to Linux’s folder for that volume, and just run wine setup.exe. In theory, anyway. WINE is much more capable than it once was, and a lot of applications will work with it, but there are limitations. Programs intended to extend the functionality of the Windows OS, such as cloud drive clients (OneDrive, Dropbox, Google Drive, and so on) typically won’t work. Nor will things like antivirus programs, not that you need them. There’s no Windows Store, so there’s no way to install or run apps distributed that way.

Windows 10 and the free OneNote client, inside the free VMware Workstation, on Ubuntu

Windows 10 and the free OneNote client, inside the free VMware Workstation, on Ubuntu – click to enlarge

If this nuts-and-bolts approach seems a little too techie, there are several alternative methods that aim to make this easier.

Try a bottle instead

Bottles is a wrapper around WINE which simplifies installing Windows apps as well as keeping them isolated from one another. It offers separate types of bottle for productivity apps and for gaming, as well as a custom type with more knobs to twiddle. Bottles is a native GNOME app: it looks a little out of place on other desktops, and at least at present, it’s only available on Flathub.

One of the strengths of Bottles is that it also includes extra tools for getting games working, which add in additional layers of FOSS tools to provide extended support for 3D acceleration and so on.

We mention Bottles because it is an option, especially if you find the command-line approach of raw unassisted WINE to be daunting. However, in our testing, we haven’t found it to be a significant improvement: if plain unassisted WINE won’t run your program, then we haven’t found a single instance where Bottles can.

Try a fresher vintage

If the version of WINE included in your distro can’t run the app you need, it’s quite easy to get a newer version direct from the developers. The WineHQ downloads page has ready-made packages for Ubuntu, Debian, Fedora and macOS, along with instructions on how to install them. It also has instructions for openSUSE, Slackware, and FreeBSD.

A few years ago, this was definitely worth a try, but as we have written before, WINE has matured substantially in recent releases. If you use a distribution with a slow-moving release cycle, such as Debian or Ubuntu LTS releases, it’s worth a try, but it’s less useful than it was even six or seven years ago.

If you can afford it, buy the good stuff

Along with the simple command-line driven FOSS edition of WINE, there’s also a paid-for premium product: Codeweavers Crossover. There are versions for the Debian/Ubuntu family and the Fedora/Red Hat family, as well as a binary version that will run on most other distros. And there are versions for macOS, and for ChromeOS if you have a high-end ChromeBook.

The Register has been covering Codeweavers CrossOver since version 1.0 more than 23 years ago, including reviewing it on Mac OS X, the release of CrossOver 10, the Android version, and more recently, when it added support for Apple Silicon Macs.

There’s a free evaluation version. This vulture is not too proud to admit that he used the evaluation version to finish an important freelance project, just under a decade ago. CrossOver does what it says on the tin, and it’s much less hassle than raw-dogging WINE itself. Of course, the snag is that paying for software is too much for many FOSS fundies to swallow – but if you need a Windows app that badly, this may be worth it. For instance, its compatibility database gives a five-star rating to Adobe Photoshop CS 6 and says “Runs great”.

Never mind the techie stuff, I just want to play

If you’re not interested in boring businessy type stuff but want Windows games, then there are several tools which aim to get you gaming on Linux.

One of the first was PlayOnLinux, but the project seems dormant now. The current version 4.4 came out in 2020, some time after version 5 reached alpha test in 2019 — and then stalled. There hasn’t been a new release in over five years.

A newer replacement is Lutris, which is included in many distros and can be added to most others. It supports WINE but also multiple other emulators and similar tools to get things running with the minimum of hassle.

Another tool is Valve’s Proton, which combines WINE and other tools. Proton, though, isn’t available on its own: it is part of the Steam client, Valve’s subscription service. The only way to use Proton is to install the Steam client and sign in. There is a Steam repository with packages for the latest Ubuntu LTS release, but the recommended route is to use your distribution’s package app store. The Steam client is in Canonical’s Snap store and also in Flathub.

Summary

There are three primary options available to run Windows apps on a Linux computer.

If you only need them occasionally and don’t need to do anything else at the same time, keep both Windows and Linux installed on your machine and dual boot. This offers 100 per cent perfect compatibility, 100 per cent performance, full hardware access and no hindrances at all. It’s also very doable on Intel-based Macs.

For the best integration and performance, try running the app under WINE – either one of the free editions, or if that doesn’t work and you want to avoid hassle, buy CodeWeavers CrossOver. If you just need a few paid apps, then check to see if they have good ratings in CodeWeaver’s compatibility database. If so, this is the least-hassle option – and with either free WINE or paid CrossOver, you save the cost of a Windows license.

If you have a fairly high-end computer, and the apps you need both won’t run on WINE but also don’t need fancy 3D hardware or anything, then run Windows in a VM and run the apps in that. You may need to buy an additional Windows license, though. Now that VMware is effectively freeware, this might be a more appealing option.

You do have plenty of options. And the best news of all is that none of these exclude any of the others. You can have WINE installed for one app, and dual-boot for some intensive games, and run Windows in a VM for some less-demanding ones, all at the same time. ®


Original Source


A considerable amount of time and effort goes into maintaining this website, creating backend automation and creating new features and content for you to make actionable intelligence decisions. Everyone that supports the site helps enable new functionality.

If you like the site, please support us on “Patreon” or “Buy Me A Coffee” using the buttons below

To keep up to date follow us on the below channels.