It's funny because I remember in 2014 before WSL, certain hypervisors like VMWare Player had the ability to run Linux apps in Windows using "seamless" mode allowing Linux apps to be seamlessly blended in as regular Windows windows, complete with window decorations, alt tab, shortcuts, etc.. It worked well for what it did, I ran Sublime Text 2 back then in that way and other tools.
This looks like an evolution of that, but in reverse.
I wonder what the performance is like. Has anyone tried it on CPU / GPU intensive apps like video editing tools?
This system works by launching an official Windows image in Docker and then making an RDP connection to it. There are a couple of others too now like WinBoat
What all of them avoid mentioning is that the images were intended by Microsoft for test and development purposes on Windows and the license clearly states you need a valid Windows license to use them: https://hub.docker.com/r/microsoft/windows#license
I wonder if Microsoft will take some action to enforce this if these projects become popular.
Edit: This comment is incorrect, see below comment from
doctorpangloss
> By accepting this
agreement and using the software you agree that Microsoft may collect, use, and disclose
the information as described in the Microsoft Privacy Statement [...]
There's a couple of terms in contract law, like fairness of obligations, unconscionability, disproportionate penalty, excessive advantage, etc. that the US seems to have forgotten. In the EU and other countries such... aberrations are struck down and unenforceable. People are still scared silly, but the ones that protest are usually left alone.
Those aspects of contract law mean that if MS included "you owe us your first born child" that clause wouldn't be valid, but they don't mean that MS choosing to put adverts all over Windows is illegal, or a breach of the contract, just because users would prefer the OS be ad-free.
Umm actually, you did. You also waived off the right to name your firstborn, and if you disagree, you’ve waived off your right to anything except arbitration. Sorry, I didn’t make the rules.
(Friendly reminder that legality, once again, ≠ morality. Victimless crimes can be illegal, and Enron fucking shit up and filing bankruptcy can be legal.)
I don't get it. Is it a VM in a container? Skimming https://hub.docker.com/r/microsoft/windows I would have interpreted that as a native Windows container, which I vaguely recall being a thing, but that would require an NT host, not Linux.
I remember Windows containers have two modes of operation as a Hyper-V VM and some sort of container-like isolation. I think the reason is that they had to quickly ship "containers" initially and that Windows does not have a kernel backwards compatibility the same way Linux does
It is a container in a VM. I'm not even sure what, if anything, the container achieves. But their installation instructions are pretty clear that you start by creating a Windows VM.
no, this system does not work by launching the windows containers on windows mcr.microsoft.com/windows images
it works by using dockurr, which is a great project but a worse way to distribute windows in the sense that it gets installed instead of downloaded and executed
I see it's time for the bimonthly reinvention of VirtualBox and VMWare's seamless modes from a few faceless techies on GitHub and designed for people who can't be bothered to use WINE or VirtualBox.
And unfortunately it has become the norm in open-source to push out shiny-looking projects with pretty logos and UX but shoddy underlying technology and deceptive/overstated claims (looking at you Tauri).
Thing thing uses RDP for communication which was designed for remotely administering servers over low speed networks.
VirtualBox in contrast integrates at the driver level, and allows you to share the underlying GPU buffers, giving you a native experience that works for things like games or heavy apps. It integrates the Linux filesystem on a driver level as well.
Nit: RDP’s roots are more in multi-user windows like Citrix Metaframe than in remote administration. I’ve found it to perform better than the alternatives (remote X11, VNC, Chrome Remote Desktop) for remote GUIs. Nomachine is the only alternative that was close to its performance.
(And before somebody jumps in to correct me - in ancient times X11 performed quite well over the network but modern Linux GUI apps are no longer designed to minimise X11 network traffic)
Except these seamless modes have been broken for many years. Also using a containerized Windows means one doesn't have to fiddle with the insane Windows 11 setup process and TPM issues.
Bit of a mixed bag for me. There are a lot of things that work remarkably well, but I have some issues with GPU performance (Cyberpunk 2077 just doesn't run well on Linux for me, despite running great on Windows on the same PC, and GPU-heavy apps like Insta360 Studio and Topaz Denoise run excruciatingly slow or not at all) and some things just don't work (my audio VST plugins work alright, albeit with some bugs about window position handling, but I can't get some of the licensing apps to work under WINE).
Just anecdata, but the few things I use via Wine have all worked fine. I use yabridge so I can use windows VSTs in my Linux DAW.
Games (if they don't use kernel level anti cheat systems) are all flawless with Proton.
But, I honestly don't have a need to use much other windows only software. Almost everything I need to use has Linux versions, or alternatives that fit my needs.
SteamVR works ok, but last I checked it still performs worse than on Windows. If you are feeling adventurous, you can try a FOSS VR stack [1]. It works for Steam games running Proton and when it works it provides better performance. I had some troubles with it, sometimes you need to switch versions or you get some artifacts in games, or some games just don't work at all. Good thing is, switching between FOSS and SteamVR is as simple as launching either first before starting the VR game in Steam.
I guess the Linux VR stack might get a bit of love from Valve for the Steam Frame, so things might improve in the near future.
Does anyone know if its possible to get shell integration working?
The sole app keeping me on windows is tortoisegit: you right click, and get a bunch of git commands on your context menu. If there was any way to get this running in linux, I'd swap
How good is it in practice? I've found windows VMs under a Linux host to be frustrating to use, and get poor performances no matter how much resources I throw at it. The clock keeps getting messed up all the time. UI is sluggish.
I now use a dedicated windows laptop in RDP and it is such a better experience better than a VM.
You absolutely need to pass through a GPU so that DWM.exe is properly accelerated; otherwise, it falls back to the software-accelerated WARP and the performance tanks to ~15 FPS.
It doesn't need to be anything powerful; if you have an idle integrated card that you aren't using on the Linux host because you only interact with it through a Web server or SSH (for instance, Proxmox), then pass that through. It's what I do on my home lab which runs a 9950X.
Before people raise pitchforks against Linux, this applies there, too, for the record: at work I have a Linux instance just to myself that by any other metric is ridiculously powerful: 64-core Epyc, 96 GB memory, but no iGPU, so remote desktop works very poorly.
It's pretty good. They use XfreeRDP to remote into the container and display individual windows. This somehow performs a lot better than the GPU emulations of VirtualBox or VMware. I guess Microsoft put some effort into optimizing RDP for Terminal Server applications.
Thought "isn't that just Wine" but no! They are virtualizing it! And integrating them seamlessly with Linux desktop somehow!
Looks pretty cool. I remember playing with something similar in Virtualbox, it had a seamless mode too. It was a bit janky, and I think they removed it recently.
I used it in the old days, to have MSN messenger on Ubuntu :)
A form of virtualization was first demonstrated with IBM's CP-40 research system in 1967, then distributed via open source in CP/CMS in 1967–1972, and re-implemented in IBM's VM family from 1972 to the present. Each CP/CMS user was provided a simulated, stand-alone computer.
I'm kind of surprised you can "run Windows" in a Docker container at all. Isn't the fundamental restriction of Docker that all containers share the same (linux) kernel? Is there a way for docker to inject a "translation layer" somehow that makes it look like an NT kernel for the Windows processes?
She only uses that laptop for MS Office. She did actually use the browser version for a few months, but even that is a significant downgrade compared to native apps.
MS Office and most popular multiplayer games are the 2 biggest hurdles for Linux adoption at the moment.
Trying to pull mcr.microsoft.com/windows:ltsc2019...
Error: choosing an image from manifest list docker://mcr.microsoft.com/windows:ltsc2019: no image found in manifest list for architecture amd64, variant "", OS linux
This is cool, When i looked at this i thought it was just WinBoat, Turn's out, it's not
But of course there isn't a way to run it at the same performance as if windows was installed as the main OS. You would always need some kind of virtualization. Anyways, This is a very cool project. Good luck!
Probably works the same as any other container that needs such acceleration (plex, CUDA) just pass the device over and the CAPs. There are guides online. Whether or not the windows in a container will use it idk.
I would be looking for a solution to run Minecraft official launcher in Linux. It is heavily integrated with Windows extras such as the Microsoft Store.
This is the last holdout to get my children on Linux.
The OS matters, because if it belongs to a mega-corporation, it serves its goals, not yours. Examples: Windows spying on users, iOS not allowing 3rd-party apps without you providing all your private data to Apple.
I've had mixed results with this, recent versions of Adobe in particular gave me trouble.
I've been meaning to try WinBoat, but it's based on the same underlying technology (docker+RDP) so I'm guessing I'll hit the same bugs. I was thinking maybe i could alter the code to launch a different RDP client instead of the default.
Still, if you just need Office, it's a much more integrated setup than you can easily achieve with VMs.
It's funny because I remember in 2014 before WSL, certain hypervisors like VMWare Player had the ability to run Linux apps in Windows using "seamless" mode allowing Linux apps to be seamlessly blended in as regular Windows windows, complete with window decorations, alt tab, shortcuts, etc.. It worked well for what it did, I ran Sublime Text 2 back then in that way and other tools.
This looks like an evolution of that, but in reverse.
I wonder what the performance is like. Has anyone tried it on CPU / GPU intensive apps like video editing tools?
This system works by launching an official Windows image in Docker and then making an RDP connection to it. There are a couple of others too now like WinBoat
What all of them avoid mentioning is that the images were intended by Microsoft for test and development purposes on Windows and the license clearly states you need a valid Windows license to use them: https://hub.docker.com/r/microsoft/windows#license
I wonder if Microsoft will take some action to enforce this if these projects become popular.
Edit: This comment is incorrect, see below comment from doctorpangloss
https://get.activated.win wouldn't be online if microsoft cared.
what is this?
massgrave.dev
Most laptops have included Windows 10 or 11 licenses, which are valid for this use
Last time i checked a Windows 10 and 11 license does not permit running Windows in a virtualized environment.
That could have changed by now.
Last time I checked I did not agree to be bombarded with ads and have all my data tracked after paying 100+ for a piece of software...
You kinda did...
> By accepting this agreement and using the software you agree that Microsoft may collect, use, and disclose the information as described in the Microsoft Privacy Statement [...]
Doesn't make it okay, just legal
https://www.microsoft.com/content/dam/microsoft/usetm/docume...
There's a couple of terms in contract law, like fairness of obligations, unconscionability, disproportionate penalty, excessive advantage, etc. that the US seems to have forgotten. In the EU and other countries such... aberrations are struck down and unenforceable. People are still scared silly, but the ones that protest are usually left alone.
Those aspects of contract law mean that if MS included "you owe us your first born child" that clause wouldn't be valid, but they don't mean that MS choosing to put adverts all over Windows is illegal, or a breach of the contract, just because users would prefer the OS be ad-free.
Umm actually, you did. You also waived off the right to name your firstborn, and if you disagree, you’ve waived off your right to anything except arbitration. Sorry, I didn’t make the rules.
(Friendly reminder that legality, once again, ≠ morality. Victimless crimes can be illegal, and Enron fucking shit up and filing bankruptcy can be legal.)
I don't get it. Is it a VM in a container? Skimming https://hub.docker.com/r/microsoft/windows I would have interpreted that as a native Windows container, which I vaguely recall being a thing, but that would require an NT host, not Linux.
I remember Windows containers have two modes of operation as a Hyper-V VM and some sort of container-like isolation. I think the reason is that they had to quickly ship "containers" initially and that Windows does not have a kernel backwards compatibility the same way Linux does
https://learn.microsoft.com/en-us/virtualization/windowscont...
It is a container in a VM. I'm not even sure what, if anything, the container achieves. But their installation instructions are pretty clear that you start by creating a Windows VM.
no, this system does not work by launching the windows containers on windows mcr.microsoft.com/windows images
it works by using dockurr, which is a great project but a worse way to distribute windows in the sense that it gets installed instead of downloaded and executed
I see it's time for the bimonthly reinvention of VirtualBox and VMWare's seamless modes from a few faceless techies on GitHub and designed for people who can't be bothered to use WINE or VirtualBox.
And unfortunately it has become the norm in open-source to push out shiny-looking projects with pretty logos and UX but shoddy underlying technology and deceptive/overstated claims (looking at you Tauri).
Thing thing uses RDP for communication which was designed for remotely administering servers over low speed networks.
VirtualBox in contrast integrates at the driver level, and allows you to share the underlying GPU buffers, giving you a native experience that works for things like games or heavy apps. It integrates the Linux filesystem on a driver level as well.
Nit: RDP’s roots are more in multi-user windows like Citrix Metaframe than in remote administration. I’ve found it to perform better than the alternatives (remote X11, VNC, Chrome Remote Desktop) for remote GUIs. Nomachine is the only alternative that was close to its performance.
(And before somebody jumps in to correct me - in ancient times X11 performed quite well over the network but modern Linux GUI apps are no longer designed to minimise X11 network traffic)
That's just progress. Things that used to be hard become easy. Things that used to be impossible become hard.
Hard things become easy when for example it becomes feasible to connect to RDP instead of mucking about at the driver level.
It will be more reliable but less performant.
Except these seamless modes have been broken for many years. Also using a containerized Windows means one doesn't have to fiddle with the insane Windows 11 setup process and TPM issues.
For those of us who have used containerized Windows in prod, it is its on kind of hell
What is containerized Windows?
As someone who is looking to go Linux, do most windows apps work now through Wine or VirtualBox ? I know Valve did a lot of work for games.
It’s been 4 years since I even took a good look at it.
Bit of a mixed bag for me. There are a lot of things that work remarkably well, but I have some issues with GPU performance (Cyberpunk 2077 just doesn't run well on Linux for me, despite running great on Windows on the same PC, and GPU-heavy apps like Insta360 Studio and Topaz Denoise run excruciatingly slow or not at all) and some things just don't work (my audio VST plugins work alright, albeit with some bugs about window position handling, but I can't get some of the licensing apps to work under WINE).
Just anecdata, but the few things I use via Wine have all worked fine. I use yabridge so I can use windows VSTs in my Linux DAW.
Games (if they don't use kernel level anti cheat systems) are all flawless with Proton.
But, I honestly don't have a need to use much other windows only software. Almost everything I need to use has Linux versions, or alternatives that fit my needs.
About games compatibility made possible by Steam, check Proton DB : https://www.protondb.com/
Most things work great. There are some niche things that do not work so well. Example: SteamVR,Vive VR Hub, some AntiCheat for games.
SteamVR works ok, but last I checked it still performs worse than on Windows. If you are feeling adventurous, you can try a FOSS VR stack [1]. It works for Steam games running Proton and when it works it provides better performance. I had some troubles with it, sometimes you need to switch versions or you get some artifacts in games, or some games just don't work at all. Good thing is, switching between FOSS and SteamVR is as simple as launching either first before starting the VR game in Steam.
I guess the Linux VR stack might get a bit of love from Valve for the Steam Frame, so things might improve in the near future.
[1] https://lvra.gitlab.io/docs/fossvr/envision/
A lot of them do, but for almost everything there are native alternatives.
I haven't used Wine directly in years, only indirectly through Steam.
Does anyone know if its possible to get shell integration working?
The sole app keeping me on windows is tortoisegit: you right click, and get a bunch of git commands on your context menu. If there was any way to get this running in linux, I'd swap
There seem to be some git tools on Linux that integrate with some filemanagers e.g. https://flathub.org/en/apps/de.philippun1.turtle
This is something I have not heard before. Can you please explain your use case a bit more?
What commands do you run using right click? Do you strongly prefer this over a terminal window? You can have aliases if you'd like.
How good is it in practice? I've found windows VMs under a Linux host to be frustrating to use, and get poor performances no matter how much resources I throw at it. The clock keeps getting messed up all the time. UI is sluggish.
I now use a dedicated windows laptop in RDP and it is such a better experience better than a VM.
> UI is sluggish
You absolutely need to pass through a GPU so that DWM.exe is properly accelerated; otherwise, it falls back to the software-accelerated WARP and the performance tanks to ~15 FPS.
It doesn't need to be anything powerful; if you have an idle integrated card that you aren't using on the Linux host because you only interact with it through a Web server or SSH (for instance, Proxmox), then pass that through. It's what I do on my home lab which runs a 9950X.
Before people raise pitchforks against Linux, this applies there, too, for the record: at work I have a Linux instance just to myself that by any other metric is ridiculously powerful: 64-core Epyc, 96 GB memory, but no iGPU, so remote desktop works very poorly.
It's pretty good. They use XfreeRDP to remote into the container and display individual windows. This somehow performs a lot better than the GPU emulations of VirtualBox or VMware. I guess Microsoft put some effort into optimizing RDP for Terminal Server applications.
Thought "isn't that just Wine" but no! They are virtualizing it! And integrating them seamlessly with Linux desktop somehow!
Looks pretty cool. I remember playing with something similar in Virtualbox, it had a seamless mode too. It was a bit janky, and I think they removed it recently.
I used it in the old days, to have MSN messenger on Ubuntu :)
Seamless Mode didn't work for anything newer than... XP, I think, as a guest? So it makes sense they'd drop it. Fun while it lasted though!
They are virtualizing it!
This is incidentally how Windows 386-9x ran DOS applications - in a VM, using V86 mode.
> This is incidentally how Windows 386-9x ran DOS applications - in a VM, using V86 mode.
Oh that is cool! Somehow I imagined that virtualization is more of a "modern" concept, but clearly that is naive thinking.
History edit
A form of virtualization was first demonstrated with IBM's CP-40 research system in 1967, then distributed via open source in CP/CMS in 1967–1972, and re-implemented in IBM's VM family from 1972 to the present. Each CP/CMS user was provided a simulated, stand-alone computer.
Source: https://en.wikipedia.org/wiki/Virtualization
Sometimes it feels like we don't have any actual innovation in CS anymore and it's all from pre 2000s and only made mainstream starting then.
So essentially the WSL in reverse?
I'm kind of surprised you can "run Windows" in a Docker container at all. Isn't the fundamental restriction of Docker that all containers share the same (linux) kernel? Is there a way for docker to inject a "translation layer" somehow that makes it look like an NT kernel for the Windows processes?
The container runs a virtual machine using the host kernel's KVM device. Windows is then automatically installed inside said virtual machine.
https://github.com/dockur/windows
I tried this method for my wife. So she could use ms office in Linux. This isn’t an elegant solution. She’s back to windows 11. We tried…
I'm using MS Office for Work in the browser. But I just live with the shortcomings specifically in PowerPoint where I can't do connectors for example.
She only uses that laptop for MS Office. She did actually use the browser version for a few months, but even that is a significant downgrade compared to native apps.
MS Office and most popular multiplayer games are the 2 biggest hurdles for Linux adoption at the moment.
Many creators would like to abandon Windows completely, bud Adobe...
> Icon in the Public Domain.
You can't re-create an icon to circumvent trademark law.
Using icon to refer to an application is fair use.
I am not sure what's the point of having a public domain icon.
Think of the fact that nobody working on the project even considered that as a helpful warning to not use it.
Even more humorous is the fact they decided to repeat this blunder under every single icon instead of neatly below the table.
Who's re-creating an icon? I can only see links to images from Wikipedia
Does this even work?
podman run mcr.microsoft.com/windows:ltsc2019
Trying to pull mcr.microsoft.com/windows:ltsc2019...
Error: choosing an image from manifest list docker://mcr.microsoft.com/windows:ltsc2019: no image found in manifest list for architecture amd64, variant "", OS linux
This is cool, When i looked at this i thought it was just WinBoat, Turn's out, it's not But of course there isn't a way to run it at the same performance as if windows was installed as the main OS. You would always need some kind of virtualization. Anyways, This is a very cool project. Good luck!
Well it will work nicely if you have a decently modern setup I guess. But I suspect the experience on a 10+ yo laptop would not be that great.
It really whips the llamas ass ....
This popped into my head before I had a second to do a double take.
How about GPU acceleration, for e.g. Affinity?
Works on wine via vulcan/opencl
Probably works the same as any other container that needs such acceleration (plex, CUDA) just pass the device over and the CAPs. There are guides online. Whether or not the windows in a container will use it idk.
Windows is virtualised here.
Parallels coherence mode in MacOS is similar.
I would be looking for a solution to run Minecraft official launcher in Linux. It is heavily integrated with Windows extras such as the Microsoft Store.
This is the last holdout to get my children on Linux.
What is missing from the unofficial Bedrock launcher?
https://minecraft-linux.github.io/
What's missing from the launcher available on Linux? I've been using it for many years, but I have never used in on Windows.
There are two editions: Java and Bedrock. Bedrock is the one that's got Realms, which is the easy way to get servers running.
Have this problem with my brother and nephew, would love to get the lad on Linux, but this is a real obstacle.
Java edition can also use Realms. I'm playing on a realm using Linux Java edition and the official launcher now.
Ok. Can you run WSL inside of it?
Hah! Even better question is can you run it inside WSL?
Windows have wsl and linux have wine,winapps etc
at some point in the future, Your OS wouldnt matters because all OS is reaching feature parity
The OS matters, because if it belongs to a mega-corporation, it serves its goals, not yours. Examples: Windows spying on users, iOS not allowing 3rd-party apps without you providing all your private data to Apple.
I've had mixed results with this, recent versions of Adobe in particular gave me trouble.
I've been meaning to try WinBoat, but it's based on the same underlying technology (docker+RDP) so I'm guessing I'll hit the same bugs. I was thinking maybe i could alter the code to launch a different RDP client instead of the default.
Still, if you just need Office, it's a much more integrated setup than you can easily achieve with VMs.