Fantastic news for WSL2 users who want a consistent way for testing Linux GUI applications on one platform without installing another distro or dual booting on their PC. Interesting enough, it includes GPU acceleration as well.
Sounds like I can easily do all the Linux development I need to do on Windows 10 then, even possibly compiling the Linux kernel, knowing that it is well supported by Microsoft.
I already use Linux to rescue broken Windows installation (dozens of times), and Windows to rescue broken Linux installation (once) on the same machine. I appreciate Microsoft making it easier. Maybe easier is not the correct word, rather faster.
...somehow. Did I miss an answer to the 'how?' question in the article somewhere?
EDIT: Ah, El Reg[1] has my back:
> Not in 20H1 but announced at this year's Build is the arrival of GUI support for Linux apps running in WSL2 thanks to Wayland and RDP painting the app on the Windows desktop
I'm personally quite excited about this. Been experimenting with WSL2 on my desktop lately, trying to figure out if I could port over my existing dev workflow from Mac. One stumbling block I had was that I've been writing servers in Kotlin lately, using IntellIJ, which is more or less the only game in town for writing Kotlin.
I wanted to run my app (and tests) in WSL, so I could closer-match my production Linux environments (and continue using all the bash scripts and ad-hoc CLI calls I had in my project), but if I wanted to run in IntelliJ on Windows, this would be tricky: IntelliJ doesn't support the WSL2 virtual file system, so I couldn't leave my files "in Linux," which means I'd have to run my server using the mounted C:\ drive in WSL, which is much slower. More importantly, I'd have to duplicate all my dependencies between Windows and Linux just to get the IDE working correctly, and couldn't e.g. use the IntellIJ test runner to run tests under Linux.
So... I just grabbed an X Server[1], installed XFCE in Ubuntu, installed IntelliJ, and then just started running it through that. And it works flawlessly as an app! I use the floating window mode in X410 so it just looks like any other Windows app (I mean, it's already a Java desktop app, so it's not exactly platform-native to begin with).
The only issues I had were clearly just with the X Server integration: sometimes, when I had other windows open over IntellIJ, tooltips would still start showing up in IntelliJ from whatever was underneath my mouse, sometimes right click menus just mysteriously stopped working until I restarted the server, etc. The latter was particularly annoying since you can't restart the server without restarting the app, but was infrequent enough I was okay living with it.
That said: I am hopeful that this new Windows integration will perform better and with fewer bugs than the X server implementations out there right now. The fact that it will support GPU integration makes me think it must be doing more than just a traditional X server - in fact, doesn't that require Wayland? Curious how this is implemented under the hood.
[1] I'm using https://x410.dev/ but there's a decent amount of options. This one is paid, but at least is on sale right now.
It is great and it will certainly be very useful to a lot of people, but I cannot help it but to remain sceptical about the whole "reborn Microsoft" public image.
Microsoft is a monopoly (or very close to one) which has been doing whatever is needed to thwart competition.
My concern is centered around this slowing down the progress and development of the desktop linux experience in general
The desktop linux experience has been piss poor for well over a decade now. I've been using it off and on since Ubuntu Breezy. It's still so bad that I've removed it from all of my machines except for my home server. WSL is now the only way that I actively interact with Linux.
None of this thwarts Linux at all- quite the contrary. This enables more users and possibly allows more people to develop and improve Linux who do not wish to dedicate a full machine to the task.
I had no quarrel with Windows 8, you could click one tile to get the the desktop. That was the depth of my headache. Not really a big deal. Small cost for being able to play and run anything I've ever wanted without issue.
Not even close. Take any typical distro and you find that none of the components are really designed to work with each other and so they all have the risk of failing in different ways. What that means in reality is that you are now mentally managing all these components instead of just the OS as a whole. For example, a window manager in Ubuntu crashing due to an NVIDIA driver, at the same time the USB drive containing a potential fix cannot be mounted due to some random problem with the USB stack. Once you figure this out and get your GUI back, attempts to adjust settings cause more headaches when your specific Ubuntu variant has renamed all the tools for no real reason and you are left hunting for the specific toggle only to eventually discover it is not exposed so you are relegated to editing some random config file. All of this just leads you to lose confidence that your system is ever really stable. You start to get an underlying worry that at any moment, a wrong button click or the wrong app will break something in your system. You wonder how after 10 years they still cannot understand how to QA this thing. Releases do not get linearly or exponentially better but are a checkerboard of random issues being fixed whole other new issues are created.
Contrast that with Windows 8: Take Windows 7, enhance performance + add a easily skippable start screen. You still have the comfort and confidence of a solid OS (Win7) but with a different background. I can live with that.
I agree that stuff sounds annoying but I don't think Windows is much fundamentally better like you are implying it is. Almost every point you make can basically also apply to Windows.
> USB drive containing a potential fix cannot be mounted due to some random problem with the USB stack
Driver stuff also breaks on Windows, for example I did have a new laptop where the Intel Wifi card would always stop working after an hour or so with no way to diagnose the problem, due to bad drivers presumably.
> your specific Ubuntu variant has renamed all the tools
Have you not noticed how all the new settings dialogs since they started trying to deprecate Control Panel have piled up different interfaces for accessing the same settings, some of which don't have all the settings meaning you have to dig back in the old interfaces. Plenty of stuff on Windows you might want to change requires editing the registry. One difference on Windows is that Microsoft will probably overwrite that setting change randomly on a subsequent OS update.
> after 10 years they still cannot understand how to QA this thing
Do you not see the frequent articles about Windows 10 QA issues, there was one just the other day on HN front page for a while [1]
> checkerboard of random issues being fixed whole other new issues are created
>Driver stuff also breaks on Windows, for example I did have a new laptop where the Intel Wifi card would always stop working after an hour or so with no way to diagnose the problem, due to bad drivers presumably.
I tend to find that on a clean install pretty much every Windows machine I have encountered operates smoothly. I tend to stick to brands such as Dell, HP, Lenovo and Acer. I guess with no name brands there is a chance the drivers are not up to snuff? Even then I find that most drivers these days are included via Windows 10's Update feature. They have been solid. Again, I am only comparing a clean install. Every year for the last 10 years I have found something that is system breaking in Linux. The example I cited was the most recent attempt to try the latest Ubuntu & Ubuntu mate distros. I go back and try again every year as a side project but I usually switch back to Mac in a day or so when I discover more problems.
>Have you not noticed how all the new settings dialogs since they started trying to deprecate Control Panel have piled up different interfaces for accessing the same settings, some of which don't have all the settings meaning you have to dig back in the old interfaces. Plenty of stuff on Windows you might want to change requires editing the registry. One difference on Windows is that Microsoft will probably overwrite that setting change randomly on a subsequent OS update.
Yes I have seen them but it hasn't been an issue for me as Control Panel is still there basically unchanged since Windows Vista. Thats ~13 years where I can feel confident that a toggle that I expected to be in a certain place has always been in that place. This shouldn't be changing so much in Linux or any OS. A toggle in a control panel is something you use once in a blue moon and forget about. Having to hunt down the toggle because it keeps changing just adds to frustration you don't need.
>Do you not see the frequent articles about Windows 10 QA issues, there was one just the other day on HN front page for a while
Windows has always had issues with updates and upgrades from old crumbly systems. I admit that. Mac seems to be the best at this. Linux fails on a clean install(my story was from a fresh clean install). It is not a fair comparison.
In regards to the checkerboard comment, I'd like to add that you have to consider the severity of the issue. On Mac & Windows the majority of issues in a clean install have tended not to be severe system breaking issues in my experience. In Linux the system breaking issues(like the ones I describe) are fixed and replaced by totally different system breaking issues. This is a important distinction because it raises the amount of tolerance required to keep using the OS.
> I tend to find that on a clean install pretty much every Windows machine I have encountered operates smoothly.
This is by construction. A major brand like Dell would not release a computer that does not work with the pre-installed operating system.
That means that Linux is more likely to have problems (especially driver issues) on any random computer you install it on. For the most part, things have gotten a lot better over time, but it's not 100% (especially with newer hardware that might not yet be supported by the kernel). Without the same level of adoption of Linux as Windows has, I doubt Linux will ever get to the same level of out-of-the-box functionality as Windows, simply because nobody is ensuring that it works on every computer that is sold.
Oh I totally understand Linux not being polished on various pieces of hardware. This is acceptable given that the OEM may not be directly supporting Linux on that piece of hardware.
What is not acceptable is the "checkerboard" issue I talked about in my original comment: The idea that one version of a distro like Ubuntu or Ubuntu MATE working perfectly on a piece of hardware and the next version being completely broken and then going back and forth with this dance each year.
This shows two fundamental flaws with the OS: The subcomponents are not architected well and that there is poor QA practices leading to constant regressions.
In my case, in the second to most recent version of Ubuntu, the issue was after a clean install, the desktop loaded correctly but after the first reboot of the clean install, the desktop would begin crashing when attempting to login. As a result, you would be permanently stuck at the login screen unless you dropped to a lower tty and logged in that way. I had no clue what was happening until spending some time researching. Apparently my 5 year old NVIDIA card had some bug that broke some component used when initializing the desktop.
This leads to the second issue which is poor QA. Maybe these issues are better on certified hardware? I haven't made the decision to drop a lot of money on specific hardware to find out and from my experience, "certified" hardware is crippled in some way. Whether it is poor keyboard, low quality display, or just lousy config options. While I praise Windows, officially I have three different OS machines under my desk but only really use the Mac for 99% of my work. Every year I go back to try the latest Ubuntu and Ubuntu MATE just to stay recent but these days I usually hit an annoying/serious issue and walk away super quickly. I just haven't the stomach to spend as much times on this as I used to even though I really want open source and GNU/Linux to succeed.
I can’t deny your experiences but anecdotally, two things which always seem to come up in ‘I try to use Linux but it’s just so broken’ threads are Ubuntu, and nVidia. See the other poster in the parallel comment thread for example. Indeed the 2 times I remember installing Ubuntu in the past, it felt pretty broken to me too for the hour or two chance I gave it.
I can't use gestures on Linux because it requires Wayland and Wayland is not compatible with Nvidia drivers. Because of my graphics card I can't use gestures. That's the Linux desktop experience™ for ya and it's why I only use Linux for the terminal and nothing more.
I'll say again- I'm a huge Linux fan. I use it daily. I've been using it since Ubuntu Breezy. But my Windows PC has never given me the headaches that the Linux desktop has and continues to have. Today I use Windows and WSL and sleep well at night.
They all annoy me... even macOS... just in different ways... I will say, with WSL2 in Windows since early march, it's the first time I've enjoyed using windows, since most of my work is in WSL with VS Code, and I just use the apps I need in windows outside of that...
Almost like the best of both worlds... of course, I've pinned both my windows and linux home directories to explorer, and added the following to my .bashrc
alias open=/usr/bin/wslview
For the most part, it's been really nice... docker working as expected is a nice change as well... no fiddling with CPU/Memory options anymore.
I have been using almost exclusively a linux desktop for almost a decade, so our opinions vary a lot.
It is probably easier to create a more polished final outcome with billions in budget and close ties/leverage on hardware manufacturers, but the past few years the situation in linux is nothing like a decade ago.
The value of the freedom added by Linux in the computing exosystem is immeasurable imo. Sometimes in windows you cannot even shut your computer down if you want.
And again, I have no real argument as to why this WSL update could be a bad thing, but I'm still sceptical
embrace, extend, extinguish. And this is the second phase, extend. They've embraced it with the "linux subkernel" or whatever, now they're extending it by making it harder to distinguish from windows because the apps can run in the same place
Been on windows desktop again since early march for a couple work projects... have to admit, WSL2 + Docker experience has been far better than I expected. Seeing support for GUI apps makes me very happy, though the only app I really use IN wsl is via the VS Code remote extension.
I know a lot of people using various IDE software will be happy to see this involvement though... not sure I'd get much use out of the GUI side other than maybe testing apps.
At this point, very happy with the new terminal with wsl2 as my default open... I actually feel productive on Windows for a change and get to mostly ignore all the windows-isms for most projects.
32 comments
[ 4.9 ms ] story [ 72.1 ms ] threadSounds like I can easily do all the Linux development I need to do on Windows 10 then, even possibly compiling the Linux kernel, knowing that it is well supported by Microsoft.
Suddenly the Year of Desktop Linux is here :)
I wonder what WSL2 brings to the table apart from maybe performance optimization and a little more integration to Windows than a third party app.
Does it have any feature that VMware doesn't have?
EDIT: Ah, El Reg[1] has my back:
> Not in 20H1 but announced at this year's Build is the arrival of GUI support for Linux apps running in WSL2 thanks to Wayland and RDP painting the app on the Windows desktop
[1]: https://www.theregister.co.uk/2020/05/19/wsl2_gui/
I wanted to run my app (and tests) in WSL, so I could closer-match my production Linux environments (and continue using all the bash scripts and ad-hoc CLI calls I had in my project), but if I wanted to run in IntelliJ on Windows, this would be tricky: IntelliJ doesn't support the WSL2 virtual file system, so I couldn't leave my files "in Linux," which means I'd have to run my server using the mounted C:\ drive in WSL, which is much slower. More importantly, I'd have to duplicate all my dependencies between Windows and Linux just to get the IDE working correctly, and couldn't e.g. use the IntellIJ test runner to run tests under Linux.
So... I just grabbed an X Server[1], installed XFCE in Ubuntu, installed IntelliJ, and then just started running it through that. And it works flawlessly as an app! I use the floating window mode in X410 so it just looks like any other Windows app (I mean, it's already a Java desktop app, so it's not exactly platform-native to begin with).
The only issues I had were clearly just with the X Server integration: sometimes, when I had other windows open over IntellIJ, tooltips would still start showing up in IntelliJ from whatever was underneath my mouse, sometimes right click menus just mysteriously stopped working until I restarted the server, etc. The latter was particularly annoying since you can't restart the server without restarting the app, but was infrequent enough I was okay living with it.
That said: I am hopeful that this new Windows integration will perform better and with fewer bugs than the X server implementations out there right now. The fact that it will support GPU integration makes me think it must be doing more than just a traditional X server - in fact, doesn't that require Wayland? Curious how this is implemented under the hood.
[1] I'm using https://x410.dev/ but there's a decent amount of options. This one is paid, but at least is on sale right now.
Microsoft is a monopoly (or very close to one) which has been doing whatever is needed to thwart competition.
My concern is centered around this slowing down the progress and development of the desktop linux experience in general
None of this thwarts Linux at all- quite the contrary. This enables more users and possibly allows more people to develop and improve Linux who do not wish to dedicate a full machine to the task.
You can say the same about Windows with a pretty straight face, too
(OK maybe not quite 10 years - Windows 8 was 2012)
Contrast that with Windows 8: Take Windows 7, enhance performance + add a easily skippable start screen. You still have the comfort and confidence of a solid OS (Win7) but with a different background. I can live with that.
> USB drive containing a potential fix cannot be mounted due to some random problem with the USB stack
Driver stuff also breaks on Windows, for example I did have a new laptop where the Intel Wifi card would always stop working after an hour or so with no way to diagnose the problem, due to bad drivers presumably.
> your specific Ubuntu variant has renamed all the tools
Have you not noticed how all the new settings dialogs since they started trying to deprecate Control Panel have piled up different interfaces for accessing the same settings, some of which don't have all the settings meaning you have to dig back in the old interfaces. Plenty of stuff on Windows you might want to change requires editing the registry. One difference on Windows is that Microsoft will probably overwrite that setting change randomly on a subsequent OS update.
> after 10 years they still cannot understand how to QA this thing
Do you not see the frequent articles about Windows 10 QA issues, there was one just the other day on HN front page for a while [1]
> checkerboard of random issues being fixed whole other new issues are created
Sounds like every OS. See [1]
[1] https://www.forbes.com/sites/antonyleather/2020/05/18/new-wi...
I tend to find that on a clean install pretty much every Windows machine I have encountered operates smoothly. I tend to stick to brands such as Dell, HP, Lenovo and Acer. I guess with no name brands there is a chance the drivers are not up to snuff? Even then I find that most drivers these days are included via Windows 10's Update feature. They have been solid. Again, I am only comparing a clean install. Every year for the last 10 years I have found something that is system breaking in Linux. The example I cited was the most recent attempt to try the latest Ubuntu & Ubuntu mate distros. I go back and try again every year as a side project but I usually switch back to Mac in a day or so when I discover more problems.
>Have you not noticed how all the new settings dialogs since they started trying to deprecate Control Panel have piled up different interfaces for accessing the same settings, some of which don't have all the settings meaning you have to dig back in the old interfaces. Plenty of stuff on Windows you might want to change requires editing the registry. One difference on Windows is that Microsoft will probably overwrite that setting change randomly on a subsequent OS update.
Yes I have seen them but it hasn't been an issue for me as Control Panel is still there basically unchanged since Windows Vista. Thats ~13 years where I can feel confident that a toggle that I expected to be in a certain place has always been in that place. This shouldn't be changing so much in Linux or any OS. A toggle in a control panel is something you use once in a blue moon and forget about. Having to hunt down the toggle because it keeps changing just adds to frustration you don't need.
>Do you not see the frequent articles about Windows 10 QA issues, there was one just the other day on HN front page for a while
Windows has always had issues with updates and upgrades from old crumbly systems. I admit that. Mac seems to be the best at this. Linux fails on a clean install(my story was from a fresh clean install). It is not a fair comparison.
In regards to the checkerboard comment, I'd like to add that you have to consider the severity of the issue. On Mac & Windows the majority of issues in a clean install have tended not to be severe system breaking issues in my experience. In Linux the system breaking issues(like the ones I describe) are fixed and replaced by totally different system breaking issues. This is a important distinction because it raises the amount of tolerance required to keep using the OS.
This is by construction. A major brand like Dell would not release a computer that does not work with the pre-installed operating system.
That means that Linux is more likely to have problems (especially driver issues) on any random computer you install it on. For the most part, things have gotten a lot better over time, but it's not 100% (especially with newer hardware that might not yet be supported by the kernel). Without the same level of adoption of Linux as Windows has, I doubt Linux will ever get to the same level of out-of-the-box functionality as Windows, simply because nobody is ensuring that it works on every computer that is sold.
What is not acceptable is the "checkerboard" issue I talked about in my original comment: The idea that one version of a distro like Ubuntu or Ubuntu MATE working perfectly on a piece of hardware and the next version being completely broken and then going back and forth with this dance each year.
This shows two fundamental flaws with the OS: The subcomponents are not architected well and that there is poor QA practices leading to constant regressions.
In my case, in the second to most recent version of Ubuntu, the issue was after a clean install, the desktop loaded correctly but after the first reboot of the clean install, the desktop would begin crashing when attempting to login. As a result, you would be permanently stuck at the login screen unless you dropped to a lower tty and logged in that way. I had no clue what was happening until spending some time researching. Apparently my 5 year old NVIDIA card had some bug that broke some component used when initializing the desktop.
This leads to the second issue which is poor QA. Maybe these issues are better on certified hardware? I haven't made the decision to drop a lot of money on specific hardware to find out and from my experience, "certified" hardware is crippled in some way. Whether it is poor keyboard, low quality display, or just lousy config options. While I praise Windows, officially I have three different OS machines under my desk but only really use the Mac for 99% of my work. Every year I go back to try the latest Ubuntu and Ubuntu MATE just to stay recent but these days I usually hit an annoying/serious issue and walk away super quickly. I just haven't the stomach to spend as much times on this as I used to even though I really want open source and GNU/Linux to succeed.
I also like to play video games.
Almost like the best of both worlds... of course, I've pinned both my windows and linux home directories to explorer, and added the following to my .bashrc
For the most part, it's been really nice... docker working as expected is a nice change as well... no fiddling with CPU/Memory options anymore.It is probably easier to create a more polished final outcome with billions in budget and close ties/leverage on hardware manufacturers, but the past few years the situation in linux is nothing like a decade ago.
The value of the freedom added by Linux in the computing exosystem is immeasurable imo. Sometimes in windows you cannot even shut your computer down if you want.
And again, I have no real argument as to why this WSL update could be a bad thing, but I'm still sceptical
I agree. I still love Linux and use it daily...just in a terminal. My complaints were toward the desktop experience.
Or Linux, Linux can’t be bought
I'd say it would take a cold day in hell before Linus would work at M$ but since 2016 it seems anything is possible.
Is this the embrace phase?
extend: in progress
...
I know a lot of people using various IDE software will be happy to see this involvement though... not sure I'd get much use out of the GUI side other than maybe testing apps.
At this point, very happy with the new terminal with wsl2 as my default open... I actually feel productive on Windows for a change and get to mostly ignore all the windows-isms for most projects.