Wine is a compatibility layer that makes it possible to run some Windows applications on non-Windows operating systems including Linux and macOS.

So naturally some folks have been trying for years to see if they could run Wine on Windows for no particularly good reason.

Up until recently it hasn’t really been possible. Now it is.

To repeat — there’s no particularly good reason to do this. But that didn’t stop David Gerard from figuring out the steps and posting them online.

So here’s the deal: Windows 10 includes an optional Windows Subsystem for Linux (WSL). It’s aimed at developers who want to use native GNU/Linux command-line tools without switching computers or booting into a different OS.

But folks have been finding ways to push the limits of WSL for just about as long as it’s been around.

Getting Wine up basically involves enabling the Windows Subsystem for Linux, installing Ubuntu from the Microsoft Store, setting the display environment variable by hand, and then installing VcXsrv in order to get an display server (so you can run Linux programs with a graphical user interface).

You can find step-by-step instructions at Gerard’s blog.

So now you can run some (but not all) Windows apps in Windows… by routing them through a Linux-based Windows compatibility layer.

Or, you know… you could just run them using Windows.

Theoretically this could open the door to running outdated 16-bit Windows apps that may no longer be supported by modern versions of the operating system. But at this point WSL only support 64-bit binaries (although the upcoming WSL 2 will support 32-bit).

Update: Gerard has figured out how to run 32-bit binaries using qemu to emulate 32-bit architecture. You can find instructions at the bottom of his blog post.

via Hacker News

Support Liliputing

Liliputing's primary sources of revenue are advertising and affiliate links (if you click the "Shop" button at the top of the page and buy something on Amazon, for example, we'll get a small commission).

But there are several ways you can support the site directly even if you're using an ad blocker* and hate online shopping.

Contribute to our Patreon campaign


Contribute via PayPal

* If you are using an ad blocker like uBlock Origin and seeing a pop-up message at the bottom of the screen, we have a guide that may help you disable it.

Subscribe to Liliputing via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 9,536 other subscribers

20 replies on “Wine on Windows lets you run Windows apps… on Windows (through Windows Subsystem for Linux)”

  1. Actually, for games that predate Directx 9 this isn’t crazy or “for no good reason.” But yeah, those would need 32 bit support, This author probably doesn’t want to run games that old, I get that, but seriously, for old games linux can be a better windows than windows sometimes. For current stuff, especially 64 bit apps, I also would scratch my head.

  2. Valve and GoG should look into this as a platform for running older Windows games on Windows 10.

    Valve in particular could adapt the SteamPlay architecture they are using on Linux for this purpose.

    However, GoG could easily make a runtime for their GoG Galaxy launcher as well.

  3. That’s just what I want Wine on Win for.. i’ve got a ton of really fun desktop games in 16bit from the Win3/Win95 era that I want to keep using, but have never been ported to 32bit or newer. Currently using DOSbox with Win3.11, but that’s kinda clunky.

    1. I don’t know if it will support full 16bit mode with the setup.

      The QEmu extension might be able to pull it off, at the expense of performance. However, those older games will still probably run plenty fast.

      If someone could port libvirt to Windows Subsystem for Linux, it would get much better performance.

      I hope Valve considers porting their SteamPlay stack to run under this setup, simply because it will mean so much more attention to getting the Wine project working with these older games.

  4. Oh finally. Now I can play games from Windows 7 or Windows XP without them crashing. Fallout 3 here I come!

  5. I wouldn’t count on this being a good solution for 16-bit programs. Dosbox is probably your best bet for those. You can run Win3.1 on it pretty easily and probably later versions with a bit more difficulty.

  6. Original poster here – I just got 32-bit working as well, and I’ve extended the original blog post.

    Still can’t get Encarta 97 to install though … maybe for someone with a longer attention span to attempt 😉

  7. Comp Sci and math do go together, hand in hand for that “wondrous;” ability to abstract away all meaning. Head in the clouds.

  8. “Theoretically this could open the door to running outdated 16-bit Windows apps that may no longer be supported by modern versions of the operating system. But at this point WSL only support 64-bit binaries (although the upcoming WSL 2 will support 32-bit).”
    Being able to run old Windows software that is no longer supported under Windows 10 could make this very useful indeed. I have software that won’t run correctly past Windows XP. It’d be nice to be able to run that on a more modern version of Windows.

      1. Which is clunky and obnoxious and you need a second Windows license to do it legally. The latest version of WSL runs Linux binaries natively, which potentially allows Wine to natively run an old Windows app that no longer works correctly in Windows 10. Particularly since Wine tends to lag behind the latest version of Windows by a fair bit, there is a decent chance your app will work correctly under Wine.

        That doesn’t mean running it under WSL and Wine won’t be clunky and obnoxious also, but it’s a potential option for solving problems if other options are not attractive.

    1. Run Window on Virtual Box on Linux, then Windows Subsystem for Linux, then wine

  9. Windows Os within linux os within windows os within your computer. Back to square 1…

    1. Obviously the next step is boot Virtualbox for Windows on WINE, emulate a FreeBSD machine with it and run MAME on that.

    2. One big function is that this can get older applications running that require APIs that were removed in Windows 10.

Comments are closed.