Initial preview of GUI app support for the Windows Subsystem for Linux
devblogs.microsoft.com
devblogs.microsoft.com
You see me impressed. Especially as they are supporting Wayland. Now please make electron apps non-blurry on Wayland
Is there anything in particular that is broken and/or missing from Electron's Wayland implementation? Or are you referring to GNOME's refusal to implement server-side decorations [1][2] as a limitation of Electron?
[1] - https://gitlab.gnome.org/GNOME/mutter/-/issues/217 [2] - https://github.com/electron/electron/issues/27522
https://github.com/electron/electron/pull/26022#issuecomment...
[0] https://code.visualstudio.com/assets/home/home-screenshot-wi... [1] https://a.slack-edge.com/a084c/marketing/img/downloads/scree... [2] https://pureinfotech.com/wp-content/uploads/2019/12/microsof... [3] https://www.chip.de/ii/1/1/4/4/7/3/5/4/0/ea621fe64b8418e9.jp...
Usually implementing CSD properly for each platform requires a bit more work than just relying on the toolkit's default or on SSD. This shouldn't be a problem for applications that have the resources to do this properly, as in your examples. But I'm a bit afraid that, given Linux desktop's market share, smaller app developers might not have the resources to do this right and then Linux will start inheriting the look and feel from Windows and macOS. Maybe this won't be a problem in practice, but if this starts happening, then the experience for Linux desktop users will be worse than just using SSD.
In any case, we'll have to wait and see how it all plays out. I think both SSD and CSD have their use-cases and I still wish GNOME's would reconsider their position on this.
GNOME is an open source project, asking them to reconsider a position doesn't make sense -- the default response to every feature request is "no" unless someone volunteers to implement it. And honestly I see very little chance that the current GNOME volunteers are going to implement server side decorations in Wayland unless someone outside the project steps up to do the work. Maybe Canonical would pay for it? It's a major change for something that no GTK/GNOME apps would even use, and it wouldn't really benefit those small applications... they would still have to draw their own decorations to handle any other window manager that doesn't implement decorations, such as Weston.
I don't think GNOME would accept a pull-request adding SSD regardless of where it came from (I'd love to be proven wrong though). In fact, someone asked this exact question [0] and it got no reply. But after reading the whole thread a while ago my takeaway was that such a pull-request would not be accepted.
> [...] it will work on any window manager that doesn't provide decorations, not just GNOME.
GNOME is the only real desktop compositor that doesn't support SSD. The main reason no one is complaining about Weston not supporting server-side decorations is because there aren't many (any?) people running Weston on the desktop. Also, there's no technical reason why SSD couldn't be added to Weston too.
Again, as I've mentioned before I think both SSD and CSD have their use-cases. GNOME thinks otherwise and that's okay. But it doesn't seem to be (only) due to lack of resources.
[0] - https://gitlab.gnome.org/GNOME/mutter/-/issues/217#note_3569...
There are other window managers that don't support server side decorations, I don't know why people always single out GNOME. Weston is important too, it's not often used directly but it's used as a base for other implementations -- if your app is busted and has no decorations on the reference implementation it can hardly be called a working Wayland app. Server side decorations do have a use case but they're not equivalent to client side decorations. I used to think they were until I tried to implement them in a window manager, now I see server side decorations as mostly a broken concept unless it's in very specific circumstances. The toolkits and apps have to implement client side decorations if they want to ensure the correct behavior everywhere, it's unavoidable.
I think that's a reasonable question to ask! I think a lot of this landed earlier though: https://blogs.windows.com/windowsdeveloper/2020/06/17/gpu-ac...
Thanks Microsoft!
... except that if Microsoft did, likely very few would embrace such extensions.
A successful EEE play requires a lot of pre-existing trust that has to last through the Extend phase, which is why I don't think they'll ever try that again in the foreseeable future.
Seriously, you kids do not remember things clearly or simply weren't around.
Microsoft simply cannot be trusted.
Maybe ya'll are fine forgiving and forgetting but personally I take a stance on a company for this kind of behaviour I don't forgive.
Same goes for a lot of companies with awful histories of Child Labor and agregious abuses.
> Linux is the long term threat against our core business. Never forget that!
I won't.
https://www.theregister.com/2001/11/12/ms_promotes_linux_fro...
(Not that I'm comparing the two but since you brought in child labor I'm just going further down that lane.)
Ballmer went head to head with open source and thought he could crush the threat. That didn't work, and things weren't looking great for MS before he was ousted.
Nadella's strategy is far more subtle: not quite Embrace/Extend/Eliminate, more Embrace/Neutralise/Replace.
Linux is a threat to server-side windows? Fine. Let them deploy on linux, so long as those linux boxes are in Azure. But that means devs get familiar with linux at the expense of windows, which means (a) they'll want linux on their desktop and (b) things are more readily transferable to AWS/GCP/whatever.
So: give them linux _in_ windows. Make appealing tools like vscode available free to create good will and positive sentiment towards Microsoft. Re-build the advocacy that hemorrhaged in the latter days of Ballmer's tenure.
And they're nailing it. By comparison to Google/Facebook/Amazon, there's very little negative press for Microsoft. And lots of positivity, even just in this thread.
It's hard not to be impressed by how successful they're being. And I say that as someone who still bears the scars from the 90s/00s hegemony. Microsoft was positively reviled by swathes of people in those days. Their attitude and market abuses rightly got them into hot water with the DOJ.
So, whilst I respect the turnaround, I'm wary. Microsoft is cruising inexorably back to dominance. History says that wouldn't be a good outcome.
[0]: https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/
I think it's smart because this will capture all those Linux people who aren't super comfortable administrating their own distro and even for those that are it's now giving them another option if they ever need to run things both in Windows and Linux at the same time or just run into some Linux issues and don't want to spend the time on them they can switch to Windows 10 WSL.
At this point the only thing that I still think it doesn't make much sense is Microsoft running/developing their own kernel. It's entirely possible for them to start running Linux and run all the WIN32 support, drivers, DirectX, etc as a separate sandbox (similar to the type of sandbox WSL runs). The performance overhead from doing that should be negligible on modern hardware.
EDIT: note that I only mean switching to Linux kernel for their desktop OS, there are plenty of usecases of Microsoft kernels where every bit of performance matters but I suspect those will continue to use their own kernel as part of Windows Server releases.
Corporate pride took a huge hit after they completely wiffed on mobile, then went on to throw good money after bad for a long long time before they were willing to admit that they had lost. Think about where MS could be if they taken google/android seriously at the beginning. For a while, the prevailing opinion was that Microsoft was nearly (or already) no longer a a supermax tech company.
Lots of business orthodoxy got nixed, most prominently the supremacy of Windows over all.
[0] https://3rdpartycodeprod.blob.core.windows.net/download/Azur...
A lot of developers use MacOS, particularly web developers who are almost always deploying the server to a linux machine. With the Mac being BSD-flavoured, a lot of open source tooling works the same as it does on Linux. MacPorts and Homebrew have done a lot to drive that.
The experience on Windows for this has been incredibly poor. There are solutions, but they're less integrated.
WSL comes in, along with Windows Terminal, and now you can have a much nicer time with it all without dual booting or running a VM.
Who knows where it'll be in a decade, but if anything, they're just making themselves a viable competitor to Apple by providing better development tools than they do.
Once I moved to Manjaro/XFCE a few years ago, all the problems disappeared. Docker just works. All the web dev tools are built for my platform and just work. There are no compatibility layers or emulation layers to worry about. I'm in charge of updates. I don't get nagged to do things at inopportune times. I'll never go back to either one of them full time. Windows for games, Macs for iOS/Xcode. That's it for me. Even for .Net and iOS now - I can do that too on Linux with .Net core and React Native.
Before WSL1 I would run Linux inside a VM from Windows and use remote development tools (like VSCode via SSH, SSH tunnels for port sharing, etc). It was all pretty straight forward, stable and I had no issues.
I used WSL1 when it launched and it was _incredible_. Bash actually on Windows. My workflow changed because of the level of integration I had with Windows. I could run browser automation tools against my Windows browsers, from Linux. I could run Windows programs from bash.
WSL2 came on the scene and introduced a hypervisor layer and I essentially came full circle. Sure it has some smarts around memory VM allocation - but it doesn't always work right and you're never really certain it's not running, consuming memory. Network port mappings were automatically tunneled, but only in one direction and they would occasionally fail causing random issues that require a reboot to solve. Now GUI windows are shared with Windows via RDP, cool..
Ultimately, WSL2 is the attempt to take Linux VM and make it appear like it's not a VM. Maybe it'll get there one day, but due to the got-ya's it's not for me.
I have since reverted back to using my choice of distro inside my choice of hypervisor, where I know what's going on and don't have to mentally reverse engineer the magic when it goes wrong.
Cygwin has been able to do this for 2 decades, actual bash plus other unix tools compiled to actual windows exe's. You can even run some gui tools if you run an xserver on windows.
Even WSL1 wasn't as good, there were too many issues like tail not working properly on windows files, issues with network shares, interop, etc. I pretty quickly reverted to cygwin.
I much prefer WSL1 and I've only run into a couple of issues over the last year (can't set Windows time from Linux and ssh-agent doesn't work out of the box) which is a significant improvement over cygwin or even a proper linux distro (which would occasionally boot to a black screen after updating anything related to X)
> Ultimately, WSL2 is the attempt to take Linux VM and make it appear like it's not a VM. Maybe it'll get there one day, but due to the got-ya's it's not for me.
In my experience, its been pretty great and elegant to work with. I've used it for ~1.5 years so far and they seemed to have broken down a lot of those vm walls to make it seem like some kind of hybrid windows + linux operating system. Doing stuff like 'code .' from within wsl to open the current wsl working dir in the vscode windows gui is pretty neat. And you can also do kind of neat stuff like writing to your windows clipboard from within WSL by running the powershell windows executeable. This is in my wsl .bashrc to do that:
function cb () { powershell.exe -command "\$input | set-clipboard" }
echo "hello" | cb # write hello to my windows clipboard
Microsoft is very good at making deals with management. The marketing/sales apparatus is what really sets them apart. I can imagine being forced to give up my mac because someone who is barely technical made a decision after going out to lunch and hearing that WSL solves all the reasons I would use a Mac while giving more control to the enterprise.
While that example is a stretch to match the story, it's basically the reason why all the developers where I work have to spend time migrating from our self-hosted GitLab to GitHub enterprise. BTW If anyone at GitHub is reading this, can someone pretty please add sub namespaces within the enterprise?
Then they tried asking us to install CrowdStrike voluntarily on our Linux machines. I told them sure, once they ship a NixOS package for it. They never did, and the company shut down in any case.
This limitation came as a surprise even to the client, they were under the impression that Linux would work fine.
That said, I'm glad they're seeking to benefit by increasing interoperability and developer goodwill. Their current strategy is good for users and devs and probably the best we can hope for. This will change if/when Windows becomes the one and only viable platform again and switches back to using that as leverage, but with the way things are going I think that will take a while. Not only have they been losing to Linux on the server front, they've been losing to the web and Apple/Google on the application & mobile fronts, so they are a long way from lock-in there.
I haven't really seen that, as a primarily Windows Dev all the moves they are making are to encourage you to use Linux over Windows for backend work.
Hell, they own Windows but for some reason App Services targeting Windows are more expensive than Linux on Azure. It's almost as if they want us off Windows.
Could be easier for just make Linux do the hard lifting and put a Microsoft layer on top
They charge AWS the right to use Windows - so Azure also needs to markup by a similar price, otherwise they would fall foul of antitrust regulations. It’s not legal to give Windows away for free on Azure but not AWS/GCP/anyone else who wants to rent a computer from their garage (I.e. essentially making Windows Server free-as-in-beer).
As one of those developers, I hope so: but I can barely bring myself to use VSCode, and made excuses to switch everything to GitLab once they bought GitHub. The latter is somewhat of a coincidence but it was a factor for sure.
Honestly curious, are you referring to Microsoft's illegal[0] tactics to destroy Netscape?
[0]https://www.washingtonpost.com/archive/politics/2000/04/04/j...
Also while this image https://i.redd.it/c4izfrkd4jl61.png is obviously just a meme (before we even called them memes) it really does grasp the messaging from Microsoft about Linux around the turn of the century. Dating the meme is easy, that's a first gen iMac visibly. https://i2.wp.com/sixcolors.com/wp-content/uploads/2018/05/b...
Those were not happy years.
1) Putting code in Windows, back when it was a separate graphical shell that ran on top of DOS, to detect if it was running on DR-DOS and shutting down with error messages more or less vaguely blaming the underlying OS.
2) Screwing their development partner IBM over on their joint project OS/2, switching to marketing their own branch Windows NT in stead.
3) Bundling their productivity apps together into an "Office Suite", thereby having the strongest[1] ones help selling the weaker[1] ones. (Yes, such bundling used to be illegal; it's actually a legal term that may have entered the vernacular via their first antitrust trial. For all I know it still is illegal in other industries.)
4) Related to both of the above, faking out Lotus and Word Perfect by pretending that OS/2 was the way to go, but themselves developing MS Office to have it work much better on Windows 3.x than these competitors. Arguably, WP an Lotus were somewhat out of touch and got started on porting their apps to Windows 3 far too late... But from all one could gather from the media at the time (and the trial documents later), that was in large part because MS had kept them in the dark.
5) OEM license deals with computer manufacturers that made selling both machines with Windows and with other OSes much more expensive for the manufacturer than if they sold only Windows machines. This was the main reason, IIRC far into this century, that it was almost impossible for ordinary consumers -- including up to at least SMBs -- with Linux preinstalled. (And I suppose this history has led to entrenched habits and business models in the industry which still make it pretty difficult and rare.)
And these are just the landmark ones that come to mind immediately. Beyond that, there were just endless amounts of "FUD"[2] and "EEE"[3] that helped them become a de facto monopoly in PC operating systems (and, arguably, office productivity software) -- "Linux is a cancer", etc etc. (Wouldn't surprise me if they're behind the insidious terminology of calling copyleft licenses "infectious" and "viral", too.)
All in all, back in their heyday -- from at least the mid-eighties to at least the early 00s -- they were just simply the actual supervillain of the computer industry.
And damn, it makes you feel old -- "What's wrong with kids nowadays, that they don't know this stuff?!?"... No, really, I just realized I'll probably never get around to trusting Microsoft again: When someone's been behaving very badly for years, then claims to be rehabilitated, how long does it take you to see them as trustworthy again... Twice as long as they were "bad"; three times? Counting low, say twenty years of monopolistic FUD / EEE / illegality and a 2× "probation period" starting ten years ago, that would be in thirty years. If I live, I'll be 87 then.
Buuut... Given their history as I know it, these current WSL shenanigans feel far too much like EEE all over again. (And, not to be too paranoid about it, I'm still not sure Stephen Elop wasn't a mole parachuted in at Nokia to try and make the mobile phone industry a Windows Mobile quasi-monopoly...) So, supervillain career possibly still ongoing.
___
[1]: Which is which varied with the customer. In the legal business, Word Perfect used to be the absolute de facto standard, but they were probably less married to their Lotus 1-2-3 spreadsheets, so getting Excel bundled in "for free" with MS Word was at least a bit of an incentive to switch. In the accounting industry, it worked the other way around.
[2]: "Fear, uncertainty, and doubt".
[3]: "Embrace, extend, extinguish".
I'm curious as to why they didn't just purchase https://x410.dev/ and integrate that into WSLv2 as it has hidpi support already too. Also If Microsoft is able to get GPU compute working with native performance I would absolutely switch back from M1 mac.
It's hard for me now to love an OS that
* blatantly spies on its users[0]
* has an update mechanism that takes way too much time and CPU
* and an antivirus software that scans those updates, making the machine even slower
* shows ads, even though users paid for the OS[1]
* in its "professional" edition comes preinstalled with all kinds of cruft like Candy Crush[2][3]
* in its home edition blocking users to install a different browser, patronizingly claiming that Edge is the best[4]
Switching to Linux made me feel like I actually own my machine again.
[0]https://www.privacytools.io/operating-systems/#win10
[1]https://www.pcmag.com/how-to/how-to-remove-the-most-annoying...
[2]https://i.imgur.com/qhoV17Q.png
[3]https://www.pcmag.com/news/windows-10-will-come-with-candy-c...
Then I went back to virtualized Linux because I got tired of my hardware not working.
Now I get the best of both worlds for me. I can do all my work in Linux and all my peripherals work.
Not everyone that chooses to run something else does so because they're incapable or an idiot, sometimes people just want to take the happy path and get on with the important things.
This 100% describes me. Not only does WSL remove a reason to dump Windows for Linux but it evens removes the need to dual boot. Linux is becoming a Windows App like a browser or media player.
(all of this comment completely fictional).
- Sometimes the preferences just decide to go through the "open as a json file" path
- I don't know if it's my settings or what, but in WSL2/Ubuntu 20.04 I keep getting into a state where my background is black but lines fill in white. I've used the same .bashrc for a decade without that issue.
- The copy/paste UI is different both from normal Linux interfaces, from CMD, and from the Windows standard.
- As far as I can see, no support for USB CDC devices either via WSL2 or through Windows itself. There's no reason I should need PuTTY still to access a usb-serial console.
Personally I'm thrilled to finally have a good terminal experience on Windows. The copy/paste behavior is very comfortable to me, given the similarity to gnome-terminal. And to be honest I never really got comfortable with CMD's behavior.
I don't use WSL itself much, so I can't comment on those bugs except to say I hope you find fixes.
I've ended up doing a lot of PowerShell for work lately, so I jotted down a guide for myself for getting the terminal to behave the way I like, if it's useful to anyone: https://gist.github.com/sandyarmstrong/8b48d7dd0cb01c63cabc6...
I'd be curious about your first impressions of Windows Terminal as a more recent cmder user, if you still have a Windows VM lying around.
One of these things is most certainly not like the other. I'm not saying your experience is wrong, just that the general opinion of Windows Terminal is quite positive and can't really be lumped in with the likes of Teams and Outlook.
To avoid too much theory lol, my perspective is that MSFT views Windows as the trademarks and the 30+ years of backwards compatibility layers (e.g. Direct3D, WinAPIs, etc), and everything else is already expendable (kernel, drivers, etc). Meanwhile, the (slow?) migration to ARM and Web(Electron + derivatives included) will deprecate the compatibility layers too.
FWIW, I think people will still only develop "for Windows" not develop apps "for all Linux distributions", the same way people develop "for iOS/macOS" not "for all *BSD distributions".
MSFT reduces developers and costs because kernel costs become "a relatively large corporate donation" (tiny compared with the reduced developer salaries) and drivers are created by hardware companies instead. Meanwhile, MSFT increases revenue through Azure, consumer services like gaming, consumer electronics (e.g. VR, Surface, etc), enterprise sales "for the support/compatibility", and increased adoption/street-cred given its now "Linux on the desktop, laptop, AR/VR and tablet". Its simply a no-brainer for MSFT.
This is not a new idea: found one of my responses from 2016 https://news.ycombinator.com/item?id=11390719. There is a parent comment describing Windows as "just another Linux distribution", albeit it'll 1. be the most deployed Linux distribution by a lot and 2. continue to have a closed-source UI toolkit (e.g. Cocoa on macOS).
> continue to have a closed-source UI toolkit (e.g. Cocoa on macOS).
The comparison isn't apt. macOS can use BSD licensed programs because it's allowed to create derivative works that are closed source. Anything constituting a derivative work based on the Linux kernel has to be open source because of the GPL's virality.
So unless you think Microsoft will be willing to keep all their custom software restricted to userland (requiring basically everything else to be GPL) it seems extremely unlikely that this will happen. Microsoft is going to want to continue developing an operating system, not merely a Linux distribution.
Obviously I'd love to see it happen, but I find it extraordinarily unlikely for these and other reasons (backwards compatibility? Continuity with previous sysadmin tools?)...
I'm not so sure. I don't think MS sees itself as primarily a OS company. I think it sees itself as primarily an applications company, and the Windows OS (and before that, MS-DOS) was historically the best way to get everyone to use their applications. (It was a great help, of course, to have IBM basically hand them the PC software market, not once but twice--but I think if IBM had had their s*t together and had made OS/2 solid and workable sooner, MS might never have developed Windows.) But the Windows OS itself I think has always been expendable if MS could find a way to get everyone to run MS Office applications, .NET applications, etc. (and now Azure applications) without it. This might be the way that finally happens.
> backwards compatibility? Continuity with previous sysadmin tools?
If then can make Linux run on a Windows kernel, they can also make Windows run on a Linux kernel. All they need is a compatibility layer for all the Windows APIs. And MS is certainly no stranger to compatibility layers.
How are you so sure? what if Windows has more modular/flexible kernel?
It just needs to be good enough, not the best kernel integration ever.
It’s just simpler to have a team or two of in-house devs contribute those improvements from NT to Linux.
With WSL2, apps will now use either 50% or 8GB of your available memory.
Happy coding!
https://www.linuxatemyram.com/
Weird that i didn't knew this. Couple of years ago i wasted some time to get more "free" memory on my server. Lol
You can read about it here: https://github.com/microsoft/WSL/issues/4197
In practice, this turns out to have meant DOS, OS/2, and a barebones POSIX workalike. Modern Linux is too huge and provides useful APIs that go against the grain of modern NT, so applications are slow in WSL1 and there are too many impedance mismatches to paper over to make the investment worth the effort.
PS C:\Users\2ion> cat .\.wslconfig
[wsl2]
memory=6G
processors=4
These settings are being respected, as far as I can tell. Since when is it not common sense to assign a reasonable amount to a VM? The only thing that does not seem to work well at the moment is a "memory balloon" RAM allocation scheme. WSL2 is a VM, not a shared memory container. They could do better, but RAM is pretty cheap nowadays and WSLg is IMO the much more productive feature.See https://docs.microsoft.com/en-us/windows/wsl/wsl-config#conf....
(This comment coming from someone who used to have to support running small backup MSSQL instances on Windows 8 tablets.)
Can I ask what the use case was? Was it just in case the primary DB server died and they wanted a battery powered backup?
Unfortunately like a process there is no way for windows to request memory back from linux (besides killing the entire thing). So its up to the linux kernel to decide what to release back.
What that configuration does is limit the maximum amount of memory it can request (what the linux kernel sees as the total system memory). The reason you need to set a limit right now is that the linux kernel will pretty quickly request most of your windows memory to use as page cache if you don't limit it.
Microsoft is working to allow the linux kernel to use the windows page cache instead of maintaining a separate one.
https://github.com/microsoft/WSL/issues/4166#issuecomment-64...
... since july 2019, a locked discussion, a lot of dupes, and no progress to report thus far.
I have long thought it would make sense to add a way for the OS to ask processes to relinquish memory that they can do without. A lot of processes have memory that they use for caching which can safely be dropped but doing so when the memory is not needed elsewhere unnecessarily limits performance.
What exists already in the Windows VMM, and I assume other OSes VMMs, is a distinction between allocated and committed. That's likely to be the best that's realistically achievable. The win VMM also has a last-accessed strategy for paging to disk, and de-duplication of shared pages.
https://docs.microsoft.com/en-us/windows/wsl/wsl-config#conf...
PS C:\Users\1_player> cat .\.wslconfig
[wsl2]
memory=32GB
Eh, who cares.Btw, notebooks have soldiered ram.
I mean, what is the benefit of keeping their own kernel, when obviously they understand that another kernel and userspace is more and more important, and even used by them selfs.
1: Protondb: https://www.protondb.com/ 2: ProtonDB Discussion: https://news.ycombinator.com/item?id=25333219
Among the games that did run flawlessly for me are The Witcher 3, Skyrim, GTA 5, numerous indie games (Dead Cells, Hollow Knight, Northgard, etc.) and so much more!
It is seamless, even the icons that show up in the Windows taskbar are correct.
If this new WSL2 experience works just as well, I might finally switch :)
More specifically: i3 helps me make better use of my limited 10.5" screen AND my limited RAM & CPU. Plus, 'composing' my own desktop environment has advantages: with the help of i3's wonderful docs, customizing things to fit me is easy: foreign city's time next to local? Done. A custom brightness command whose intervals I can adjust? Check.
I loved WSL2 until I discovered the speed of my Arch + i3 install.
The VS Code team has done a phenomenal job with VSCode remotes - it's like magic. Such an incredible architecture that allows them to do that.
I wonder - is Microsoft truly committed to this path of building Linux support into Windows for the long term? Have they considered building an MS Linux distro with support for Windows apps? Perhaps by embedding the actual Win32 COM server, which would function like the COM server in WINE but be multi-threaded.
I'm not a Windows guy, but I'd be sorely tempted to switch from MacOS if Microsoft released a fully-supported Linux distro (with or without Win32 support).
[0] https://github.com/microsoft/wslg#wslg-architecture-overview
Free fully supported Linux distro with Windows support will only reduce the sales of Windows itself. So no, this isn't happening.
I didn't say free, though that is one option.
I'm thinking if they could build a DisplayPS compositing window manager on top of, say, an MS-supported Ubuntu derivative, make the window manager awesome, market and sell it as Windows NC for Next Century, build in hardware support for everything -- basically go all-in.
Keep the next-gen window manager, core apps, and the Win32/DirectX compatibility layers proprietary, the rest open-source, and license the whole thing. Charge $200 per license or something.
If they did all that, they'd make a killing.
The fact that it's a Linux distro at its core would be a relatively small detail (and a killer feature for developers at the same time). Darwin is also open-source, but MacOS on top is highly proprietary and profit-producing.
I don't think the intersection of people who want a Linux kernel but a Microsoft-managed OS is very large, especially if it were the same cost as Windows. Just use Windows, and if you need to run Linux userspace apps then use WSL. Doesn't that already solve the use case you are describing?
Try resizing your browser window from the left edge -- watch the ugly, flickering repaints on the right side of the window. Yes, I know Linux does that too, but macOS doesn't. And someone besides Apple needs to build a DisplayPS-based, double-buffered compositing window manager on top of a clean, OSS platform. I'd personally rather it be Microsoft than any other of the big 5.
And if it were Linux-based, I wouldn't have to run a Linux VM on macOS anymore for my dev work :)
My daily driver is a Mac, and I'm planning to buy an M1x MBP when it comes out (which I'm hoping to dual-boot to Linux pending porting progress.)
I think the choice between iOS and Android has a lot more implications for security and privacy than the choice between modern desktop OSes.
The list of open security issues in the kernel is jaw-dropping.
https://i.imgur.com/EBdMKz7.png
Kind of hard to justify buying anything else for a dev laptop at this point.
edit: I feel obligated to mention the code in that screenshot is not something I wrote. https://www.mathblog.dk/project-euler-141investigating-progr...
But, obviously, you would have to actually be willing to provide meaningful details and not just... what you posted here.
Anyway, since that's a showstopper, it's unusable, and i'm going to check out that link. thanks again.
Overall, feels like using X11 forwarding on a LAN.
Embrace, extend, extinguish. We've reached the final stage already.
It will be interesting to see how the M1/M2/... series of Apple silicon evolves. If they can deliver graphics performance on par with a low-end nvidia GPU I'm pretty much sold on it in the near future. PC has simply no hardware to compete with that, may it run Linux or Windows.
Just 1 of many benefits: build native Windows GoLang app from WSL2: (Caddy server)
env GOOS=windows go build -o caddy.exe
No need to setup gcc in native Windows. Not sure if this works on all GoLang apps, but at least works for a reasonably complex Caddy server
Am I missing something? What does this have to do with WSL 2?
Working with GO on Windows can be a pain, but my takeaway from this ordeal was that it wasn't really the fault of MS or Google, but due to most Windows users actually having no idea how Windows works, even software developers who have been using the OS for 20 years.
There's currently plenty of bugs wherein if you use vmware without amd-v things like disk encryption don't work (fedora 34, ubuntu 20.10 etc).
Microsoft continually says "they're working on it" but it's been a long while and it's obvious they have other priorities here. AMD ryzen cpu's have been the superior CPU for a while now, methinks there's lots of handshakes between intel and microsoft.
Or you know... customer/user demand isn't that high.
https://techcommunity.microsoft.com/t5/virtualization/amd-ne...
So, I've signed up for this at home to figure out how it all works. I'm not happy, but this is the world we live in I guess :/.
Main takeaway: you can open apps by clicking on the icons. So you'll be able to have shortcuts without opening a terminal. That's great! Will render my local X server obsolete.
args = "-c" & " -l " & """export DISPLAY=:0.0;xterm -fn 10x20 -bg black -fg green"""
WScript.CreateObject("Shell.Application").ShellExecute "bash", args, "", "open", 0> rendered content needs to be copied to system memory before being presented to the compositor, to be brought back onto the GPU in the RDP client running on Windows (https://devblogs.microsoft.com/commandline/wslg-architecture...)
Ouch, that's pretty bad for performance. I hope they plan to improve this as well.
I suppose this was just the easiest plug&play way to get interactivity working?
As far as I know, it's the only Linux distro that requires Windows and VS in order to build it.
The system distro is where all of the magic happens. The sytem distro is a containerized Linux environment where the WSLg XServer, Wayland server and Pulse Audio server are running.
...
The system distro is based on the Microsoft CBL-Mariner Linux. This is a minimal Linux environment, just enough to run the various pieces of WSLg. For details on how to build and deploy a private system distro please see our build instructions. [0]
[0]: https://github.com/microsoft/wslg#wslg-system-distroThat said, maybe it would be feasible if they built a "Linux subsystem for Windows" that could run any legacy Windows app inside Linux, just like Windows can currently run any legacy DOS app (without actually being based on DOS). An official Wine, if you will.
I don't think that is correct. Any windows after 9x will need something like dosbox to run dos programs.
Also NTVDM was kind of hit or miss. So if you are using a 32 bit version of any windows you may still get away with running many DOS and win16 applications. But within a particular set of limitations.
1: https://github.com/otya128/winevdm 2: https://github.com/leecher1337/ntvdmx64
trust me without dosbox a shit ton of stuff does not work anymore. heck even tons of xp software does not work on win 10 or needs patches (especially games) compat is dropped more and more, especially old cruft that is barely used.
You're welcome :)
That may be true for small businesses, but I think the single biggest value of Windows to BIG businesses is the ability to screw around with the policies such that, for instance, you can lock a user out of changing their screensaver timeout or their desktop background, as though this had any actual impact on security.
My corporate laptop is infested with tracker programs and scripts which make sure I literally can't do anything with it that I shouldn't, but I have friends who work at places which have even more "corporatized" environments. At least, as a dev, I'm allowed to have local admin through a separate, privileged account.
Thanks to a Microsoft-funded trade press, every CIO of a Fortune-sized company believes you have to implement all of this crap in order to be "secure." (Meanwhile, the mainframe skates by on non-encrypted connections and 6-digit alphanumeric passwords. Straining at gnats and swallowing camels.)
We switched from Lotus to Office365, for a few glorious months, I could access everything from my personal Mac. Then they instituted Mobile Iron. So I created a Windows VM to let MI have it's way with, but then my company further locked down Office365 (and the Azure portal and everything else) so that ONLY their images could get to them. Sigh.
I have scores of company-specific programs on my laptop. They're all either Java or .NET, and could easily be recompiled for Linux or Mac. (I've done it for several of my own programs.) Every commercial app I have is supported on at least Mac. Everything else is web-based anyway. The only thing keeping companies on Windows is the control it gives them over the desktop. I, for one, am very glad that people involved in Linux don't care about this aspect of computing, and that Apple is catering to PEOPLE, not companies.
When I tried WSL a while back, file system access was pretty slow especially for scanning large folder trees with many files (important for programming projects). Is this still an issue or has it improved in that area?
We just want to Rsync some files from a Linux server to a windows build server without garbage performance and somehow there isn’t a way to do that still.
I haven’t found one that doesn’t use Cygwin (slow filesystem).
You see that slow file access with cygwin?
Last time I had such a use case for windows, I used unision - but isn't rsync, of course.
https://www.cis.upenn.edu/~bcpierce/unison/
Judging by this scoop.sh issue, there are no obvious not-cygwin builds/ports:
https://github.com/lukesampson/scoop/issues/2295
Looks like there are libraries for rust and go - but not clients that are a drop in replacement (yet).
Our builds involve syncing directories that have several hundred thousand files in them so the speed of stat() is really the bottleneck.
I’ll give unison a look, I haven’t tried that.
The libraries are an interesting idea, I’ll look into that too.
Trying not to sound reductive, but either it's an issue for you or not. It's really going to depend on your use case which should be super apparent for you.
I do all my web development within WSL2 and its great. I suspect this is the main use case they're optimising for.
This is a big deal because, say you wanted to use intellij idea on wsl, using it on windows side and accessing the wsl filesystem does not really work. It is too slow. Now you can run it in linux, access the native fs. I imagine it would perform pretty good.
Theoretically this change would eliminate the need for that but it's nice to have the same VSCode on Windows as in WSL.
FYI, WSL 1 and WSL 2 are completely different architectures, so you have to explicitly upgrade your instances from 1 to 2.
WSL2 takes a different approach: HyperV was always good at thin VMs... they took it to the next level and made WSL2 a super thin VM. Now performance is near native, depending on your benchmark.
Bias: I work at MS in an unrelated area. I run Arch as my daily driver, but am damn impressed by the engineering in WSL2.
There is currently no way to roll back from dev builds since it would mean to downgrade (which Windows can’t do). Even disabling reception of new builds is not working since they are either such far away from beta that you can’t switch before your build expired (and you don’t want your build to expire since it break Windows Update some weeks later) or those builds are « branches » that will never meet compatibility with any beta/stable build.
tl:dr; Being on Windows Insider dev channel is irreversible.
Other half of me: "Hmmm... Now companies will have less incentive to support linux running natively on their hardware..."
Love many of the things MS is doing... but it's hard not to see echo's of the past and wonder if its history repeating.
https://reddragdiva.dreamwidth.org/607714.html
https://news.ycombinator.com/item?id=20632942
This should make it as simple as "sudo apt install wine" though.
Plus, a typical JS development process involves a filesystem-based watcher that reloads parts of an application on a fly as a developer changes code.
As a result, for a very big percentage of programmers filesystem performance is crucial for their day-to-day work.
There's an argument to be made that JS development ecosystem is unnecessary complex, and there are projects that try to change the status quo, but they are not ready for a prime time and aren't widespread enough yet.
I now have enough to be able to give it 'enough' and cgroup limit it from hogging more and interrupting my browsing etc. but I don't think I've given it so much that, what, the speed at which it can read the 100ks of files in order to 'webpack' them is the limiting factor.
Perhaps I'm just (foolishly) content living with it much slower than you are, so I don't have everything else fast enough for that to be the problem.
I can say that my WSL2 and Docker builds, especially when volume mounting a code directory into a Docker container, are typically much faster. I don't know if I could quantify it, but I'd rank it roughly like this:
1. Windows WSL2 (EXT4 fs) when using WSL2 directly or docker and code is in WSL2 (since Docker is just using the overlay storage driver)
2. Mac APFS directly - no Docker, just brew-based npm and "npm install"
[big gap]
3. NTFS
4. APFS volume mount into container
5. WSL1 "npm install"
[gap]
6. WSL2 <-> Windows filesystem bridge (files on Windows NTFS, running npm install from Linux)
I don't know about alternatives (it seems Cubase is a proprietary one), but Rosegarden [1] is a GNU/Linux "audio and MIDI sequencer, scorewriter and musical composition and editing tool" that does not seem to have a Windows build (a maintained one anyway). It's a great app, I guess it could convince a musician to use Linux for some music-related activities.
I don't know if it runs (well) in WSL (1 or 2).
Rosegarden aside, I'm not sure there is a single app I use regularly that absolutely can't run on Windows (some can run on Windows (and Mac), but probably run way better on GNU/Linux, like the Kate editor, and Clementine seems to have a spotty Windows support too).
Feels odd to run another entire OS just for a terminal application, but here we are.
I'd rather use Linux versions even if there is a Windows version just for sane package management.
The main one is sublime merge since, while i can access my wsl repository form windows, doing so is very slow. instead i have smerge on both windows and linux to access the respective filesystem.
I admin it is a bit confusing at times...
That's really useful. I like it.
>ii .
:)
Now I see why this works. Good trick either way.
cat file | clip.exe
which as expected will copy to your clipboardFor real, though, I will give MSFT tons of credit for this. They really did an impressive job all-around.
You're right, though, that the article is a bit awkward in not acknowledging that most people were already using VcXsrv or similar on the Windows side to run Linux gui apps.
the devil is in the details and the painful truth is none of that works real well. I am using JetBrains Projector instead which would be great if two super annoying bugs were fixed. Meaning that doesn't work well either -- for now. Maybe it will, maybe X+VNC will someday be great in a Windows VM -- but I have much larger confidence in Microsoft driving this to greatness.
1. Does the vGPU support mean that we get decent cuda support AND wayland? I know they mentioned a nvidia specific driver
2. Given they are supporting x/wayland, would it be possible to run i3wm or sway for window management?
2. No, CBL-Mariner uses Weston, and then RDP to tunnel it into the Windows side. Client decorations are CSD, for window management you will be stuck with Windows shell. Try PowerToys (Fancy Zones), makes it less painful.
Dibs on the year of WSL Desktop!!
Microsoft has finally embraced the Linux desktop, maybe next they extend it?
I know, I should really get out of the automotive industry and those big companies anyway because they're so abusive, but right now, because of my private life, I'm kind of stuck at least for a year or even more. Just hoping that I can get out before this becomes reality :D
In addition, I had to choose, wsl2 and no other vms through vmware or virtualbox,. or WSL with vmware and virtualbox. they claim they work together nicely, but they don't. vmware and virtualbox crash, freeze, and crawl to a halt constantly when hyperv is enabled.
so back to wsl1 for me. I love WSL, I think it's the future, just please don't build that future on top of hyperv!!! :'(
Personally I simply swapped to using HyperV for other VMs when I needed them. Turns out I didn't need them that much anyway once WSL2 got good enough.
As for performance - I game on Windows still with WSL2 turned on. As long as you limit WSL2's memory usage a bit as described in another thread, I haven't noticed any performance slowdown in Windows. (On the other hand, I have noticed that IO on the linux-side is so much faster in WSL2 than WSL1, which was the main reason I swapped as soon as I could.)
I am on popos now and when I need windows, I VM into one. Obviously it works the other way works as well.
/s
[0] https://www.reddit.com/r/linux/comments/3038d4/when_was_the_...
Ideas can outlive individual people.
Who needs a privacy-respecting operating system when a popular privacy-invasive operating system runs the Linux software just fine?
If you stay at "Embrace" you have Edge or Windows Terminal, nobody's going to get mad about those.
[0] https://build5nines.com/linux-is-most-used-os-in-microsoft-a...
This is no Linux from the inside collaboration, speaks volumes as to the culture around the project.
Since when are developer outreach teams wearing traditional suit and ties?