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://learn.microsoft.com/en-us/virtualization/windowscont...
WinApps needs a Windows RDP server to work. Most of the functionality doesn't care where that Windows RDP server is actually running as long as its FreeRDP client can connect to it. The container or libvirt VM options are just ways to accomplish that via virtualization.
I imagine the container part makes it easier to automate QEMU virtualization using bash scripting without worrying about distribution specific differences in the environment. These kinds of scripts become fairly ossified to their environment. Making them run consistently on different Linux distributions is its own adventure unrelated to installing and running Windows, so the containerization eliminates the need for a lot more bash scripting to account for those differences.
The container's bash scripts download the Windows installer ISOs and run them in an unattended mode inside a QEMU VM. The unattended installation is configured to skip activation:
- https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d...
- https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d...
- https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d...
Once the container is running, WinApps configures RDP via some scripts and registry settings exposed into the container via a volume so the container's scripts can copy and run them in the Windows VM:
- https://github.com/winapps-org/winapps/blob/b4766336903d0cbe...
- https://github.com/winapps-org/winapps/blob/main/oem/RDPApps...
You can do it all yourself too with your own libvirt VM, but it's just more involved:
- https://github.com/winapps-org/winapps/blob/main/docs/libvir...
I haven't seen any of this before, but I think it's a pretty clever use of scripting and containers on top of some fairly mature but hard to use pieces of software.
That could have changed by now.
> 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...
They don't however 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. The EU could legislate in various ways that would mean MS had to stop doing so, but they haven't yet and there's no aspect of general contracts law currently that prevents it.
One could argue that adding ads after some time from a system putchased without ads throuh updates is a defect that has been hidden at purchase time.
I'd love to be proven wrong about this, because I'm not blowing smoke up your ass I really do agree with you in that I wish MS could and would be sued over this, and lose, and have to stop making Windows shit like this. But I'm fairly confident that the only possibility would be for EU (or individual nations) to write new legislation addressing it.
It just doesn’t stop corporations from using them as a scare tactic.
(Friendly reminder that legality, once again, ≠ morality. Victimless crimes can be illegal, and Enron fucking shit up and filing bankruptcy can be legal.)
This is an ethics question, not a phrasing question.
Open-source Windows and Office activator featuring HWID, Ohook, TSforge, and Online KMS activation methods, along with advanced troubleshooting.
Microsoft may absolutely care if you use this at work (even by accident, by bringing your personal machine to the office) since that's where they can collect a decent amount of money for a license breach.
IANA (iamnotamerican) so cannot really confirm except for 2nd hand knowledge, but in my european country every company I've been around in just uses pirated everything.
Also this is a tool that breaches several agreements and laws, including the particulary nasty one of DMCA (breaking digital locks) if anything this is the one thing microsoft should care about rather than individual users breaking said license.
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
It's a license, not a cop.
https://dev.azure.com/massgrave/Microsoft-Activation-Scripts......
I'm wondering when it changed? (or perhaps I missed something back then)
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.
Even more humorous is the fact they decided to repeat this blunder under every single icon instead of neatly below the table.
That's not what's happening here. According to wikipedia it's public domain because:
>This logo image consists only of simple geometric shapes or text. It does not meet the threshold of originality needed for copyright protection, and is therefore in the public domain. Although it is free of copyright restrictions, this image may still be subject to other restrictions. See WP:PD § Fonts and typefaces or Template talk:PD-textlogo for more information.
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.
This is the last holdout to get my children on Linux.
Have this problem with my brother and nephew, would love to get the lad on Linux, but this is a real obstacle.
This popped into my head before I had a second to do a double take.
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.
Did something change?
- https://www.intel.com/content/www/us/en/support/articles/000... - https://github.com/strongtz/i915-sriov-dkms
MS Office and most popular multiplayer games are the 2 biggest hurdles for Linux adoption at the moment.
Before AppVolumes got bought and became VMware App Volumes, there was Softricity (which became Microsoft App-V).. the app was actually a thin client to talk to a terminal server running the app in a container on a server. Office "installs" in 1 second because it's already "installed" on the app server. The next iteration was AppVolumes streams already installed apps like "Linux snaps" on-demand for Windows to do away with the separate terminal server.
She is not a power user. Working inside a container running Windows just to display MS Word introduces complexity. separate file systems, etc. Sometimes the abstraction breaks, and you "fall out" of the app and end up staring at a Windows environment. It is very confusing for a layperson. On top of that, the RAM overhead was significant for her older laptop.
She is a kindergarten teacher. The last thing she can use is friction on her laptop.
We didn't try LibreOffice. I'm familiar with it, but the learning curve/transition is just too much friction. They also share a lot of documents with colleagues. I don't know the current state of compatibility between MS Office and LibreOffice, but I recall layouts breaking regularly. She also has a library of templates originally created in MS Office.
It’s been 4 years since I even took a good look at it.
I haven't used Wine directly in years, only indirectly through 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.
SteamVR for Linux requires DRM leasing to function and many Linux distros, well... window managers/compositors do not support this. But yes it can work.
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.
On a professional level the online office 365 web apps are enough for 99% users. My comoany do not even bother giving us licenses for the desktop apps so linux and windows users are on equal term really.
Games work great in Proton. Valve has gone all-in on Linux and I suspect before terribly long we'll see more stuff that's SteamOS native, with a compatibility layer for the people who are still using Windows.
I would suspect now that most people either play games which will mostly work okay from Steam, or use stuff that just works in a browser (and I'm kind of lumping Electron apps in with that). Then there are things that are never going to work all that well in Wine or have a native Linux port but which might be worth looking into something else for, like switching from Premiere to Resolve for video editing.
I did the switch 2 decades ago and except for my annual 3 weeks of gaming, I never use wine nor do I use or feel the need for a win VM.
Someone stomp me down and tell me I'm wrong, please.
https://learn.microsoft.com/en-us/virtualization/windowscont...
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.
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.
(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)
Remote desktop protocols prefer lossless compression to achieve pixel-perfect rendering, at the expense of framerate/latency.
RDP is unique in that it's not just streaming, but integrates with Windows' GUI stack to actually offload compositing to the client. This however works less and less well with web and Electron apps which do not use native OS widgets.
If I connect remotely from a 2 monitor setup, disconnect and re-connect from my laptop with just a single display, it all magically works. Everything readjusts automatically. I don't know of any other remote desktop protocol/tool that does this so well.
There's probably a cool and snappy acroynm you could use, like Virtual Interface (with nearly) No Overheard, or "Vino".
I know that RDP doesn’t work for gaming, but for anything else (even for CAD), it’s the best thing barring direct access to the machine (or, Parsec).
The overhead difference is like memcpy vs a very fast SQL database.
Willing to chat origin?
A lot of claims were also made about how Tauri is magically more performant than Electron apps and feels like a native app, but not only is this not true, on some platforms like Linux, Tauri apps are actually slower than Electron because the system webview it uses (generally WebKitGTK) is often slower and less optimised than the Chromium build that Electron ships with[2].
There's a bunch more claims due to it being "Rust" and all the memes that comes with that territory, but all that is basically irrelevant since your "app" is basically shitty javascript in the end. It's like putting lipstick and dressing up a pig, doesn't change the fact that it's still a pig.
[1] https://github.com/orgs/tauri-apps/discussions/3162
[2] https://www.reddit.com/r/tauri/comments/1kg5zb8/will_tauri_f...
- All the work is done in my high performance backend, where I joyfully optimise my hot loops to the assembly level. The web view is a thin layer on top.
- HTML and CSS is a joy to work with in comparison to many UI toolkits. LLMs are better at supporting a web stack.
- The UI zooms/scales, and is accessible with screen readers (looking at you, imgui).
- Cross platform with low effort.
IMO you have to be extremely careful not to pull in a whole frontend stack. Stay as vanilla as possible, maybe alpine.js or tailwind, and I've got hot reload set up so the developer productivity loop is tight when editing the view.
How would you reccomend someone discover/decide is faster to learn/learn/implement existing solutions?
I'm asking because I'm currently in my "cambrian explosion" phase of homelabbing, so implementing that loop for myself personally will pay dividends.
at some point in the future, Your OS wouldnt matters because all OS is reaching feature parity
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?
So more accurately, it's Windows in a VM, and the VM host running in a container.
Just no cross Kernel Linux on Windows (Unless passing over WSL) or Windows On Linux (Unless you virtualize in other ways and use that)
https://hub.docker.com/r/microsoft/windows#:~:text=How%20to%...
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
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
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.
https://i.postimg.cc/hG4g8pjp/tgit.png
Which gives you basically everything you could ever possibly want. My main use cases for it vs a terminal interface are:
1. When you commit, you get this:
https://i.postimg.cc/90YJBtz1/boaty.png
Clicking the files brings up a diff, which makes pre commit reviews extremely easy. Its a lot faster to add files via an interface like this, rather than using a cli
2. The graphical log feature is pretty indispensable for complex projects. Eg check out this:
https://i.postimg.cc/qRb76Wxj/godot-mergy.png
This is much nicer than trying to do grok this through the cli for me. Reverting commits, cherrypicking, merges, splicing the history, seeing all the available branches, keeping track of orphaned commits etc, is all super easy
3. If I have to pick between not remembering the CLI commands off the top of my head, and having to memorise and alias a whole bunch of commands to be able to use git fully, I'll pick the former every day. Its the same reason I use an IDE
I wouldn't object to it being a standalone tool, but the nice thing about it being on the context menu is that it doesn't intrude when you don't need it
Also if you don't want to use an IDE Gnome's file manager nautilus supports scripts available on right click. This would allows you to run git commands from the file manager , show the information you need using [YAD](https://yad-guide.ingk.se/#_introduction)
Ideally I'd like to avoid having to reimplement the whole thing from scratch using ad-hoc scripts
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?
X Windows server is the part that runs on the client.
Hummingbird nowadays has a different name,
https://www.rocketsoftware.com/en-us/products/remote-access/...
There are also other options like X Win32,
Since WSL became a thing I stopped using this method since getting a "native" Linux terminal through Windows was enough for me for most things.
Although now that Windows 10 is not receiving updates and my hardware can't run Windows 11, and RAM prices alone cost almost as much as my entire computer did 10 years ago I'm going to be switching to native Linux and not look back, even if it means losing certain video editing capabilities and certain games.
Then my kids can stop complaining and I can stop worrying about supporting Windows. They are happy as clams with Roblox and Minecraft on Ubuntu, and that makes me happy.
I don't see anything mentioned in the issues/discussions nor on the upstream project.
What is the threshold where you are basically running Windows, and you have Linux installed just for some internet vanity?
Play games? Run Windows games with Wine/Proton Coding? VSCode App? This thing...
But at least I don't own Windows, sheej!
I'd love to just run windows if there was a version that didn't have this.
Here's what I'd like to see for GPOS software in general. (Win, Linux, Mac, any new ones we get) Minimal or no ABI barriers. You compile software for a given CPU architecture, and it just works on all suitable operating systems. No barriers; no friction. There are some OS specific things people use like file systems, threads, and allocators, but these are usually somewhat general, and are abstracted over by the programming language's standard libraries.
This is a worthwhile goal, and technically is feasible. Within Windows, this generally works pretty well; I think a reasonable goal is to get this working within Linux as a whole. Then cross Win/Linux, and maybe even Mac. OSs should be making our lives easier; not putting up barriers. Especially with the Linux free/OSS mindset. I wish UX and Compatibility were part of the ethos too; I think it's relevant.
My setup used a qemu vm with gpu passthrough. I set the correct group policy settings to force the RDP host to use the vfio gpu.
Compared to looking glass (looking-glass.io), winapps was unusably slow. Beyond that, I experienced app-breaking UI glitches in the Adobe CC tools.
Love the concept, but in my experience this needs some more time to bake.
andai•2mo ago
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 :)
userbinator•2mo ago
This is incidentally how Windows 386-9x ran DOS applications - in a VM, using V86 mode.
tommica•2mo ago
Oh that is cool! Somehow I imagined that virtualization is more of a "modern" concept, but clearly that is naive thinking.
pfix•2mo ago
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.
burnt-resistor•2mo ago
VAX/VMS was originally virtualization of the PDP-11. Windows NT benefited from the loss of MICA/PRISM to virtualize/isolate what was once messy, unreliable, single-tasking, cooperative Windows 3.1/9x to be more isolated, reliable, concurrent, and parallel processing where the fundamental unit of isolated granular execution was the process like UNIX.
DOS mode "VM"s run within Windows 3.x/9x/NT aren't really isolated VMs because they can't replace the DPMI server or launch another instance of (386enh mode) Windows. All they do is semi-isolate real mode and DPMI client apps somewhat to allow multiple instances of them. They can still do bad things™ and don't have full control of the "system" in the way a real system, emulator, or hardware-assisted type-1 or type-2 hypervisor does. They're "virtual" in the way DesqView was "virtual".
Consumerized enterprise virtualization happened in the PC world with VMware Workstation->GSX->Server->ESX->ESXi/vCenter in relatively quick succession around 2001-2005. Xen popped up about the time of ESX (pre-ESXi).
IBM keeps quietly churning out z-based mainframe processors like the z17. Software from the 60's and 70's still runs because they don't do the incompatibility churn that's slowly being more and more adopted in the past 15 years to break everything, all the time, so that nothing "old" that had a long-lasting standard or compatibility ABI that was working will work now. I'm sure it's a lot of work, but churn is also work and especially when it breaks N users. Also, I don't think many folks from the PC-based enterprise server world appreciate the reliability, availability, and service features mainframes have/had.. although vMotion (moving VMs between physical machine linked to shared storage) when it came out was pretty cool.
immibis•2mo ago
Krutonium•2mo ago