472 comments

[ 3.2 ms ] story [ 333 ms ] thread
>> Weston is the Wayland project reference compositor and the heart of WSLg. For WSLg, we've extended the existing RDP backend of libweston to teach it how to remote applications rather than monitor/desktop. We've also added various functionality to it, such as support for multi-monitor, cut/paste, audio in/out, etc...

Did they push those changes upstream? This seems like it could be another way to run GUI apps in containers on Linux too.

You can already run GUI apps in containers using pure wayland, just bind the socket into the container.
Likewise X, if you pass it the socket (although there are caveats around everything but just X11, like audio, which have to be routed out separately)
> just bind the socket into the container

I thought Wayland relied on shared memory with the compositor to work? I could be way off though

Containers run under the same kernel, so sharing memory works the same as it does for processes generally.
This was my exact question, as much as I hate Microsoft and Windows (15 years of using linux now in my brief 32 years on the planet).... this could be the project that pushes Wayland to fruition finally. It could also significantly improve GUI support in general.

I guess getting the right thing for the wrong reasons is better than not getting them at all? I'm not a very good pragmatist.

The README mentioned that they have their changes in a separate public GitHub repo and that they plan to upstream it
Windows + WSL2 is starting to catching up with Chrome OS + crostini. How exciting.
Now someone make a Linux Subsystem for Windows GUI.
Isn't that pretty much what Wine does? Having been using Linux as my daily workstation for a year now, I've been blown away how easy it is (and generally transparent) to install and use Windows applications on Linux.
Actually, not quite. Wine is closer to what WSL1 was. The closest equivalent to "Windows Subsystem for Linux GUI" on WSL2 for Linux would just be ... running Windows in a VM, with FreeRDP doing per-app tunneling to the Linux host.

I think there's even some software for automating this somewhere out there.

>Wine is closer to what WSL1 was

Not quite. Wine just translates windows syscalls to linux ones but WSL actually reimplemented the linux api inside the NT kernel (which was designed with the ability to use multiple OS apis.)

Well, I said "closer", not an exact analogue. They're pretty close equivalents, though, as most Windows programs don't actually call syscalls directly, but link in an OS-provided DLL and call an exported symbol from it, with the userspace to kernel bits abstracted away from most user programs. Wine (mostly) re-implements those DLLs, effectively re-implementing the Win32 API (a userspace API) in Linux's userland.

(programs are allowed to call the kernel directly, though, and Wine has to handle those cases esp. for DRM/anti-cheat code in games that poke at the kernel directly, recently Linux was patched to allow userspace programs to directly handle syscalls [0][1], making Wine ... closer to a WSL1 equivalent?)

[0] https://lkml.org/lkml/2020/8/10/1323

[1] https://github.com/torvalds/linux/blob/master/include/linux/...

Neither reimplemented the other syscalls directly in the kernel. In WSL1 the NT kernel kicked Linux syscalls to an lxcore.sys driver to convert them into equivalent NT calls and objects. In WINE most things don't make direct syscalls (they make userspace Win32 calls and WINE reimplements that and many other Windows APIs in a way that calls Linux syscalls directly) but for those that do (e.g. game DRM) the Linux kernel added a SECCOMP_MODE_MMAP mode to seccomp() to trap unknown syscalls to a handler (in this case WINE) to do the same thing.
As far as I understand Wine does way, way more than that. Wine actually re-implements all Windows API's. Not syscalls, but higher level libraries like DirectX and whatnot.
For those that don't know, this will only be available in Windows 11, see https://github.com/microsoft/wslg/issues/347#issuecomment-87...
To be fair, it's also the first prerequisite on the linked page.

> WSLg is going to be generally available alongside the upcoming release of Windows. To get access to a preview of WSLg, you'll need to join the Windows Insider Program and be running a Windows 10 Insider Preview build from the beta or dev channels.

Yeah bummer. My old Windows machine won't be upgradable to Windows 11 ... interestingly I was able to install the Windows 11 preview and even get the WSL2 update with the integrated X11/GUI and it worked great. However I was notified I couldn't upgrade to official build and the only recourse was to re-install Windows 10.

I'll need to revert to one of the available X11 servers but I wiped out the old configuration and it's kinda painful to automatically set $DISPLAY and also get Norton Firewall to play along.

I have a solution for the disk/partition type/layout incompatible with upgrading to newer Windows 11 builds (but not the TPM workaround) but I haven’t gotten around to packaging it and publishing it for download on our site.
Don't think I've heard about those, what all requirements changed on the storage side there?
I don’t know if it’s what the GP was referring to but partition requirements pertaining to MBR vs GPT and specific requirements for alignment, MSR properties, and order of partitions has been locked down considerably. Annoyingly they all manifest as an opaque “this PC isn’t compatible” or similar message.
I see that those of us with a 7th gen Intel core CPU that "need not to worry because W10 will be supported for years" will immediately start missing functionality.
To be honest I’m not going to miss the annual update that messes with all my settings and tries to force a MS account on me.
You know, you will still get those.
I assume not, that we will just get security updates until it goes end of life. No more "features".
(comment deleted)
At the very least the support requirement is a soft one, not a hard one. A large portion of motherboards from that era had firmware updates to officially support Win11, and Win11 WILL work on an i7-7700k even though its not in the list. You unfortunately won't get it through Windows update and will have to install the hard way.

And if there's problems, you'll be sorry out of luck.

Pisses me off, but at least it's not a complete blocker.

According to The Verge, they may block security updates if you install manually through the ISO, so that's a no go for me: https://www.theverge.com/2021/8/28/22646035/microsoft-window...
Ok, if that's true, I'm back to raging about how absolutely ridiculous this is. Why obsolete a computer that can still run almost anything on high-ish settings @.@ Because there's 0.01% more crash or whatever....
so they can get an extra $60 out of the OEM for a new Windows license when you buy another PC
I’m speculating it was supposed to let them drop Meltdown patches. Doing so easily creates “20% performance gain over Windows 10 on same machine”. Aligns with the statement that they “block” “security” updates.

But this is clearly coming from someone who’s not actively in coding role and without consultation with developers, as some of CPUs(namely Ryzen 2k) to be supported don’t have the required but not very well debugged features(MBEC for Zen 2 - Ryzen 3k and up with luck).

I don't think 7820HQ has more resistance to Meltdown than 7700HQ. In fact TSX-NI might make it worse. Yet they allow the former but not the latter.
> I’m speculating

Was that a pun?

There is the path that that could be TRUE, and the path that that could be FALSE :p
Support doesn’t mean you get all the new features.
WHAT??????

I always thought it would be enabled on Windows 10.

WSL seriously changed the amount of work I can do from my gaming PC, but I’m not sure if that’s actually a good thing based on my productivity over the past few months.

That aside it’s terrific to see MS putting something good into Windows rather than just removing things and taking choice away from the end user.

> That aside it’s terrific to see MS putting something good into Windows rather than just removing things and taking choice away from the end user.

That's the tip of the iceberg MS want everyone to see, and point the finger at.

MS want people to stop using Linux as an alternative since they lost the battle when they attempted to kill it during the Ballmer era. The plan now is more subtle: making sure everyone using Linux will want to do that from a Windows machine, with all the implications about security and privacy, which would be non existent since any malware (or Windows itself) that for example used Windows keyboard drivers to sniff passwords while one connects say to the bank under WSL "because it's more secure" would be 100% undetectable from that Linux.

The next step will be libraries to access Windows internals and GUI from WSL, so that one can build hybrids that run only on Windows+WSL; very convenient, but unfortunately now Linux is displaced and the only way to benefit from all that software will be to run it under Windows. In the end, MS will create their own Linux distro which runs on top of Windows and will essentially kill all other non-server oriented Linux distros.

Most see WSL as a good thing; I see an elaborate, and have to admit, very clever, way to take complete control of Linux in the next years.

So the Windows Subsystem for Linux GUI (WSLg) business plan looks like this, I assume:

Step 1: get lots of devs using WSL / WSL GUI.

Step 2: Get them comfortable with flexibly using WSL GUI on Linux and Windows interchangeably

Step 3: roll out your poison pill: new Version X, offering great compatibility on Windows but bad integration with Linux; maybe Linux support is buggy or nonexistent, maybe the API doesn't mesh with Linux systems at all, maybe it has license conflicts and Linux has to do a rewrite to be FOSS or write a hacky FOSS shim. Whatever creates the most pain for Linux / FOSS users.

Step 4: Stuck with being tied to WSLg, Developers go to the business and say "either we have to spend a lot of time fixing Linux issues or we buy Windows licenses" at which point the business happily buys Windows and Office 365 volume licenses and keeps going.

Step 5: Microsoft maintains its monopoly for another 10 years.

The "I want to stay independent" workaround is (I assume) writing API layers that can serve "thin GUI clients" on multiple platforms (I guess like Electron or a regular web application or something.)

> Whatever creates the most pain for Linux / FOSS users.

Not necessarily to this level of malice.

Many (most?) Linux users, especially new ones, use also Windows, so all it needs for MS to convince them to use only Windows+WSL and not say a dual boot machine or two machines, is something that just integrates the two systems, so that most users will feel more comfortable running everything under Windows.

