How do I run Windows software on Linux?

Ready to take the plunge into Linux, but not quite ready to give up your favorite applications? There may be a solution.
Register or Login to like

MartinHarry on Pixabay. CC0.

So you're ready to make the jump to Linux, but you've still got a handful of programs you're just not quite ready to part with. Can you still run your Windows software on Linux?

The answer might be yes, but, with some caveats.

I want to draw an important distinction before we move on. It might seem obvious, but it bears repeating: Running a program on Linux does not magically make it open source, any more than running the program on Windows makes it closed source.


While in an ideal world we'd all only be running open source software on top of open source operating systems, that's not an option for many people today, and so bridging the gap between the open and the proprietary is an important step in bringing new users over toward a more open world.

And even when programs are free and open source, that doesn't mean that someone has taken the time to port them to your preferred operating system. Maybe the software is now years or even decades old, or maybe you want a specific feature that wasn't built-in to the version released for your OS.

Whatever your reason, if you're looking to bring your Windows program to Linux, you've got a few options. Here's how I'd approach it.

Finding the Linux version

When I finally dropped my last Windows partition for Linux, one of the things that eased the transition was that much of the open source software I had already been using for years was immediately available in my Linux distro. Programs like Blender, Inkscape, GIMP, LibreOffice, FileZilla, Calibre, Audacity, VLC, and many others had already been a part of my workflow on Windows. Many were installed by default, and others just took a quick search with my package manager to find. For those used to having to find, download, and manually install binaries in Windows, Linux made getting this software even easier than it had been before.

In addition to open source software, you'll find many of your not (yet) open favorites built for Linux as well, from Chrome to Slack to Skype. For gamers, Steam installs just fine and will provide you with many of the games you had access to on Windows with no additional effort. Not just indie games, but some of the top titles both old and new. Almost half the games in my Steam library now have a native Linux port.

In short, before you try to get the Windows version working, be sure you're not missing the native Linux application.

Choosing an alternative

An alternative to your Windows program isn't always a viable choice. If you're taking a course that revolves around how to use a particular application, or you need to be able to export into a particular proprietary format that only the original program can use, or there simply isn't a viable open source program providing the same functionality, sure, finding an alternative isn't going to be your best approach.

That said, I can't tell you how many times I've heard people insist they need a particular program, when in fact all they really mean is that they need a particular functionality. Sure, if you're new to computers hadn't ever used Firefox, you might think you need Internet Explorer to be able to browse the internet, but if you're willing to see what you're missing you just might be pleasantly surprised.

I also can't tell you how often someone says they need the most expensive, industry-leading, full-featured product to do a particular task. No, you probably didn't need AutoCAD to plan that tree house, nor Photoshop just to crop a few photos. Ask yourself what you really need to do.

Open source alternatives aren't about making a 1:1 clone of another application, at least not usually. They're about providing a similar solution to the same general problem. They're not necessarily better or worse, they're just different, and might take a little time to get used to.

Using Wine

Can't find a native version for Linux, and don't want to go with an alternative? The open source project Wine is your next stop. Wine is a recursive acronym for “Wine is not an emulator” although you might be forgiven for thinking it is. Wine provides a layer of abstraction that, to a Windows executable, makes your Linux system appear like a Windows machine by recreating many of the elements of a Windows system that your programs expect.

For a lot of applications, Wine works flawlessly; you'll be hard pressed to tell that the programs weren't designed to work natively on Linux, except for the Windows-styled window borders and widgets. And it's easy to install; chances are Wine is packaged for your Linux distribution and sitting in your default repositories, ready to install just like any other program.

And it's not just for stand-alone applications. You can use the default installer for many Windows programs, and they'll be properly installed and configured to run on your Linux machine.

For gaming, Wine can be finicky. Lots of games will work just fine with the default settings, but you may have to do a little tweaking to get things working perfectly. Fortunately, there's a large community out there to support you. You also might want to check out PlayOnLinux, based on Wine, which provides an easier interface to getting up and running with many games.

Running a virtual machine

Sometimes, a compatibility layer isn't enough. Virtualization allows you to run an entire Windows operating system, applications included, on top of your Linux operating system. Popular tools for desktop virtualization include VirtualBox, Boxes, and Virtual Machine Manager. For the latter, the virtualization is actually taking places with a lower-level program, often the KVM virtualization infrastructure built directly into your Linux kernel, but with a nice user interface.

The downside of this technique is that you'll still need a Windows license, and the speed won't be quite as close to running applications natively.

While virtualization can provide surprisingly good performance in a lot of applications, it tends to struggle with graphics-intensive applications. In particular, gaming on a virtual machine is going to be a pretty miserable experience unless you take the time to configure it correctly, which can be difficult. You're best off using a technique called VGA passthrough to pass control of your video card directly to the virtual machine, but setting it up is not a beginner's task. You'll want to read instructions carefully and probably ask for some help if you're new to Linux.