The killer product in my opinion would be something that allows accessing to Windows internals and GUI from a Linux program (imagine "/usr/bin/excel", a port of Excel that works only under Windows+WSL). Those functionalities would be offered by something that "pure" Linux distributions could not offer, including WINE, since we're talking about the full OS and not an API translation layer. Once users and developers are accustomed to it (many devs already develop under WSL) we'll reach the point in which the two worlds will fork in favor of Windows: what is developed under Linux will also work under Windows+WSL but not the other way around. That would probably be the moment MS will introduce their own Linux distribution (advertised as the only one that can take full advantage of "most recent Linux developments") that under the hood could either be normal Windows+WSL, or a different one containing a "hidden" Windows blob allowing developers to run native Linux, hybrid Linux+Windows, and possibly native Windows apps, either free or a lot cheaper than Windows+WSL.

If this happens, most Linux users, especially desktop ones, would rather go back to Windows rather than for example stay with Ubuntu+WINE. Server, embedded and other smaller niches users will make an exception, but Linux is in serious risk of losing all other users.

The things that make me not like Windows are it's aggressive Windows Updates, lack of real true security, and the way windows regularly ignores settings. Steam automates configuring Wine for you and most games just work. But for work? There's no reason to use Windows anymore unless you have some proprietary software that runs only on Windows.

Btw the whole "Access Windows internals and GUI" from Linux already works. You can just run Windows commands from bash and of course make scripts using those commands so essentially all windows command prompt commands are available to you now.

But remember it's Windows. You can set all the registry settings you want but it will still sometimes ignore your settings and just do what it wants.

> MS want people to stop using Linux as an alternative

Linux desktops as they currently stand aren't even close to a threat to Windows, this is Microsoft using the Linux userspace to get developer mindshare back from OSX.

Windows terminal + wsl is good, but I think the native terminal in MacOS is still much better to use. In the Win 11 beta the ease of use is pretty similar, but the unix terminal is just better integrated into MacOS. Probably my favourite terminal command is `open` which on MacOS lets me open any file in the associated application. I haven't found the same for WSL yet.
`<filename>` from Windows, or `explorer.exe <filename>` from WSL. As simple as that.
Hah, I was kinda hoping someone would know a trick I just hadn't found yet! Thanks for this. I set an alias so `open='explorer.exe'` which saves me some typing and muscle memory.
If you use powershell

  ii filename
That and most corporate Windows users simply can't switch to the OS of their choice due to rigid IT department rules.
I personally think windows’ user interface is way more buggy/slow than the new gnome. The latter has a properly smooth overview window (with gestures), while windows’ flickers on a much better laptop..
That seat that Microsoft have on the Linux Foundation board of directors will come in useful for that.
I wonder how many people who rely on Linux have truly moved to WSL? I gave it a try and I find real Linux vastly superior. Hybrid Windows+WSL apps, what is the point? Developing Windows apps with .NET is very easy and pleasant.

Don't get me wrong, I agree we should be concerned about WSL. But I think it's also very possible Microsoft recognizes developers that aren't developing with MS tech (ie anything but .NET these days) pretty much never use Windows and they are trying to patch that gap.

For me it's a far superior experience than the alternative which is macos. Instead of battling a close but frustratingly different OS than my server target, I get to run the exact same OS. So a bunch of pain vanishes.
I'd believe their target isn't users who are already using Linux, but users who will be using Linux for first time going forward. Think all the university students who made Linux the system to develop on will now make Linux on Windows as that system. Eventually, WSL will take over baremetal Linux because it was more convenient to get started, technical superiority notwithstanding.
I don't think that's it. it targets frustrated Linux devs that are tired of Gnome/KDE/X/Wayland wars, and things breaking if you don't do things just right. I spent 2 years on pure Linux and I switched back to Windows + WSL2 and I'm pretty happy. use it for work and personal use. It gives me the apps and use ability of OSX, the Linux console and none of the headache. maybe I'm just out of the honeymoon phase but I'm tired of constantly tinkering with Linux to get it to work. to install the right tool, outdated stuff in package managers, etc.
I've been a Linux user since 1995 and run Windows + WSL2 on my desktop machines. It's not too deep and pretty similar to why so many folks were drawn to Macs; a no brains just works GUI with the ability to launch a terminal and do real work on a UNIX-like system.

I can use a single machine to do everything I need, without rebooting and without making sacrifices.

I can watch Netflix and play games, without needing to write a f'n shell script to fix the screen tearing present in the nvidia driver - or realizing a particular game has quirks or doesn't work in Proton, so I just have to throw up my arms and say "Well, I guess we just don't play that game".

I can pop open a terminal anytime and have access to a real Linux system, as opposed to the faux "uncanny valley linux" solutions like Cygwin and Git Bash that seem to work until they don't. And unlike a traditional VM there's no management involved; I open the terminal when I need it and close it when i'm done, just like a normal application.

Will I be able to use i3?
This will be available in Windows 11, so your processor does have to be able to upgrade to that. If you're fine with an OS reinstall there are ways to force the install.
I can't imagine you'd be able to use i3 for your windows apps from what I've read, but it should work with your Linux side.
WSL2 is essentially just.. Windows + Linux. I tried it and it is awesome. Cannot wait to see further progress that comes out of this. I really cannot leave Windows to be honest. The network effect is too strong. Coupled with recent Microsoft effort such as Visual Code, its looking like they are doing nothing but going towards the better direction than the old days. Who would have thought. Would you believe it if anyone said this to be the case, 10 years ago?
Dual boot? This does look slick, I was an avid WSL user until I started dual booting. Now I almost never need to boot to Windows.

I get that if you often need to switch it can be a pain in the ass but at least Linux respects my privacy and freedom.

Same situation here. Dual-booting Linux and Windows 10, and I figured I'd boot into Windows often enough for it to get obnoxious. But I only ever get on there to play a few demanding games (which I already don't play often anymore), or make music with an A+ DAW for making music that doesn't run super effectively on Wine. Linux handles everything else I do like a champ.
A friend of mine has been complaining that a DAW is the only thing keeping him stuck in Windows at this point as well. In his case, he specifically said that VST's were the problem. Was your experience the same?
Bitwig is a very good DAW with native Linux support. It's made by former Ableton devs so it definitely leans in that direction, but it works pretty well for other types of workflows too, especially with the recently released version 4.

VSTs are definitely an issue; most high quality commercial plugins are still only released for mac/windows. However there are a few projects for running them in wine and it generally works pretty well.

I do think we'll see more and more Linux in studios going forward, but it would help if Linux got its pro audio story together. Pipewire is a big step in the right direction but not yet mature.

Yep, for me it's the DAW and VSTs that keep me needing Windows for now. You can try to make them work with Wine or whatever, but it's not worth the hassle.
As the author of EasyBCD, I can tell you that interest in dual-booting has collapsed to near zero over the past decade.
How much of that effect do you think is due to recent Windows versions not playing nicely so you still get some hassle anyway and/or to improving options to run Windows virtually on a Linux host with close to native performance and compatibility?
What do you mean by "not playing nicely". With UEFI boot you can dual boot all day. There is no need to modify MBR. So nothing gets overwritten on updates.
I didn't say dual booting was itself the source of the danger (though it is true that in days gone by that was also a source of problems).

The issue I had in mind was the unrestricted hardware access that Windows has if it is running natively. This is an operating system that has literally pushed updates that inadvertently deleted user data, among other severe problems, and that will deploy its updates automatically to many users. Dual booting won't ensure the integrity of your system against that kind of threat. Running Windows in a virtual environment means it can't damage the rest of your system even if it deploys a seriously broken update without warning. And that kind of virtualisation is getting more practical all the time even if for now it remains the preserve of serious Linux hackers.

Anecdata, but I used to dual boot, until Windows mucked up the Linux boot more than once. Didn't play nice. So I run Windows in a VM now, it's not getting near the boot sector again.
Yep. I have a strict "Dual boot on dual drives" policy now because Windows thinks its too precious.

It only played to their disadvantage, for machines with single storage device now doesn't boot Windows at all or only from VM.

> Coupled with recent Microsoft effort such as Visual Code

Which is officially supported on Linux.

There might be reasons to run Windows, but this is not one :)

I think hes referring to how you can run the VSCode GUI in Windows but develop on WSL because they built an integration. It's pretty neat. And most people are using Windows for other reasons (drivers, gaming ,etc), this just makes development not a pain anymore.
(comment deleted)
It's about the culture. Windows doesn't respect your privacy and you are treated like a child, because most people who run Windows wants Microsoft to make all decisions for them, just like a parent.
(comment deleted)
> I really cannot leave Windows to be honest. The network effect is too strong.

I suspect whatever's keeping you on Windows isn't really the network effect. It's usually: comfort level/personal preference, or a set of software that vendor(s) can't/won't port to another non-Windows platform.

The fact that so many applications have been rewritten as browser-accessible services has liberated me. I haven't owned a system with a Microsoft OS since ~2004 or so.

Don't forget corporate policy. I would do all of my work on linux except I am barely allowed.

Tools like teams and outlook are also just not as good on Linux, and really important for work.

> or a set of software that vendor(s) can't/won't port to another non-Windows platform.

Is that not the network effect? I.e. everyone uses Windows so developers target their software for Windows, so everyone uses Windows?

> Would you believe it if anyone said this to be the case, 10 years ago?

To be honest, Microsoft astroturfers have long existed, for much more than 10 years.

I was also amazed with WSL, it genuinely made me think I didn't have to leave Windows anymore. It is honestly one of the best products Microsoft has launched recently. The development tools division of Microsoft is on fire and should be commended.

The Windows division is another story though. With all the Windows 11 news I decided to give desktop Linux a spin for the nth time in 20 years. Installed Manjaro and I'm extremely impressed. Even though I have Nvidia graphics everything is buttery smooth, all my productivity tools are there, setting up my VPN was far easier than Windows, and even more amazingly most of my games work well thanks to the recent push by Valve and the steam deck.

I will probably stick with it this time, so maybe for me 2021 finally is the year of the Linux desktop.

(comment deleted)
I already asked this in the past, and want to ask again. Is Microsoft a corporation of goodness now?
Embrace

Extend <-- you are here

Extinguish

What are they extending? What functionality does this add to Linux that is only available on Windows?
(comment deleted)
(comment deleted)
Asking if a publicly traded company this big is good or bad is pointless. A corporation is psychopathic; if it goes Patrick Bateman or Dexter Morgan depends on the environment.

The current environment incentivizes expanding the developer ecosystem, hence DX investments.

In my opinion, this is actually a question of values. My position: absolutely not, but I take it as axiomatic that Microsoft (et al.) are incapable of any actual "good."

This is simply Window's attempt to build a new walled garden. If they were actually serious about advancing the state of civil computing, they'd make the NT core available as a microkernel that can be modularly placed into the Linux ecosystem. That is the _one_ thing I can think of which might raise my opinion of them (and I'm sure they lose sleep at night, knowing they haven't got my endorsement).

I'm of a similar opinion. If they want to prove that they heart Linux, that's what they're going to have to do. Or, at the very least, document everything (including DX) so that the Wine devs can do their thing even if MS don't care to help. Until then, "MS <3 Linux" is nothing more than PR speak in my mind.
Absolutely agreed. Microsoft is not a pleasure to develop with, which is (in my opinion) a losing position with time. They see what Linux makes a pleasure, so they pursue the trappings of the community while damning the spirit of cooperation. Cynically, I see their moves as nothing more than an attempt to capture social capital.

Hopefully, nobody is having the wool pulled over their eyes. Don't get me wrong: their incorporation of a TTY-like interface into CMD, and the Linuxification of Powershell, demonstrate the craftsmanship that Microsoft pride themselves on. It's good tech, but tainted. I will never trust Microsoft after the RDP fiasco.

Why this should be exactly microkernel?
Perhaps it needn't be; I, with my negligible OS dev experience, just like microkernel architectures better. It seems more sensible to have microkernels managed by a microkernel loader. This might be an opinion I come to recant in time. The core of my position is that Microsoft needs to stop doing Microsoft things if they want to be taken seriously as a good faith actor, but I'm not holding my breath.

Until they make moves to break down the walls of their garden, they're just another barrier.

Providing POSIX and Linux-specific APIs does actually place them into Linux ecosystem.

Programs bult for Linux suddenly can be run for Windows users. That's a boost in adoption potential for Linux programs (large part of the ecosystem). And adoption is very impotant for further development and success of software.

On the other hand, for Linux users this makes Windows more attractive - why not choose Windows for your next laptop, if all your Linux software runs there. That undermines Linux userbase.

But overall, I feel WSL is good for Linux.

Yeah, that's what gets me: it's obviously engineered to drive traffic one way without giving anything back to the community. I'm sorry, but I'm not interested in APIs to interact with a black box. Until Microsoft makes Windows user-controllable, I will never treat it with respect.

I do see your point, however, and I hadn't thought it of that way; do you see anywhere the community might pick up on this for some benefit?

Many ways. For example, it is more compelling to choose Linux as the target platform for new programs, because that way the program works both on Winoows an Linux. Therefore, more software for Linux world.
WSL is winning people over who had left Windows simply because the dev experience outside of the VS IDE is sub-par. We'll see what this means for Linux.

It could mean that people start realizing that there's gaps between Windows and Linux that need to be closed to make Linux more attractive to users. Alternatively it could mean that people don't acknowledge those gaps and instead gripe about EEE.

I know which outcome I'd put my money on.

Balmer was their wake up call. A lot of destructive policies that ensure short term benefits destroy long term sustainability.

They are good, just as any public can be good company. IE. Just a little bit more sensible about cooperation instead of demolition.

Microsoft is a group of 180,000 people, it's too big to be classified like that. A small subset of them are making this cool thing, and you can debate whether or not their intentions are good, but that's about as far as you can go in making a broad moral judgement.
Hmm probably closer to true neutral.
Microsoft has just shifted to being what IBM was in that late 90s for all intents and purposes. IBM didn't care what you ran on their platforms, even at the OS level. They just wanted that sweet sweet support contract and computer leasing money. "You want to run Linux on our mainframes? Hell yeah, sign here." Now with Azure, Microsoft gets money of the same shape, and correspondingly makes some of the same strategic choices.
I just might switch to linux instead.
You can always fall back on the Linux Subsystem for Windows GUI, aka WINE/DOSBox/VMW/VBX/QEMU, with varying levels of integration/fiddle/config.
Varying levels of integration, with fiddling being required less and less (eg. Proton), and with a nuch higher level of privacy. Also, I don't want my computer to feel like a billboard for Candy Crush Saga.
Sorry, your reply was missing a sub-legible customer experience improvement key. Please re-authorize at your nearest _Subway_.
Most corporate PC users do not have that option. WSL solves that.
This is the most plausible explanation. Since most of the newer dev frameworks use very unix like CLI, windows as a dev operating system was feeling very left out.

VSCode made this painfully obvious.

Most corporates would just offer you a mac instead. WSLg is pretty cool, but if you have a choice, running ubuntu or debian is better, with emulation for whatever windows legacy stuff you need to support.

What dev frameworks?

The ones I use, work perfectly fine in Visual Studio and Eclipse, and Powershell does the rest.

That seems like a very complex architecture. RDP client and server? That seems like a strange approach for a single machine solution.
Ironic statement considering how X was designed to work.
I posted this because I've used Linux GUI apps on Windows with WSL1 and an X server. This seems much more complex than that.
It's because WSL2 abandoned the initial goals of WSL1 and just did a VM instead.

I wish MS continued evolving WSL1 instead of doing the VM approach but c'est la vie.

>I wish MS continued evolving WSL1

I do too but only from a techy POV. I think it was awesome they expanded their old posix apis into a drop in linux replacement and wish it could have continued being expanded.

For me, it comes down to the fact that WSL1 apps were ran like native apps. That was amazing. It meant I could kill a WSL1 app from task manager. It meant that those apps were only taking the memory they used, not an entire VM's worth of memory. It meant I didn't have to manage yet another virtual machine environment on my PC.

WSL2 is certainly the way to go if you want a more "true" linux experience. I just lament the fact that WSL1 came so close to being true enough.

The amount of effort that went into WSL1 including the number of bug-for-bug changes involved was tremendous. It blew my mind when WSL2 was announced because the hyper visor approach was already possible (and in use) before WSL1 was announced but MS made an explicit decision to do the extra work to make their own Linux subsystem for Windows the harder/better way… then gave up.
They were amazingly successful -- more successful than should have been thought possible -- but they couldn't overcome the semantic file system differences.
Is this documented anywhere? I’d be interested in reading more
Neither the Windows IO API or even the low-level NTFS APIs map cleanly to POSIX semantics. It means you can’t just forward calls from the subsystem to the IO stack, you need to actively marshal them to and fro. This, in addition to certain operations just being plain more expensive on Windows/NTFS (opening files, creating processes) due to different programming paradigms/approaches just give a very high impedance mismatch that makes performant IO highly unlikely by nature for anything trying to run on top the existing system rather than virtualized.
Yeah, the greatest features of WSL1 was the fact that it wasn't a VM. All apps were running natively and managed by the windows kernel.

I now have to deal with the fact that every so often the WSL 2 VM will simply consume too much memory, which really stinks.

WSL1 felt SO close to being perfect.

You can switch back and forth as required, from https://docs.microsoft.com/en-us/windows/wsl/wsl2-faq#what-w...:

What will happen to WSL 1? Will it be abandoned? We currently have no plans to deprecate WSL 1. You can run WSL 1 and WSL 2 distros side by side, and can upgrade and downgrade any distro at any time.

I get all that, but it's hard to imagine with the current naming scheme that you'll be doing much beyond the bare minimum support for WSL1. I have a hard time believing that new WSL1 features will land.

There's a giant chasm between "not deprecated" and "actively supporting".

For example, I'm guessing that running a docker container with WSL1 is something that will never happen.

Yea, but WSL1 has basically seen no new features or meaningful fixes since WSL2 was introduced.
From what I recall, an MS engineer explained why they gave up on WSL1 as being intractable issues with the way Windows and Linux interact with the filesystem, leading to major, unfixable performance issues.
RDP is ready, tested and quite complete. Much better than designing a new protocol.
I wonder what Linux exclusive software they are hoping to support. Everything I use in my Ubuntu daily driver has a Windows build or corollary app. I get how ‘you never have to leave Windows’ is a nice thing for their business, but I don’t see this being a reason I would stop dual-booting. The only reason I run windows in the first place is for a few apps, mostly games. Otherwise I really enjoy the bloat-free, ad-free, telemetry-free, snappy, tractable, and undistracted experience that is Linux desktop computing.

It would be nice if they did something actually useful, like add native ext4 support.

> It would be nice if they did something actually useful, like add native ext4 support.