Dual booting

Can't get you application running in Wine? Does virtualization not offer the performance you need? You can always dual boot with Windows, and head back to your Windows partition now and again for specialized applications.

But personally, when I'm trying to help people make the move to Linux, I tend to encourage dual booting to be a method of last resort, rather than a first choice. Why? Frankly, it's just too easy to stay in Windows once you've jumped over for one task. If you're truly interested in learning to use Linux, it's best to fully commit to the switch rather than succumb to the temptation to do thing “the old way” every time you hit a speed bump.

Once you've been using Linux for a while, chances are you'll consider having to reboot to use Windows a hindrance. And besides, there's probably a way to do whatever you wanted to do in Linux anyway, perhaps more efficiently.

So how about you? Are you running Windows software occasionally on your Linux desktop? What tips and techniques do you have to offer?

Jason Baker
Former Red Hatter. Now a consultant and aspiring entrepreneur. Map nerd, maker, and enthusiastic installer of open source desktop and self-hosted software.


I don't run Windows programs on Linux but I do run Linux programs on Windows via cygwin. I just can't manage without vi and grep. The latter is extremely useful and the W10 search is unreliable. Actually I've found the search on M$ o/s's after XP to be unreliable. I use Perl/Tk too!

I would have switched to linux a long time ago, but i am afraid that i'll miss some windows only apps required for university also don't want to spend time at trying to find solutions why some programs doesn't work while i could be learning... UEFI and sdd + hdd also complicates installation a lot. Had no luck finding a guide, too dumb to think on my own, on how to get dual boot with uefi and two disks.

Does nobody use PlayOnLinux? We mostly use it for running Windows games. So in addition to Steam that you already mentioned, you can also use PlayOnLinux to run Windows games on Linux.

I actually wrote an article for Linux gaming distros and included info about PlayOnLinux, Wine, Steam, and some gaming distros.

PlayOnLinux and Wine are great programs to run those MS programs that everyone "just have to have". I have found that if someone is asking for those types of programs it is due to not wanting to learn anything else. It is the " I don't like change" syndrome. I get that change is hard for common end users; heck even some IT professionals it is; but if they take the time to actual learn the alternative they will find it does exactly what they want and sometimes better. It's a mind thing.

I use VirtualBox to run Win 8.1. I only need it for three things that I currently cannot do in Linux. I suspect that will change with time, though. Otherwise 99% of my work is strictly done on Linux.

I use no Windows programs, period. I have found alternatives for everything I need. From Microsoft Office (LibreOffice) and Microsoft Edge (Firefox, Vivaldi...Opera's new browser)...Adobe Acrobat Reader (eVince) and of course Windows Media Player (Clementine...VLC) to things that aren't necessarily installed with Windows (Visio=VYM: V-iew Y-our M-ind/Dia). I find having to download an ".exe" file and then install it time consuming, when I can just open a Terminal and yum install...or apt-get install whatever it is I need for my Linux systems. I guess its a sign of maturing. We're spoon-fed an Operating System when we're first exposed to computers and at some point, whether its because of a software/hardware issue that you cannot resolve in the World Of Windows, to a catastrophic event that renders your Windows system useless....but eventually you yearn DEMAND more from your system and Windows will only give you "just enough" to use a PC. Whereas Linux gives you EVERYTHING you want, (and nothing you DON'T! LoL!) SO for me?...i don't need anything that comes from Redmond....sorry Microsoft, but I got burned by you once, a long time ago using Windows XP....I won't ever make that mistake again! And because Linux is forever evolving, I don't have to worry about not receiving updates for security, and patches.

I used to use Crossover (which is basically a wine wrapper) and it worked perfectly well. Especially, I used to run MS Office on Linux that way since I was forced to use it for work reasons. My experience is till around 2013; not sure how well it works any more.

I have been using linux for 4 years now and I have never felt that I should move back to windows or any other OS. There is pretty much everything in linux, for working with images I use pinta and GIMP, for office work I use Libre office and google docs can be another alternative and I think it's best when it comes to programming.
Based on my experience, never dual boot or you are going to move back to windows sooner or later, Instead find a way out in linux itself (asking community is great way to solve many problems).

"Wine is a recursive algorithm"

I'm pretty sure you mean acronym, not algorithm.

I cut my teeth on Fedora1, and haven't looked back since I nixed my XP install at around Fedora3. A lot of these issues are what I walk local folks through when I persuade any to make the switch. Reading this didn't give me much personally in the way of new info, but I can't count how many times I was nodding my head and smiling as I recalled crossing whichever chasm you were illustrating. Great read.

Great article. I rarely run software meant for other operating systems on Linux, but I do miss out on some programs because of that. This is why I created - I want to map the demand for programs on Linux, in order to convince vendors to start supporting Linux. If you want to run certain programs natively on Linux, then consider indicating that on this website!

In the meantime we'll keep using Wine and virtual machines :)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.