Other way around. The Kernel getting real support for NTFS (was merged into Linus' tree a month ago [0]) there's hope to get native performance on WSL2.

Microsoft is building the dev environment for the next decade.

[0] https://www.linuxtoday.com/news/linux-kernel-5-15-will-have-...

Linux and Windows use mutually exclusive permission/ACL bits, even on the same NTFS filesystem.
If Linux would just adopt NFSv4 ACLs, there'd be nothing mutually exclusive about it, but instead perfectly in tandem.
Linux has had read-only support for NTFS longer than WSL has been around. And if you think that Kernel patch is a testament to the greatness of Windows, you should try reading some of it. It's infamously incomprehensible.

I'd be onboard with Windows as a next-gen dev environment if it was compatible with more filesystems, had a more organized file structure, featured greater CPU compatibility, and eliminated the system registry altogether.

> Microsoft is building the dev environment for the next decade.

Big claim, most devs I've met either use Mac or Ubuntu. Can't remember anyone using Windows...

It’s pretty common among game, .net, and Java EE devs. For me as a Python/Node/Cloud dev it was kinda a nonstarter (it all theoretically works, but has all kinds of little bugs and caveats) until WSL was stable. Since then it’s been perfectly viable for anything I’m working on, and I was able to use it exclusively for dev work for about 6 months. I have a Mac laptop too, but my desktop is too beefy to not use as my daily driver. Still, I prefer Linux for development work.
There are literally dozens of us!

No, really, when all of my development happens over SSH or inside Docker anyway, it doesn't really matter which is the "outer" OS. I'm happy with Windows.

<raises hand> I've consistently developed Unix (then Linux) server software on WindowsNT since 1996.
(comment deleted)
I develop Linux software on Windows using Visual Studio / C++. It lets me build and debug my servers on Linux machines remotely using nice IDE and tools. Also use CLion from Jet Brains the same way
Mac is a small slice of the software engineer market, and mostly in the web-app/mobile space.
every single FAANG (and many middle tier companies too) distributes macbook pros to its devs.
Just because there is no viable enterprise-ish Linux computer that fits those environments. Sadly :(
Definitely not true since (at least at FB) you can also get an auxiliary laptop (Thinkpad) with Linux (Fedora). Just that no one wants them.
It really depends on the company. In my limited experience I can say that only FAANGs will probably allow such an environment. Other big corporations aren't quite there yet.
And yet that doesn’t constitute even close to the majority of developers.
Whenever you want to natively operate on files within WSL instead of going through the network share abstraction, this is definitely helpful. I'm running my git GUI (Sublime Merge) on the Linux side and am currently piping the UI through to Windows using VcxServe. If I can remove another dependency using this - great.
I think it's mostly a "because they can". WSL is a no-brainer because developers are used to Unix shells and most programming languages are Unix-first, Windows-maybe. But WSLg feels like a weird experiment with no purpose.
This could very well be the case, but as someone who is just dipping a toe into programming, installing and using WSL2 knowing that I can fall back on GUI when I can't figure out bash is a feature for me.
I think the main target is ML applications that depend on GPU access and being able to run a WM is just a side-benefit.
My networked workplace computer needs to be able to compile a Windows application plus peripherals running various other architectures. The Windows part happens best in Windows, while the other parts are remarkably painful to compile without Linux. And all the platforms can compile in parallel.
As someone who uses Windows as their main driver, I will personally find it a useful way to test/debug our Electron based app on Linux. Right now I’m using a full VM.

When you consider that Edge is available for Linux, MS could very well be using WSLg to develop it.

So it seems to me that this just makes it easier to anything you need to do on Linux, “on” Windows.

Of course making it easier for people on Windows to make software for Linux seems like a way to help Linux, which is a bit confusing to see MS do.

> Right now I’m using a full VM.

WSL2 is also a full VM

Is that so? Isn't it more like a bridge between Linux and Windows kernels, so that stuff is ultimately delegated to Windows?
A bridge between kernels is how most VMs work these days. The kernel inside the VM has special drivers for extra-simple 'hardware' that the host OS provides.

As opposed to WSL1 where there's a wine-esque module in the windows kernel, and there is no linux kernel at all.

It is, just with some fancy integrations that makes it more comfortable - for example memory reclamation. But it's all a fancy VM in the end.
A super fast one. After one click, within 2-3 seconds I can have an Ubuntu terminal open with wsl. To spin up a vm from let’s say VMware, I need at least 10times that.
I don't think that's magic in the hypervisor, so I doubt it affects overall performance of the VM very much. But WSL images have a special boot process instead of a full init system like systemd, which is probably where the fast startup comes from. Maybe it also has to do with how they configure storage for the VM. On real hardware with a decent SSD, Ubuntu usually gets you a graphical login in less than 10 seconds.

Anyway it's a cool feature, and I'd love to know more about how it works.

And the fact that they probably use a slimmed down kernel with just the right amount of modules, I guess.

In any case, booting Linux (the kernel) is always incredibly fast, and booting to a tty, without all the systemd units that are generally loaded, is incredibly fast per se.

As far as I know, both the NT kernel and the WSL2 Linux kernel use the same hypervisor below them.
Also looks good to debugging puppeteer with head on docker container.
They made it specifically for machine learning
I was looking into this further because it’s sort of impacting my dual-boot workflow. I have ext4 media drives on Linux that aren’t viewable or readable from Windows, but Linux can at least read the NTFS drive. The third parties I’ve tried in the past for making Ext4 readable in Windows File Explorer have some sketchy security concerns and/or missing Win10 support.

It looks like using the method described in the link below it’s now possible to mount ext4 drives via WSL2 and even browse them in File Explorer:

https://superuser.com/a/1630438

It’s not clear if they are also writable or not, I’m off to try it!

So far no good. That feature was a preview release that required insider builds, which require enabling telemetry that sends, among other things, "information about websites you browse, apps and features you use..." Moreover, I'm not able to use Windows 11 which has the feature because of my AMD Threadripper 1950X processor.
> I wonder what Linux exclusive software they are hoping to support.

It would be more of a case of how well certain software works, or how well that software works together, than one of supporting Linux exclusive software. There have been a variety of ways to run Unix software under Windows for decades. Quite often, there are quirks to deal with unless considerable effort has also been put into the Windows native version. I doubt that WSL will actually appeal to many existing Linux users, but it will probably prevent the slow flow of people from Windows to Linux.

I agree that native ext4 support would be more useful for people who dual boot.

the reverse would also be pretty useful. heck if they would pull off office for linux even when they would charge windows pro and a 365 license it would probably be welcomed.
I would buy that the moment it is released. That would be the fabled Year of the Linux Desktop.
You can always just use Unity mode on the free VMware Player. VMware may allocate resources, but plays nicely with sharing them when not actually in use, so there's not much a performance hit on the host machine unless you really need to do something that has the CPU pegged.

I think VirtualBox has a similar feature, but in my limited experience VB doesn't perform as well as VMware.

Would be bad for vendor lock-in.
I have a Windows machine for my work at giant megacorp. I run Linux on my at home machines, but the honest to god I can't believe it's not Linux experience I've gotten from WSL has been great. I pretty much tab into my full screen Linux Window manager running in a X11 client window and get down to work.
IIRC, they were primarily interested in getting GPU acceleration (for ML tasks) to work in WSL2.

I presume getting GUI working on top of those GPU APIs was a trivial task (and maybe done by one of their interns or during a hackathon).

That sounds like the killer app. GPU passthru can be an absolutely gnarly undertaking with any virtualization system.
GPU passthrough on WSL2 is a thing since around December 2020 -- but I'm not sure if it's in stable yet, I had to install an insider build for it. It works surprisingly well and I was able to develop my ML project using it (with the help of VSCode devcontainers)
Why did you want to develop it through WSL2 instead of just compiling it on windows?
It sounds like they did significant work getting the whole stack to work well, from Wayland to the RDP back-end to improvements to the RDP client on the Win32 side.

Your interns must be rock stars on meth.

Most likely energy drinks + Adderall + financial insecurity. Adderall, Meth, same thing.
They’re supporting servers. That’s the whole story. They won business desktops but lost enterprise in the “anything that requires network access”, and want to continue to sell software to those customers. Making development less onerous supports that goal.
To be honest, theres alot of research related software (including for visualization) that works on Linux only or has very poor support for windows. As a roboticist one example that comes to mind is the whole open source robotics ecosystem with ROS/Gazebo which is pretty linux only. Personally I've been using linux as a daily driver for 10+years now so its not a problem for me per-se, however I'm sure there are many who would be interested in seeing better windows support. I've heard of similar issues in the domain of particle physics and a few other niche research areas.
Even though our dev environment at work is Ubuntu, I greatly prefer running Windows on my ThinkPad X1 Extreme, because of the superior hardware support for the devices I use. Specifically:

• I spend a fair amount of time on Zoom calls (who doesn't?), and I like to use my Apple AirPods so I can move around while we talk. I was never was able to get these or any other Bluetooth headset to work on Ubuntu. They pair only as headphones with no microphone. On Windows they work "out of the box".

• I use a triple-monitor configuration with three 4K displays: the ThinkPad's internal 15" display and two 24" externals. In Ubuntu I can only get two displays to work. (BTW one external display is in landscape mode above the ThinkPad, and the other is to the left in portrait mode. I highly recommend this configuration - the portrait mode display is great for reading docs and especially PDF files.)

• I run the external displays at 200% scaling and the internal at 300% to match the differing pixel density. I didn't see any way to support this configuration in Ubuntu, much less be able to move an app window between displays and have it automatically update its scaling factor to match the display. This works "out of the box" in Windows.

So I run Windows on the hardware and Ubuntu with my dev tools like PyCharm and SmartGit in a VMware VM. (VMware works a lot better for this than VirtualBox - the display response is much snappier.)

Of course these are my own needs, and I have no quarrel with anyone who has different preferences. But I welcome anything Microsoft can do to make this an even smoother experience than it already is.

This. It is basically a way out for people that don't want to run Mac.
Indeed. We take for granted this kind of robust hardware support on macOS and Windows.

macOS by itself wouldn't work for me, though. I would still need to run a Linux VM because of our very fussy build system. And besides, where would my beloved TrackPoint be? :-)

> • I run the external displays at 200% scaling and the internal at 300% to match the differing pixel density. I didn't see any way to support this configuration in Ubuntu, much less be able to move an app window between displays and have it automatically update its scaling factor to match the display. This works "out of the box" in Windows.

This works if you use Wayland rather than X11. I'm using a similar configuration today.

That is good to know, thanks for the tip! I will definitely try that whenever I use Linux on the hardware in the future.
However, the X1 Extreme has an Nvidia GPU.
Since June Nvidia proprietary driver supports KMS and Wayland. So fractional scaling with Nvidia should work now.
It kind of does, but ... it also doesn't.

I've been running {KDE, Gnome} on Wayland + KMS on a box with a GTX1080 for a few months, and

- it is really laggy (sometimes the mouse cursor is choppy)

- fractional scaling is practically unusable due to all kinds of important apps (e.g. Chrome) not supporting it and just blurring the screen instead of properly scaling

Overall I can't recommend it to non-enthusiasts, unfortunately.

No lags for me with GTX 970. And I use Firefox, it has Wayland support.
"It works for me on very specific, ancient hardware, and also don't use <software you use>" isn't a great selling point for people who just want their machine to work and aren't bought into Linux On The Desktop as a philosophical ideal. That's why people use WSL2! Popular software works, popular hardware works, you can run Linux programs from the command line without installing and managing a separate VM yourself (yes, yes, it's virtualized under the hood by the OS, but you don't need to manage the VM yourself), and now you'll be able to run Linux GUI apps too.
If you want a great Linux desktop experience, don’t buy Nvidia GPU’s. Intel and AMD has very good open source drivers, while Nvidia has only the proprietary ones and they are known to have all kinds of issues. There is a good reason Linus Torvalds said the famous words “fuck you Nvidia”.

And major problem that still persists with WSL is the NFTS mounts in Linux. At work we can’t have decent compile times on Windows because of the file system.

WSL2 uses ext4, not NTFS. Just make sure the files live inside the WSL2 filesystem and not on the Windows host, and you're good to go.
To be honest, with the amount of video meetings I have, I invested in a far better audio setup than Bluetooth headset microphone.

The amount of meetings I've had where the audio from the other end sounds like the BART announcements is too high...

That being said, I know what you mean. However, I'm actually rather annoyed at the headset microphone functionality on windows, because if anything starts using the microphone, it switches modes and the audio quality goes way, way down. Fine for a zoom call maybe, but having horrible audio in a video game is not fun. I constantly have to go to control panel to turns off hands-free telephony.

Audio quality matters to me too, and of course the AirPods are quite a compromise. The speakers in them sound good enough, but I know the microphones are not great. Mind sharing some details of your audio setup?

I do like having wireless headphones of one sort or another, so I can walk around while staying in the conversation.

Also, over-the-ear or in-the-ear (the kind that go into your ear canal) headphones don't work for me. The only kind I'm really comfortable with are the kind that sit lightly in my outer ear, e.g. AirPods and not AirPods Pro.

But in any case, I'm eager to hear about your setup. And I'm probably not the only one who would welcome better quality audio. Thanks!

As far as a microphone goes, I use a Blue Yeti on a shock mount suspended next to my desk along with a pop filter (about ~$200 USD all together). To be honest, I've had it for awhile because I've played games or talked with friends on Discord regularly for years. We all started with the inline microphones on our headsets and collectively decided to move past what we loving described as "BART station audio" since it became an almost daily activity.

As far as work goes, a few of my coworkers use RTX Voice to remove background noise since they use their gaming computers for work. For headphones, I personally like over-ear headphones and use wireless noise-cancelling headphones.

Thanks! Yes, I've always heard good things about Blue mics.
> if anything starts using the microphone, it switches modes and the audio quality goes way, way down.

Funny, I don't see this on windows, which will leave the headphones at high quality (except for when I'm speaking, at which point I don't care that much about audio) - but on Linux I have to set the audio profile for the headset to low quality in order to enable the microphone at all - so all audio out is crap as long as I'm on a call/have the microphone enabled (even muted).

Still waiting for this to improve - but looks like it'll require new hw (new Bluetooth receiver and sender).

About the headphones, are you sure you've selected the right thing in the app? Not pulseaudio, but zoom. I had this problem that zoom would ignore whatever I set with pulse. Once I figured this out my problems went away.

For games, proton has come a long way. I don't find myself needing to boot out of Linux very often anymore.

Thanks for asking. In fact that is one of my pet peeves with Zoom, that it has its own audio selection independent of the host OS. This is a problem on Windows as well - and I assume on macOS too.

I have a friend who uses Zoom a lot on her Windows laptop, and this "feature" of Zoom has messed her meetings up so many times!

> like to use my Apple AirPods so I can move around while we talk. I was never was able to get these or any other Bluetooth headset to work on Ubuntu.

Is this due to Apple having drivers for AirPods for Windows or Is Windows Bluetooth stack that good?

I didn't install any Apple drivers, just paired and connected them in the Windows settings. I also tried a couple of cheaper Bluetooth headsets and they worked equally well. None of them would connect as headsets in Ubuntu 20.04.
WSL v2 is a VM too and better integrated. I like it very much.
Ubuntu by default pairs Bluetooth headsets as A2DP, which has higher quality for music but no mic-support. You have to go in to Ubuntu bluetooth sound settings and change the output device to headset mode every god damn time you turn on the headset. And then toggle it back to A2DP if you want to listen to music again. I don't know how Windows or iOS deals with this but there both modes seem to work seamlessly.
Pipewire can switch to headset mode automatically whenever a microphone input is needed. And it switches it back to headphone mode afterwards. It works on Linux exactly like on a phone or macOS. Pipewire is backwards compatible with Pulseaudio so there is no reason to not migrate.
I've not heard of pipewire. Need to check this out because I'd love for my truly wireless earphones to be able to seamlessly switch modes on Ubuntu. I use a wired headset for work calls I need to be on quickly because it's pretty flawless, but the tether is more than a little annoying.

EDIT: It took me 5 minutes after reading the comment above to replace pulseaudio with pipewire on Ubuntu 20.04, now I have access to my earphones' high quality codecs too right from the Ubuntu sound control panel!

I used this[0] then this[1]

[0] https://ubuntuhandbook.org/index.php/2021/05/install-latest-...

[1] https://ubuntuhandbook.org/index.php/2021/05/enable-pipewire... - I only followed steps 1 and 4 and audio was switched instantly, earphones already paired. Now I have AAC, SBC, SBC-XQ...

EDIT2: Switching to/from my earphones and from 1 bud to 2 buds appears flawless so far, even for the Spotify desktop for Linux app which usually requires a `pulseaudio -k` to send the audio out of the right device usually, even if it's correctly selected in sound settings.

EDIT3: Don't forget to mask pulseaudio (yellow box, second link) or pulseaudio will load on reboot and break things, no amount of systemctl disable will stop it without masking.

EDIT4: Linked site has different theme on mobile so yellow box in EDIT3 isn't yellow.

oooh... Thanks! Thanks!... This was a breeze and I had to pinch myself to make sure that it was really working...

PS: In the past, I've wrestled with PulseAudio & BT dongles and my JBL headsets on Ubuntu. Banging my head on a brick wall would have been more pleasurable than that.

PPS: and today we have Pipewire on the front page!

Glad you got it working. I deserve no credit though, I just followed some instructions and linked it here.

It was even easier to setup on my desktop (now running Manjaro rather than Ubuntu because of SteamPlay/Proton et al) and simply `sudo pacman -Sy manjaro-pipewire` followed by a reboot. If it complains about pulseaudio related conflicts, just `pacman -R` the packages it mentions then try manjaro-pipewire again, and then reboot and you're done.

I sort of had heard of pipewire - but only to the extent that it was the next audio/video stack.. No idea about how far along it was. Also no idea that it had the BT headset thingy all sorted out.

Your comment made me go "huh! that's easy enough to finish off in 10 now" and provided the impetus I needed

Does Macos doesn't deal with this? IME, MBluetooth Audio from Mac sounds like a fart in a pringles can unless you update some plist somewhere. But once you do that It JuSt WoRks.
Bluetooth headsets (I have Bose) and automatic input switching works with pipewire, fractional scaling with different settings for each monitor works with Wayland.

I am using it on Archlinux without any problems whatsoever.

The problem with Ubuntu is - when it releases their latest version, it is already shipping a couple years old software versions.

And for pipewire, wayland, mesa and other desktop related things you want to run the latest version at all times. This is one of the major reasons why Valve chose Archlinux as a base for their new SteamOS version for Steam Deck.

I'm using Fedora. Scaling works, but not for all apps. Gnome apps work just fine. But Chrome, Intellij Idea and some other apps do not scale when moved to other display. AFAIU Wayland-native apps work, but those which use Xlib do not re-scale properly.
I saw on their bug tracker that Intellij devs will work on it this year.

  > The problem with Ubuntu is - when it releases their latest version, it is already shipping a couple years old software versions.
That is quite a dramatic take and simply not true.

It maybe fits somewhat for Debian Stable (that has a freeze of 4 to 6 months), but Ubuntu bases off Debian Unstable (sid) and sid is very close to the Arch experience - I know because I use both a lot. Granted, Ubuntu adds a bit of a delay due to QA and all that release fuzz a rolling release like Arch does not has to care for, but if an upstream software release happened one or two months before an Ubuntu release it's really likely to be included in that release.

  > And for pipewire, wayland, mesa and other desktop related things you want to run the latest version at all times.
Meh, in general I agree with the sentiment, but there are also regressions that hurt running into, and if you have HW that was released over a year ago it may not matter that much.

  > This is one of the major reasons why Valve chose Archlinux as a base for their new SteamOS version for Steam Deck.
Not directly, they could have used Debian sid for that, and the fact that SteamOS 2.0 is still on Debian 8 (newest is 11) also shows that they did not try to go for the latest releases until now. I'm working on a Debian derivative and we just backport things ourself if really required, it is a bit of work but not that much (we're definitively orders of magnitudes smaller than Valve) - especially as the Debian unstable/sid repo is quite up-to-date and thus we often can just take it from there and base on that anyway.

But actually Debian and Arch Linux are really close anyway, I do packaging for both (but neither a DM nor Arch trusted user) and if the software is not awful to package in general it's quite the bliss to do for both, there are also lots of parallels, even if often slightly hidden. So I won't care much; may even try out setting up Debian Sid once I get my Steam Deck :)

FYI: here's some good background read regarding all this from a Debian developer whom also works for Collabora on the Steam Runtime: https://lists.debian.org/debian-devel/2021/07/msg00214.html

Debian used to be my main desktop distro 10 years ago, but I switched to Archlinux because for me personally Debian reqired too much work after packages got broken (I was on testing or unstable, don’t remember anymore), and it happened too frequently. And also Archlinux AUR was very powerful with no good alternatives on Debian at that time.

I still have some servers running Debian but I have migrated most to Ubuntu because of much simpler upgrade procedures between stable versions (basically I have enabled automatic upgrades with auto reboot on all of them).

I am an enthusiast but I like to have things running smoothly and even with Arch being rolling release, it has been working smoother for me than in my time prior with Debian.

Maybe it is because of the excellent documentation on Arch wiki, maybe it comes with experience. All of this is subjective anyway.

  > I spend a fair amount of time on Zoom calls (who doesn't?), and I like to use my Apple AirPods so I can move around while we talk. I was never was able to get these or any other Bluetooth headset to work on Ubuntu.
I do not want to be the cliché Linux user and recommend some config change and assert that would have been simple and helped 110%, but out of interest, did you also try something like

  > Set ControllerMode = bredr or ControllerMode = dual by editing
  > /etc/bluetooth/main.conf file
  > systemctl restart bluetooth
(paraphrased and s/sysv/systemd/ from https://itectec.com/ubuntu/ubuntu-pairing-apple-airpods-as-h... )
> I spend a fair amount of time on Zoom calls (who doesn't?)

I'm way more productive with email and just a couple phone calls a week as needed.

Ha! Tell me about it. :-)

In truth, I don't spend that much time on Zoom calls, and of the few that I have, many are no video, just substitutes for a phone call with better audio quality and the ability to share screens if needed.

Nice setup. I prefer one large monitor over dual displays and a desktop over a laptop. I just don't have any use for the small laptop screen and keep it closed most of the time.
On linux mint, zoom works fine, with bluetooth headphones, attached speakers, bluetooth speakers, etc. Has for years (well, I started using it (bluetooth headsets with linux) in 2008 or so, and it worked then as well).

On windows, brand new Dell laptop for work, with an insanely locked down version of windows 10, zoom often crashes, especially when sharing my screen. This in turn takes down many other applications. Generally making the whole windows experience far from optimal.

My Sager Laptop a few years ago, and now my HP Omni (personal) laptop, I regularly drive 2 screens and the laptop display. Works. Out of the box. Work windows 10 laptop, its a crap shoot at best. And I can't use the NVidia card very much in windows 10, simply because the system is so locked down. Thus I'm stuck with an expensive and useless feature. One that works flawlessly in my locked down linux box.

On different scalings for different monitors, its built in to mint.

I'm guessing you are either running a very old version of Ubuntu (literally all the complaints you made are many years out of date, having been solved long ago), or you copy-pastaed from somewhere else. My priors on this are 60% the latter 40% the former.

On my linux laptop, I run windows the way it should be run (if you really need to run it). In a kvm instance. Never touching real hardware. And whats funny about this, is that the virtualized Win10 is faster than the far more expensive windows 10 work laptop right next to it.

Go figure.

FWIW, I've been using Linux on my desktop for 23 years, and as my primary OS on my desktop/laptop for 20 of those years. So ... YMMV.

This seems mostly anecdotal, but I've been using Bluetooth headsets and headphones on Linux since around 2008, and most have worked out of the box with no issues.

I do remember at the time, windows didn't really work with those Bluetooth headphones, and I actually started bringing my own Linux laptop to work just so I could use my headphones.

When it comes to Zoom, I'd say the problem is having to use that crap and not the fact that they barely support Linux. MS Teams also won't work on Linux, but it's hard to claim it's an issue on Linux's side. I'd suggest looking at something like Jitsi, which is also encrypted and takes security into consideration.

Ubuntu is a pretty bad example for anything though: they're usually trying to reinvent the wheel and it's very common for things not to work there and work anywhere else. I personally have mixed feeling because they both make Lonux more popular and build good tools, but also give Linux a bad rep at the same time. Maybe give Fedora a shot?

Finally, per-display scaling works fine on Wayland, but won't work on Xorg. I believe Ubuntu still uses the latter.

> When it comes to Zoom, I'd say the problem is having to use that crap and not the fact that they barely support Linux. MS Teams also won't work on Linux, but it's hard to claim it's an issue on Linux's side. I'd suggest looking at something like Jitsi, which is also encrypted and takes security into consideration.

Jitsi is not as good as Zoom. Zoom seamlessly integrates with multiple monitors, and it provides a variety of tooling to rearrange your view of people and shared desktops. Just as an example last week I was helping two coworkers troubleshoot something, and I was able to have both of them share their desktops simultaneously. I had one on one monitor and one on the other. It was painless and instant. Maybe Jitsi supports such a thing somehow but it would have taken a minute or two to find the right buttons to press.

Also Zoom is encrypted. It has always been encrypted. Zoom lied about having E2E encryption and also weirdly had a lower-grade AES. Zoom is weird because while I 100% mistrust their motives in using weaker encryption, there are some legitimate tradeoffs between reliability and encryption - and it's actually pretty unlikely that they could implement E2E encryption without compromising video quality.

And ultimately especially with the pandemic and only being able to see people via video, even the smallest problems are potentially quite massive. I've used Jitsi a bit, and I don't think it's an exaggeration to say that it would mean that I would have spent at least an extra hour a week during the pandemic troubleshooting video when I was trying to have a nice visit with friends or family. I'm not going to be an ideologue when I lose that kind of time.

It is not true that Ms Teams does not work on Linux. We do have several devs working on Linux (don't know which specific distros though) and it works just fine. There are some annoying pop ups saying "Teams is ready" anytime they get a message and one of them has to switch something about his graphics from time to time to be able share his screen (which has never been a problem problem for anyone else), but I wouldn't say that it doesn't work at all.
"just fine" might be a stretch, it's an awful program - but so are most commercial alternatives (slack is marginally better).

But yes, it works as intended on Linux (I use the official snap with Wayland/Ubuntu and even screensharing works).

If all your development is on Linux, it’a convenient to run IDE there as well.
you would be surprised at what a large effect the removal of friction can have. I bet this will convince a decent chunk of people that dual booting isn't worth it
Exactly, don't underestimate what removal of a few annoying hoops to jump through can do.

The other day I wanted to compare gitk on Windows with the same on Linux. But there was no Xserver installed, so the idea was dropped.

The whole reason was to see if gitk also had that annoying enumeration at startup in Linux.

So even if a windows build is available, sometimes the user experience of linux-first software on windows can be subobtimal because of differences in filesystem and process model of the two operating systems. I much prefer using git and emacs within WSL than their windows builds.

> The only reason I run windows in the first place is for a few apps, mostly games

Another reason to use windows is if you are on a laptop and care about battery life. Browsers on Linux still don't have hardware accelerated video playback.

> Another reason to use windows is if you are on a laptop and care about battery life. Browsers on Linux still don't have hardware accelerated video playback.

That's just not true. Might be a problem with some GPUs but not with all. At least I got hardware accelerated video playback on Chromium with my AMD GPU.

I happily found Chromium-VAAPI almost 2 years ago and it works great with Intel integrated GPU video acceleration on Arch Manjaro Xfce

https://aur.archlinux.org/packages/chromium-vaapi

At least for AMD cards it works with no extra configuration. Besides installing the open-source driver if the distro doesn't do it automatically. I'm not sure which framework it's using VAAPI/VDPAU. My test method is: my GPU activity spike up when I hit play on a Youtube video. :) I'm on Arch/Gnome.
Every single person who has ever claimed Linux runs flawlessly on a piece of hardware has had some flaws. I include myself here - I once bought a laptop with entirely OSS mainline kernel supported hardware and compositing didn’t work on external displays.

99% hardware support isn’t good enough. I want to make new software not troubleshoot other people’s.

Thinkpads generally work perfectly. Also, windows hardly has even 99% compatibility with hardware. There is hardware that behaves better under linux than windows as well.
I have a colleague that uses Linux with a thinkpad, he was the person that made me think of my comment. Linux works perfectly but then starting Citrix causes a weird perpetually zooming effect on his external display.
Terminal emulator.
I use WSL with VcXsrv on my work machine. For me, the biggest feature is that I can share clipboard between vim running in WSL and windows. It's also often significantly faster to get a program up and running in Linux than on Windows, especially if it has lots of dependencies.
> Everything I use in my Ubuntu daily driver has a Windows build or corollary app.

And using them is an endless shuffle with fractured distribution and update. WSL gives you apt-get. And good luck when every port you use integrates with a different subset of the ca 5 SSH options that are in common use on Windows.

I suspect this is to try to push large business/corporate clients to drop Linux.

Windows adds support for running Linux apps, then spreads some FUD about Linux, and convinces companies they need to ban dual-booting and only allow Windows internally.

It certainly does _sound_ like MS.

Almost everything I use runs faster on Linux so even if it isn't Linux exclusive I'd very much prefer to run it on Linux.

VS Code brilliantly lets me develop on WSL2, IntelliJ is getting there but with these new developments it might become easier to run everything on Linux.

That said, IT at work not only tolerates Linux but actively support it so I might be back on Linux again very soon.

Well, ROS?

I can't tell you how many people want to mess around with the robot operating system but don't want to dive head first into Linux. Hell, my very large robotics company won't even give you a linux machine. You're forced to use Mac or Windows or build it yourself.

But in general, I haven't dual-booted my main machine since WSL got good, and I'm a linxu-first kind of person with a penchant for windows gaming.

I bet Microsoft would rather that they used Azure Sphere OS or Azure RTOS for that purpose.
Possibly, but that would be misguided. That's not even close to the niche ROS fills. ROS runs on Ubuntu pretty much exclusively, is essentially a mediocre messaging middleware and a mediocre build system, upon which 95% or more of the worlds decent robotics research is conducted. The main research tools, like Gazebo, require gobs of GPU processing that usually preclude virtual machines. So everyone dual boots or goes Ubuntu-native. I'm not saying that's why WSLg is being invented, but if it can produce native-ish GPU performance, that would be an amazing use case.

WSLg had an early demonstration of ROS simulations running, in fact. So I can double down on this being a use case.

I just really like the OS experience of Ubuntu. I’d rather run a windows vm but the gpu doesn’t play very nice sometimes
This is exciting. I dual boot Windows and Linux, cause although I really like my setup on Linux, the desktop experience is not quite there yet for me.

I wonder if I can use something like bspwm, maybe not... haha

Extend.

> Weston is the Wayland project reference compositor and the heart of WSLg. For WSLg, we've EXTENDED the existing RDP backend of libweston to teach it how to remote applications rather than monitor/desktop.

It has been admitted.

RDP is a proprietary protocol of Microsoft. Extending their own protocol sounds pretty normal.

And the code seems available on their weston-mirror. It just a merge away.

Microsoft does enough shady things in the now, let us not try not force some EEE pattern.

Amazingly this seems better integrated than Mac's XQuartz which I always find awkward and buggy. If it weren't for the forced ads and updates I would consider switching back to Windows.
How long before even Linus migrates to Windows as his daily driver?
So how long until us poor fellows running enterprise windows see this?

I currently use vcxsrv which works mostly fine, but it's hard to convince other people to adopt the multitude of hacks I have to make this work, and supporting windows in builds is painful.

you don't have to wait until Windows 11 for this nonsense. I am unfortunately locked at my current mission to be on a Windows laptop, my first Windows experience in years. As soon as I read up on wsl2 I installed it and inside installed the xrdp server and a corresponding lightweight environment, then just rdp into it (but every time the wsl gets restarted, you'll have to do a /etc/init.d/xrdp restart). Although, I can't wait until I get to a sane environment again. Without Windows and all headache it brings me...
This might actually be the year of the Linux desktop
I don't want to want this, but I do.

Only semi-related but what I really want is for easy windows apps on linux that work without fail. I prefer my linux box and generally hate the windows ui (don't get me started on windows settings or audio). I've tried switching to linux full-time but I don't know if I can hack it. Games are 90% there and I can do without the few that don't work with proton, but there are just too many apps that only work on my windows side that I just don't think I can dump windows.

Wine gives me inconsistent results and breaks for just about anything that needs registry access, not to mention its pretty complicated. I'm hoping to stumble on some tool I've been missing out on that makes everything easier because I wan't to run linux as my daily... I just don't know if it is practical.

Would a Windows VM on your Linux system help? Maybe some apps have robust alternatives?
Which apps? Not that it makes a difference for this conversation, but I'm interested in keeping up to date with what the "killer apps" are that keep people from switching.
I just recently switch from windows to linux. Was planning to do some 3D printing tomorrow, but saw that Fusion360 had poor Wine support. So I probably need to learn a new software or setup a VM or something.
Fusion360 is the only thing I run a VM for. There’s a repo out there that sets up wine and installs it but it just doesn’t work very well at all. I’m using VMWare Player and set up the virtual disk to boot from the Windows drive and run it that way. It works really well. Other 3D printing stuff like PrusaSlicer works great on Linux. I’d love to have a native version of Fusion though. Maybe someday.
For me there are a couple areas that just have a tough time in linux: VR Development, Digital audio workstations and niche utilities. It is getting better but still has a ways to go in these areas imo.

Specifically: VR Development - Unity now has a linux version which is great but there is no oculus runtime which means no oculus testing (SteamVR works but has some hiccups)

Digital audio workstations - Looking primarily at FL Studio, yes you can wine it but for me the audio delay makes it very difficult to use. I'd love to find solutions around this but haven't thus far.

Niche utilities - For game dev I've got a ton of old utilities for visualizing or converting old 3d object files to newer formats, sdks for old games that I occasionally need to pop into and all of them struggle or require a lot of setup to work properly on linux. For these I find myself booting over to windows, grabbing what I need and popping back to linux.

If you're talking about Windows apps that keep me from switching to Linux, I have an oddball one: it's a keyboard re-mapper that I wrote back in Windows 3.1 and still use. It does the same re-mapping in every application (except for some reason in Microsoft Edge). It's not a simple 1-for-1 mapper, which I think is readily available in Linux.

At the simplest level, it re-maps ^H to the left cursor arrow, ^N to PageDown, etc.

But it gets more complicated: ^D maps to seven down cursor arrows (i.e. it moves the cursor down seven lines), ^U in the opposite direction. ^C usually (more details below) maps to ^Left (i.e. go to the beginning of the word), Shift-^Right (select to end of word), and ^C (copy selected text). (Notice the final ^C does not cause recursion!)

^A once goes to the beginning of the line, ^A twice goes to top of screen (I forget the exact keystrokes it emits, but this works with most apps), and ^A thrice goes to the beginning of the file. Analogously for ^E, but end.

Finally, it has two modes. In the normal mode, all the cursor control keys do their normal cursor movement thing. But type ^Q, and the cursor keys are now in select mode: ^H outputs Shift-Left, i.e. selects the character to the left, etc. Drop out of select mode with ^C (copy selection--different from what I described above!), ^X (cut selection), or ^Q again (do nothing with the selection).

I'd love to be able to reproduce this kind of behavior in Linux. I'm sure it's possible, but I don't know enough about keyboard re-mapping, or keyboard drivers, to do it.

(comment deleted)
If you use Xorg you can use XInput2 and XIGrabKeycode[0] to grab specific key combinations and get notified (via event messages, they happen asynchronously) when they are pressed. Then you can use XTest and XTestFakeKeyEvent[1] to send the event you want.

XInput2 and XIGrabKeycode should provide the highest priority grabbing under Xorg so that even applications that do server-wide grabs (e.g. games) will be bypassed.

XTest was meant for automated UI testing but can be used for all sorts of automated behaviors.

For the first part i wrote a simple program[2] years a go that uses xkill to kill the toplevel window with Ctrl+Alt+K (mainly for games that grab the input and hang) which can be used as a quick example. I haven't tried to use XTestFakeKeyEvent but there seems to be a lot of code out there which can be used as an example, e.g. this one[2] (see the send_key function near the top).

[0] https://linux.die.net/man/3/xigrabkeycode

[1] https://linux.die.net/man/3/xtestfakekeyevent

[2] http://runtimeterror.com/tools/xkeyller/

[3] http://git.yoctoproject.org/cgit.cgi/matchbox-history/plain/...

Hmm, looks like the sendkey.c thing might work. Although the documentation on XTestFakeKeyEvent() specifically says "This extension is not intended to support general journaling and playback of user actions", which is what (I think) I want. I wonder why the disclaimer.
That sounds pretty similar to the QMK firmware that runs on my keyboard (an Ergodox-EZ).

It's been a blast to play around with. Best part is that it travels with the keyboard rather than the OS, so I can plug into a different computer and retain the same layout without needing to install anything.

I've been slowly resetting all my OS hotkeys/shortcuts to their defaults, and customizing the position of those keys on my keyboard instead. Current layout, for reference: https://configure.zsa.io/ergodox-ez/layouts/xbzAL/latest/0

Might be a good solution, if it can output multiple keys with a single keystroke, but unfortunately my keyboard can't travel with me. In particular I can't plug it into my work computer.
> don't get me started on windows settings or audio

I'll bite - what's wrong with the audio? Friends on mine in game dev often complain Linux audio is hopeless to work with.

Keeps switching between different outputs in games and no matter what I do with the default communication device etc. it keeps happening. I lose audio in games on random intervals and I don't get it back until I switch my output device to something else and back.

Used to happen only in Warzone but now I'm noticing it affects games with other engines as well.

Granted I have a very non-standard setup but it shouldn't be causing any of these issues.

Does Windows think that audio devices are being connected or disconnected? That's the only time I've had the default device switch on me. Annoyingly it can end up happening if you have a display that presents itself as an audio endpoint and then that display is turned off or even just goes to sleep.
Interesting perspective. I had always blamed it on something pertaining to my VFIO setup but I think you are pointing out something that might be at play here that I hadn't considered before.

I'll disable the speakers on the monitor from the HW menu on the monitor and see if that helps.

Maybe they just mean the audio UI? It's complex, and at least on Windows 10 it's a mix of the new UI and old UI.

For example, figuring out how to configure and test surround sound channels means click through multiple dialogs, and it's not clear how exactly to get there.

With Windows 10, it's even harder to access sound mixer than it was on previous versions, and this is what to use in 99% after clicking on audio icon in the taskbar.

Not the parent poster, but I'll chime in.

I have a pretty solid Dell laptop from work, and yet, there is one frustration that beats out anything else: audio.

I can't play music without it stuttering and skipping and sounding choppy and cutting out if something resource-intensive is happening, like Firefox loading a new page (but how often does THAT happen?)

Same with audio notifications. When my "new mail" notification sounds choppy, the underlying system must be just absolute garbage.

My main complaint on windows is more on the UI than the technical audio. I've got like 15 audio devices listed under the audio menu and windows can never figure out which one I intend to be playing from (and gives them terrible names) so I have to constantly be manually switching it around until I find the right one. My experience on Mac and Linux is that they seem to be able to switch to the right device as it connects then switch back appropriately when it disconnects.
Makes sense actually. That's been an annoyance of mine as well. I suppose I never realized it's better on other platforms.
USB hotplug is still a mess in Windows and so using any external audio interface or soundcard is just a mess.

The UI is complete garbage but siblings said enough about that dumpster fire already.

USB hotplug works fine, and has for 20+ years now. You may be blaming the OS for your vendor's incompetence at driver maintenance.
Standby/Resume or hibernate? Let's roll a 12-sided dice on wakeup, "1" is for "I forget all settings about a random device and re-install the driver" and "2" is for "I gonna act like it's not even there until you plug it out and back in again". Using a different USB port today? Hope you don't mind re-configuring!

This is especially annoying for audio devices, because lots of applications - and certainly any slightly more advanced setup - require explicit configuration of audio devices and when Windows does its "it's a different thing every time I see it" temper tantrum this means you have to go back to every application and tell it again "Yeah, that OUT3-4 that doesn't exist any more? Use the OUT3-4 that does exist", because the user-visible name stays the same (it's the same hardware, after all), while the underlying ID changes for one reason or another.

This has nothing to do with vendor's drivers btw., this is simply how hotplug works in Windows' driver model.

So no, this is not "working fine".

Have you heard of VFIO for Graphics Cards in Linux host with Windows Guest? Haven't tried it yet, but it's my winter project and I'm excited:

https://passthroughpo.st/

I haven't personally done much with VFIO but I have looked at it. From my initial look it seemed as if it would require two gpus, one for the host and one for the guest but it looks like some people have single gpu setups working

https://github.com/joeknock90/Single-GPU-Passthrough

(comment deleted)
(comment deleted)
Google has been doing this for years with ChromeOS and... it kinda works. It mostly works if you stick with their distro (Debian Stable - 1), but I've never been able to get their display forwarding tools to work anywhere else.

Seems like Linux is complicated enough without running it in a VM and forwarding everything up to to the host OS.

What Linux desktop apps do people want to run on Windows?

I'm struggling to think of anything I would use that isn't ported alteady, being GTK or QT or Java based.

As someone who is forced to use either Mac or Windows at work, I would love this for the sole purpose of using i3 again.
The use case I care about, and I imagine the use case Microsoft do as well, is developing for Linux on windows, so running an ide and not having to worry about a complicated cross compiling toolchain backing it.
I imagine if your app needs to interact with your Linux system, running it within WSL is a lot nicer.
This can never be the best GNU/Linux experience because you leave up your freedom and privacy at the door of the Windows login.

Anyone who is serious about the future of openess, freedom and privacy rights in software and general should strive for the original. I advocate not to hand over MS the control over the Linux desktop.

Large companies will always find a way to profit from the most valuable aspects of society at large.
Correction: This can never be the best GNU/Linux experience for people who feel the same as you do, that your privacy is highly-valuable and Windows takes some of it away.

I don't agree with those feelings, so it is indeed the best GNU/Linux experience for me.

I also wonder if this is the end of the "embrace" phase or the start of the "extend" one.
(comment deleted)
I completely agree with the sentiment of what you're saying. That said, that's not at all what this is. They are just making it easier to run GUI apps in WSL. This is already something you can do with VcXSrv or any windows-based X server. I've actually been using VcXSrv to run a full Ubuntu Buddgie desktop with GPU acceleration and native performance on my work machine for over a year now. If anything, this has made it easier to _get away from_ the telemetry and crap that goes along with a default windows install because windows has absolutely no idea what I'm doing within my WSL installation.

So yeah, nothing to see here, if anything this is good as it makes linux more accessible to people stuck in windows-only environments. This isn't even M$ making a desktop environment. They have just written an X server into windows instead of having to install one yourself.

side note: I'd also be quite happy if Windows slowly removed the windows parts and replaced them with unixy parts until the whole windows ecosystem could be considered unix-based. That would be so great for so many reasons.

So does that mean DirectX will be fully available under any Linux distro at some point?
Just waiting for some Linux-based VDIs now. Azure Virtual Desktop is all RDP-based. It also used to be called "Windows" Virtual Desktop.

While it's not something I would necessarily use for myself, having the option is really empowering especially for engineers within companies.

This is undoubtedly cool but I'm curious to know of a use case that would warrant installing this. Could this just have been a step in creating "Windows Subsystem for Android" [0] that they decided to release as its own layer?

The screenshot on the github page shows VSCode, Edge, Blender, Xcalc, Xclock and GNOME file manager which are all either available natively on windows or redundant.

[0] https://www.xda-developers.com/wundows-subsystem-android-ben...

Accessing the Windows filesystem from WSL and vice versa is extremely slow, so running for example your IDE in WSL and having your code etc. stored in WSL is useful. I think that is one of the big usecases. It's already kinda supported in vscode, where it runs a vscode server in WSL and Windows just runs the frontend.

It's useful for me when developing dotnet intended for Linux as I can store the code in WSL and be able to build, debug, run docker and so on directly from vscode.

Are you talking about WSL1 or WSL? Wsl2 is much much faster due to having a virtualized real linux kernel running
Accessing the WSL filesystem from WSL is indeed a lot faster on WSL2. Accessing the Windows filesystem from WSL or vise versa is even slower in WSL2 compared to WSL1.

https://docs.microsoft.com/en-us/windows/wsl/compare-version...

> As you can tell from the comparison table above, the WSL 2 architecture outperforms WSL 1 in several ways, with the exception of performance across OS file systems.

WSL2 disk access from the Windows side is very slow. It's the reciprocal problem of WSL1.

WSL2 Linux apps now get proper performance now but if your IDE is on the Windows side, access time to project files on native Linux partition is terrible.

...actually e.g. VS Code has a really great split backend, so you can actually have the frontend "properly" on Windows anyway, and yet still use WSL2.

My own case was something different: annoyingly configured automated browser tests with Cypress. Just running them inside WSL and letting that start a browser on the distro itself was the most comfortable way to debug these.

But I mean come on, they're Microsoft. If they really wanted filesystem access to be efficient across systems, we'd have it by now. Although convenient, I doubt that's on their list of primary motivations for doing this.
>But I mean come on, they're Microsoft. If they really wanted filesystem access to be efficient across systems, we'd have it by now.

Here's one of the developers saying it is hard back in the WSL days.

https://github.com/Microsoft/WSL/issues/873#issuecomment-391...

The reason makes sense to me, but I'm not an expert. Maybe you could expand on why you think they could do it but chose not to?

Seeing how every file system (NTFS) imrovement since windows 7 (like new compression methods) is done in layers running on top of ntfs. I think that Microsoft has either lost the source to ntfs driver or institutional knowledge of how it works.
The real answer is that they're building filters on top of NTFS because that's precisely how it was designed to work.
GP's explanation was almost as plausible, and much funnier.
Why is it so slow? I use VMware player and swapping files is fine. WSL2 seems like it's just using a lightweight VM over HyperV... is Hyper V really that much worse than VMware (and VBox) in this?
WSL2 uses 9P (of the venerable Plan 9 pedigree, I assume because Erick Smith is a nerd!) to remote the filesystems. I don't think that's part of HyperV (though it could be a custom VSP/VSC, and that channel is ridiculously slow.)

Personally I haven't run into slowness other than Windows sucking at copying lots of small files, which is NT's fault for allowing FS filter drivers and their ridiculous locking scheme.

Hardware drivers for new machines? As in, Windows supports all the hardware in your machine, but Linux doesn't (yet).
I can think of one niche use case; Houdini is a Linux/Unix native 3D graphics software which I would prefer to work with in a Linux environment, but on Windows to be alongside all the other applications in my workflow. I imagine there is software in other fields with similar situations.

Note there is nothing wrong with the Windows version of Houdini, it's just Linux is more suitable for it.

WSLg doesn't seem to have much overlap with Windows Subsystem for Android (although WSL itself does). Android doesn't use Wayland, or generally any of the GUI stack that desktop Linux does.

Pretty sure the point of the WSL and WSLg projects are to lure developers who would otherwise use macOS. After all, your local environment is likely even closer to production using WSL than it is on the BSD-derived macOS userland and Darwin kernel. Actually, early on in its life macOS (poorly) supported X11 apps using XQuartz as a similar lure.