This is really great on several levels. First of all, I do think the ability to run Linux GUI applications almost natively on Windows is a good thing. Especially, as this ability ships with Windows without having to manually set up a virtualization. This reduced the bareer of running these applications a lot and hopefully this gives incentive to write more Linux GUI applications with the increased audience.
It is of course fantastic for all, who would like to use Linux but are tied to Windows for various reasons. For some use cases, one still would use a classical virtualization like VMware, but for many others, this is an elegant alternative.
It is also good for a pure Linux world, as to my understanding, this is most of all an enhancement of the RDP support for Wayland, basically solving the problem of lacking network transparency. It was a valid critizism of Wayland, that unlike X it didn't have a concept of network transparency. But with all the work done by Microsoft - and it seems to be completely open source - this problem looks to me as solved. Perhaps even better than with X, as RDP is designed to be forwarded over larger distances, while X forwarding is most useful in local networks.
Thanks, haven't watched the whole thing but I like what I see. I also like that this isn't WSL specific. You can do it from a real linux-machine or VM from another host. It also adds wayland applications and not just X11.
Hope that this is something that will spur some wayland->wayland equivalent (since they base it on weston it might be possible to reuse a lot).
From what I understood in the presentation, there is very little WSL-specific in the implementation and all if it is open source. This should improve RDP support in Wayland a lot and be usable for remote access to wayland based systems. This seems to have the potential to pretty much solve the network transparency problem of Wayland.
WSL1 is an emulation of Linux system calls to allow running Linux tools and software in a special sandbox. It was fast, lightweight and worked well enough to run modern apps but had limited functionality.
WSL2 is a Hyper-V virtual machine that runs actual Linux kernel/distros with some special integrations to allow accessing the filesystem, terminal, docker, and now the GUI.
It's no different than running a Linux VM yourself, but it's installed with a few clicks from the Windows Store and has much better tooling. It's fantastic for building software for Linux while being on Windows. MS has already spent 5 years making the cross-platform .NET Core framework which now runs more on Linux than anywhere else, even in Azure. If you want to build on Linux itself then just boot into Linux, but this is great for Windows becoming a central platform for development, regardless of the final destination for the work.
The VM is different somehow, as it can dynamically free RAM when the rest of the system needs it, whereas normal Hyper-V VMs capture all of the RAM they ever need and never give it back (this was a problem with Docker Desktop, as if I had my browser and Spotify up, it wouldn’t be able to start because it couldn’t reserve enough RAM. Now, since they ship it as a WSL2 distro, it works fine).
A similar strategy is used for Windows Sandbox and Defender Application Guard (which run Windows in a proto VM so applications like web browsers can’t access the rest of the system). Interestingly, graphics acceleration also works completely like native (at least to my fairly untrained eye), without assigning a discrete GPU. I think this also happens in WSL2.
On the interwebs it says that Hyper-V is supposed to support memory ballooning (since about Windows Server 2012), just like other virtualization platforms. Maybe the Docker software just didn't use it, or maybe it requires a Windows Server license?
In KVM, yes, not in Windows. I've never had good luck with Hyper-V's dynamic memory management, unless the OS was already completely installed (Windows' installer would fail unless I dedicated the RAM. I remember it working better with Linux unless you needed to PXE boot).
I've heard WSL2 is different and better than WSL1. However, you say WSL2 is backed by Hyper-V. Which leads me to a very important question: does enabling WSL2 (which now supposedly uses Hyper-V) have the same problem that previously enabling Hyper-V had; namely that all other virtualisation software is incompatible?
At my day job, my company hasn't yet released the version of Windows that provides WSL2 (IIRC Microsoft released that in June, and my company takes ~12 months to validate and push out new versions of Windows). Many developers have tried to get away with using Docker for Desktop on Windows, which requires the direct use of Hyper-V unless your version of Windows supports WSL2, in which case Docker for Desktop will use that instead of Hyper-V.
Our problem is we have some legacy non-Dockerized apps that require the use of vagrant and VirtualBox (we've failed trying to use vagrant and Hyper-V due to lack of boxes), and VirtualBox is 100% incompatible with Hyper-V. VirtualBox has long "supposedly" been able to function alongside/with Hyper-V, but we have not had a single employee encounter success, out of at least a dozen who have tried. To the point where just disabling Hyper-V from Windows' Optional Features isn't enough to get VirtualBox to work again; it took some searching to discover that you additionally have to prevent the virtualisation stack from even being loaded at boot by running "bcdedit /set hypervisorlaunchtype off" as Administrator.
All we want is Docker to run natively on desktop; and yet, we also need to run VirtualBox VM's side-by-side. Because of work-from-home, some employees are "getting away" with running work-related stacks on their personal macOS or Linux machines, which of course have no such limitations. You can run Docker for Desktop and VirtualBox side-by-side on macOS with zero compatibility problems (and you can use NFS for mounts too instead of the buggy and slow-ass vboxfs or cifs/samba). Proving that Windows is, once again, the outsider and shit operating system that can't even do virtualisation properly (seriously, the "exclusive use of virtualisation" that Hyper-V requires is a fucking joke). We have to run vagrant on each developer's machine for the sole purpose of running a Docker daemon within it, or use shared hosting for a hundred developers on a single VM with only a dozen CPU cores, backed by slow network storage instead of SSDs, because that's what a company with multi-million dollar revenues, and thousands of employees, is willing to provide.
End of rant. I did have a question initially, which is this: does installing and using WSL2 break other virtualisation layers (VirtualBox and friends) in the same way that enabling Hyper-V to use Docker for Desktop broke such software prior to WSL2 support?
Yes WSL2 uses Hyper-V so you'll have the same problems. Hyper-V is a type-1 hypervisor, meaning it runs at the hardware level with exclusive access to the CPU virtualization extensions. When enabled it runs Windows itself as a VM which is why it requires a reboot to disable.
VirtualBox is a type-2 hypervisor running on the guest/Windows OS but can't access the CPU extensions since Hyper-V has already acquired them. Running Linux containers on Windows (using Docker or otherwise) always involved Hyper-V, just with different hosts from LinuxKit to WSL2. Docker on Mac OS uses hyperkit which seems to also be a type-2 hypervisor which doesn't conflict with VirtualBox (and in fact the docs state that Docker on MacOS uses VirtualBox drivers to create VMs).
VirtualBox 6.0 is supposed to detect and use the Hyper-V API as well as support nested virtualization but its still experimental. Also I believe you can run 32-bit VirtualBox while Hyper-V is enabled, have you tried that?
I think you're in a tough position and the best solution is probably to make the business case in either upgrading away from Vagrant/VB to Docker or getting some proper standalone Vagrant servers to develop with.
Thank you so much for the reply; it at least helps me understand why things are the way they are. VirtualBox's own docs have said since some 5.x version that it's compatible alongside Hyper-V. However, we've had developers on the latest 5.x as well as 6.x of VirtualBox, and the bugs that appear are out-of-this-world impossible to debug. Basically, running VirtualBox with Hyper-V enabled on a Windows host will appear to work at first, but you'll very quickly run into some random weird bug (often related to networking) that cannot even be Googled because it's a unique one-time error that seems to occur purely because of which cpu instruction was being executed during a particular nanosecond.
So even WSL2 will not help us, unless we can migrate all VirtualBox boxes to Docker or native Hyper-V. Sigh. Fuck companies who produce software purely for Linux servers, who force their developers to work on Windows machines because of ActiveDirectory, and their relationship with kissing Dell's ass for hardware I could piece together from a garbage dump.
I can't speak for VirtualBox but I can confirm that VMware Player/Workstation do support Hyper-V now and are compatible with having WSL 2 installed simultaneously.
This information probably doesn't help you much if you're tied to VirtualBox though.
I would love to run GUI Emacs using this, so this is great news for me.
At the same time, does anyone both love WSL, but is also scared about Microsoft's strategy here?
I'm at the point where I have a main desktop computer that I use for general purpose and gaming, and WSL has been great for me to also be able to do few-compromises coding work on it (previously had an arch linux partition but was tired of having to reboot to access it).
> but is also scared about Microsoft's strategy here?
Scared of what?
I have spent years either in Window's inferior environment for development or having to dual boot or running something like VMWare workstation. I do that because linux is inferior for gaming/entertainment. I have never "enjoyed" a single linux desktop environment, I spend the majority of my time coding or running stuff on terminal.
I'm in my 40s and tired of going back and forth between the two. WSL has been a godsend
Linux has as much to be scared about from Microsoft as Microsoft has to be scared of Linux gaming
> I do that because linux is inferior for gaming/entertainment.
It really isn't any more. I play a lot of games and only one so far has refused to work well on Linux, and that's one which is emulated on Windows so I can't blame Linux too much for it. And that's on a laptop with nvidia's power-saving shit thrown into the mix. As for entertainment, aside from Firefox having issues with hardware acceleration, most of which have either been fixed or are being fixed, I haven't faced any in Linux that I haven't on Windows. That said, I don't use HDR, so I can't vouch for that.
On the other hand, I've had significant performance issues with WSL, especially on disk use, and I don't really care for windows update bugging me all the time and the telemetry. I jumped on board Linux with Pop!_OS and it's been a delight. I used to be just as negative on Linux, but I have been so, so happy I've been proven wrong.
No matter how you see it, games are primarily made to run on Windows and the other OS's are an after thought. I am not saying it didn't get better but gaming on windows is natural and requires no special configuration. A normal user who wants to play games if he's not already on a gaming console the next best option is Windows.
While I agree with you on the fact that it's way easier to run games on Linux than ever (especially steam games thanks to proton and DXVK, but it trickled down to most games as well) and that Linux never had so many supported games, I still spent 3 hours to install torchligh 2 the last time I wanted to play with it, dispite it being sold as Linux-compatible! Oh, and I spent 4 days (not full time obviously) installing WoW Classic last year, and it involved manually installing a release-candidate of the latest kernel. So it's still definitely not for the faint of heart.
But at least now it works! (Unless it doesn't because some retarded anti-cheat software which doesn't actually prevents cheating, gets me banned after a few minutes. Looking at you Apex Legends)
Having worked at a few of "the big guys" on hardware, I can assure you linux is alive and well there on heavily customized linux versions for internal usages for developing driver code/OS interactivity for hardware because it is so superior to the hoops you have to jump through for Windows. Then most all of that experience can be brought over to Windows development with lessons learned.
I don't know, I thought I would be using a mac for the rest of my life because it interoperated so well. I could run windows, I could mostly treat macos like unix, and I could boot linux if I wanted to.
But they went down the navel-gazing path - everything pointing inwards to their ecosystem and picking off the useful interoperability stuff little by little until almost nothing is left.
Have you tried installing a cron daemon in WSL using your distro's package manager and starting it with, e.g.,
wsl -u root /usr/sbin/service <daemon-name> start
or, equivalently,
wsl -u root /etc/init.d/<daemon-name> start
Because I've been starting Debian sshd this way using a Windows Task Scheduler "At startup" task for years, in both WSL 1 and WSL 2, and it "just works".
Note that, for my case, WSL 2 requires an additional command to map a TCP port from external adapters to the VM's "host-only" interface, e.g.,
> I have never "enjoyed" a single linux desktop environment
Just because you don't like linux desktop environments, doesn't mean everyone doesn't. I've used several linux desktop environments, and I prefer all of them to Windows (my current favorite is i3/sway). Of course that is a personal preference. I know some people prefer the windows (or mac) desktop experience to linux's, and that's fine. Just don't say that my preference is invalid.
> Scared of what?
That they will try to pull off the "Extinguish" phase of their infamous "Embrace, Extend, Extinguish". I am doubtful that they would be successful extinguish linux at this point, but whatever they do to attempt such a feat could very well cause some pain for desktop linux users.
I wouldn't call windows development inferior. Just different and narrow.
For C++ and C# windows has the best IDE for it. For C++ CLion is the next best IDE but it's nowhere near as fast or snappy as windows visual studio IDE.
Also keep in mind most developers use visual studio code nowadays which is a microsoft creation.
It’s weird that you call Visual Studio snappier/faster than CLion. From my experience VS 2019 was extremely laggy even on small-size projects. I’ve heard from some gamedev veterans that VC 6 was the last “usable” version and performance/usability/responsiveness went downhill after that. (Here’s a famous rant by Casey Muratori who later compares the load times of VC 2019 and VC 6: https://youtu.be/GC-0tCy4P1U)
To admit, it has one of the best debuggers though. But CLion seems to have catched up in that department, and seems to have way better CMake integration than VS does. CLion still needs more work on performance (as well as support for other build systems), but it’s still the editor that I’m optimistic about.
I write C# code on a medium-large solution (ASP.net, 60 or so projects, ~1M LOC) and to be honest I don't know why everyone thinks that VS2019 is so great.
VS2019 frequently freezes for multiple seconds. When project files change (e.g. because you check out a different branch) VS often fails to load the modified projects and I need to restart the IDE.
Then there's the fact that the refactoring tools in VS2019, despite improving significantly since older versions, are still way behind ReSharper or IntelliJ.
I also generally dislike the UI I'm VS2019. The Git integration works, but it's cumbersome to use. You can't easily have multiple run configurations. The error/warning list pops up seemingly at random.
I use Rider now. It's not perfect, but I am just much more productive in that environment.
Why would you have a separate machine just for that? I thought one of the strongest points of PCs (as opposed to phones/game consoles) was their wide applicability to pretty much every task?
In my case, mainly to lower the risk of supply chain attacks. Windows gaming and other such activity still includes a lot of “must run as administrator and does unclear things with this”, especially in anything with anti-cheat mechanisms as mentioned elsewhere, and there are environments (especially when dealing with mods) where you can wind up running code from dozens of randoms across the Internet in nothing approaching a meaningful sandbox. Popular messengers, video apps, etc. don't exactly seem trustworthy nowadays either.
I wouldn't want to try to directly deliver anything from such an environment that I would ask other people to run. Even my more-trusted development laptop feels scary at times, especially when I'm operating in environments where I have to do about the same thing as above with installing a dozen dependencies from who-knows-whom. I generally use separate build UIDs for some measure of separation in these cases, but we still have Linux and X being potential emmentaler attack surfaces, and I haven't yet arranged my workflow to the point that spinning up new virtual machines is trivial, especially because then you have a lot more friction with testing GUI software, sharing existing files, etc. etc.—most of the easier solutions to which seem to be very cloud-oriented and “when your Internet connection goes down, so does everything else”, which is something I insist on pushing back against in this context, including because “someone upstream did something unexpected and now everything is instantly broken in a way I have no real leverage over” is its own massive trust hazard.
My dedicated low-sensitivity machine isn't very powerful, so the cost wasn't as much of an issue as it could have been; it was a midrange laptop several years ago which I'm still using. If your workplace environment comes with its own hardware, then that's a thing too.
It would certainly be nice to have better, though, and the desire for less redundancy of costly hardware is legitimate. My desired setup from a while ago, which I never managed thus far, is to have more powerful hardware with multiple boot configurations, but not all of them persistently present like most multi-boot machines: instead, I would physically attach and detach system and user disks, assuming that firmware-level attack persistence is rare, and then rely on power-down flushing any lower-trust code before attaching a higher-trust disk. It'd be hard to ask most people to do this, though.
Sure, but it rather pokes a hole in the concept of general computing, does it not? If windows were an acceptable general purpose OS people here would be mad they were wasting their time on this.
Somehow I just don't see the same demand for people on macs/linux and WINE. It seems like a niche interest to actively want to combine the two worlds and I am VERY interested if any significant number of people use this who are not driven by gaming needs.
Sure, but it rather pokes a hole in the concept of general computing, does it not?
I don't see how. I pretty much think anyone should do whatever they want with their computers. Windows is acceptable for some, and not for others. I can't see the point of getting mad about what software other people are running.
I have never used WSL, but if I ever do, it definitely won't be for gaming.
Running a gaming/entertainment system on your workstation irresponsible. Even before I switched to Manjaro Linux for my daily driver workstation, I had separate machines for gaming and working.
First of all, because I've seen many a PC game anti-cheat software cause system-wide issues.
Second, because I don't even do those things in the same room.
Third, because for your common web developer a 2nd PC is cheap. You can get a refurbished i5/i7 machine, add a new 32GB of RAM and a 512GB SSD for less than $500. [0] This will last you for 5 years, easy.
I'm also in my 40s and I like things simple, clear-cut and easy. Mixing Windows with Linux is none of those. Dealing with one work OS is by far easier than dealing with two of them. Also, XFCE runs circles around the Windows GUI while providing better features liked a tabbed file browser and a taskbar that natively supports all the features that I used to have to hack into Windows with 7+ taskbar tweaker.
I used to have a MacBook for work (sw dev) and a gaming desktop PC for entertainment and hobbies (games, music production, photo editing and graphic design).
Until one day, this part wasn’t true any more:
> Third, because for your common web developer a 2nd PC is cheap. You can get a refurbished i5/i7 machine, add a new 32GB of RAM and a 512GB SSD for less than $500. [0] This will last you for 5 years, easy.
Unfortunately not all types of dev work can be done on a middle-of-the-road machine.
Terrified. I'm expecting the next round of secure boot to come, this time without the ability to disable or add your own keys. To the people that complain they can't boot linux, I expect the response to be "but you can run linux from windows, silly!"
I've been hearing hysteria about "Microsoft is going to block people from booting Linux!" since like 2005. They don't even do it on their own line of hardware. If they wanted to do it, they would have by now.
* “Windows RT” - no. That’s now normal Windows 10 for ARM, now devoid of that arbitrary restrictions present in “Windows RT” (“Windows: Really Terrible”).
* “WinRT” - yes. That’s the new COM+WinMD platform API added in Windows 8 (and initially only available to “Windows Store apps”) and incrementally improved since then and now part of UWP but it’s existence is weird. Some parts of WinRT are available outside of UWP but it’s a confusing mess.
* “Surface RT” - Yes, the “Surface 2” and then the “Surface Pro X”. Note that the Surface RT and Surface 2 were both locked-down to only run Windows App Store programs whereas the Pro X (and all post-Win10 ARM machines) are not artificially restricted this way.
If you're like me, and just don't want to shut off Linux to play some games, I'd recommend looking into virtualising Windows and PCI passthroughing your GPU. I just change the channel on my monitor to switch between Linux and Windows, but if you have two monitors you can dedicate one to each OS. You don't need a hardware kvm switch, evdev lets you swap keyboard/mouse control between host and guest OS with LCtrl+RCtrl, and audio goes through Pulseaudio.
You get to avoid using WSL and get the full Linux experience without compromising gaming – with few exceptions: the more extreme anti-cheat software detects VM usage, and that applies to a very small set of AAA games.
You can get it to work with VMWare and KVM, but in most cases you'll run into problems with hardware. Very few motherboards (and GPUs) actually properly implement the required functionality, so if you don't consider this use case during hardware selection, chances are you won't be able to get it to work in a stable manner.
A motherboard claiming support for VT-d is no guarantee that it is able to do anything useful with it.
Yeah, pretty much. I don't think they're trying to do the embrace-extend-extinguish thing here at all, at least not in a "willful" way.
Devs I know of that use macOS do it for the "Linux without the jank" aspect - essentially as an "it just works" quasi-Linux distro. If Windows could provide the same experience, or at least a very similar one, I do believe a good number of devs 'raised' on Windows would stay. In my lifetime, I've seen more people convert from Windows->macOS due to wanting to do dev work in a "Linux-like" environment than anything else. It makes sense for MS to want to mitigate that bleed-off.
Yup, this is my exact use case. I'm needing more hardware and my multiple Macbook Pros are getting old - but i'm not satisfied enough with Mac these days to drop $4k on upgrading. Apple would have to make me really happy with the software (read: bug free, primarily) for me to spend the upscaled costs in their ecosystem.
So now i'm installing Windows and Linux, comparing them and the ease of use. I don't want _any_ driver problems, frankly i just want the OS to get out of my way. Historically, Linux has given me such a terrible experience with things like "my BT doesn't work, my sound doesn't work, my monitor doesn't work" that switching away from Mac was viewed as an impossibility.
Now however, i see a way out, and i'm taking it. I've experimented with WSL2 and it's shockingly good so far. I'll likely install PopOS this weekend to see if i experience problems. If i even hint a problem in Linux, i'll likely revert back to Windows.
Mac is losing it's lunch imo. But, i get to build a workhorse of a PC for the same price i would have given Apple - so i'm happy.
Mac isn't losing its lunch. We're just not their target users base anymore.
Why sell to these demanding power users wanting complex stuff when you can sell to the rich consumer who just wants to dick around on Facebook and play with their iDevices all day :P
This! I’m still on WSL1 and plan on moving to WSL2 during my next Sabbath month.
WSL gives me access to all my regular devops and developer tools + Linux shell while I don’t have to reboot for gaming and music production.
I switched about 1 year ago. Windows is now again a solid OS choice for developers and I expect lots more developers to make the switch with the recent and upcoming MacOS changes.
Yes I know, but I currently have a good setup with WSL1 where my code lives on my Windows disk, IntelliJ runs on Windows and I use WSL for terminal tools like git/zsh/tmux/terraform/kubectl etc.
Just switching this setup verbatim to WSL2 will most likely lead to performance problems on file I/O from WSL to the windows disk (due to the architectural changes from WSL1 to 2). File I/O within WSL became faster, but crossing the boundary is more expensive making tools like git unusable when the code lives on the windows side. I could move the code to the WSL side but then every IntelliJ I/O operation needs to cross the "slow" boundary. Unless I also switch IntelliJ to WSL so it will probably take some experimentation before I arrive at a proper WSL2 setup that satisfies my needs.
Yep, with apple killing of nvidia drivers on macOS, i'm rolling with windows these days for deep learning development. Linux is too much hassle coming from macOS
Since I use Windows + WSL at work and macOS for my personal machine, I really wish the Windows GUI experience was as nice as that on macOS. But it really isn't.
Yup. Definitely feels like "how much dev market share can we capture by just putting a nix inside our OS?" Make it performant enough to not even seem like a vm. Then get people to stay on the platform.
I still find windows usage painful and sluggish compared to ubuntu and left in the dust by xubuntu so I'd rather have the reverse with a windows vm.
Windows is not painful and sluggish compared to Linux GUIs. It's on par. If your GUI is sluggish it's because you're letting stuff like letting crappy antivirus and malware detection run in the background or you have an underpowered machine for what windows needs. Sure Xubuntu will trash Windows on an old P4 however on modern hardware they'll be fairly equivalent with windows having a slight edge due to better video acceleration. I use both daily and they're both responsive environments.
> Windows is not painful and sluggish compared to Linux GUIs. It's on par.
30% longer compile times than on Linux on the same hardware.
Using git takes time compared to being instantaneous.
Running "hello world" written in .Net takes 3-5 seconds compared to <<1 second on Linux on the same hardware.
> If your GUI is sluggish it's because you're letting stuff like letting crappy antivirus and malware detection run in the background or you have an underpowered machine for what windows needs.
As I mentioned above, Linux is amazingly much faster on the same hardware! And brand new 2018/2019 hardware at that when I measured last time.
That said antivirus is a real problem. Part of the problem is that mandatory Windows OS often signals sysadmins that doesn't care, so you often get tragically bad antivirus, possibly misconfigured at that.
Correct me if I'm wrong but unlike your point 2, doesn't WSL make the Linux kernel obsolete in the long run? That'd be the Extinguish part which is still far beyond the horizon but isn't it something worth thinking about?
Microsoft knows that most server applications end up running on Linux and not on Windows. The Linux kernel is not going anywhere, MS is ensuring it doesn't lose more developers to competing OSs. At the same time staying loyal to MS probably also means if you need Linux on a the cloud you'll opt for Azure instead of AWS or Google.
That was a short, interesting test but WSL is now a Linux VM with nice integration in Windows. So no, it doesn't obsolete the kernel in any way. If anything, abandoning WSL1 can be considered proof that MS with doesn't have enough interest in replacing the Linux kernel.
Not so much with WSL 2, which Microsoft are focusing on at the moment; WSL 2 runs a real Linux kernel in a lightweight Hyper-V VM with lots of jazzy integration services.
Actually it’s more likely to go the other way around. What do you need the windows kernel for if almost everything is cross platform now and/or has a compatibility API layer?
And how exactly are Microsoft going to force you - particularly you, personally - to stop running your own Linux kernel?
This is the same kind of ridiculous fear as any other -ism, as if lots of black people around will turn you black, or lots of gay people around will turn you gay, or lots of Muslims around will turn you Muslim.
By adding so many features to the WSL experience that (at least for their intended use case) using native Linux is such as strap ball that it falls into disuse
Microsoft making a good WSL will not change the Linux you have right now. Fearing that the Linux you have right now will "fall into disuse" means fearing that you will stop using it and you can choose to continue using it no matter what Microsoft does.
A less charitable read of your position is that Microsoft will tempt other people away and they will no longer give you cost-free updates. Of course you don't mean that.
Well yes. This is phase 2 of 3 the first being embrace (see Microsoft loves Linux) and the current one being extending. Only here they’re extending Windows to cater to Linux use cases. The next and final phrase is extinguish. If Windows becomes equivalent to running a Linux distribution but can also run the entire Windows ecosystem of applications not to mention all your games the way they were meant to be played, not via proton or any other translation layers, then what will be the point of greater Linux adoption among businesses and governments? Licensing? All Microsoft would have to do is make Windows free and make all that revenue back on upselling Azure and/or Office.
Personally I tried WSL2 out and it was pretty good. The problem was I was still running Windows and I absolutely can’t use to UI to save my life. I loathe it. I’m a huge fan of tiling window managers and Regolith’s my current DE of choice. And lucky for me my games run in proton, I work on backend systems such that I don’t have any dependencies in on anything that runs on Windows (Google docs for office work). So I would not be WSL’s target audience.
To me, what matters most is privacy and freedom. -> Open-source transparency of code, data, and all that happens with it. (Including the ability to fully control and see what's happening in your system at the network level, like OpenSnitch - https://github.com/gustavo-iniguez-goya/opensnitch).
I don't see any of MSFT's actions threatening this on a really big picture level. It's always been and always will be up to 'the community' to build and make Linux and free software what it is.
Linux, especially Linux Desktop, is wonderfully flourishing right now, and I don't think it's because 'MS hasn't offered a more compelling alternative to Linux' in the cloud. More largely, it's because we've built what we've wanted. Maybe I'm naive about what we've been ungratefully depending on. If so, I'd settle for a mildly cautious and watchful neutral ground. All I can say is, please contribute to Linux and FOSS if you can. I do.
> Linux, especially Linux Desktop, is wonderfully flourishing right now [...] because we’ve built what we’ve wanted
I agree, but it has to be said that this has also happened because desktop features across the board have stagnated.
There has been little evolution of desktop features in the last 15 years on Windows and Mac; MS and Apple are focused on other things, namely services integration to increase revenue and convergence with mobile OSes to reduce costs. This has allowed the Linux desktop to catch on and solidify, by not having to constantly chase feature-matching. Same for hardware support: new devices and ports for the desktop and laptop market have been few and far between; if anything things are getting simpler (USB-C for everyone, no cd, no modem, etc).
I have no doubt that both Apple and MS could destroy the attractiveness of Linux desktops very quickly if they focused a bit more resources on evolving their desktops.
You can, although most packages are written assuming Linux and getting stuff like tramps to work (which requires paths that are apparently impossibly to type in windows), is a bit of a challenge.
Of all the issues I've had with emacs about 80% of them could be traced to running emacs on windows. Not through any fault on windows side mind (except possibly the insane decision to use a different path syntax).
That insane decision has been made deliberately to make competitors incompatible.
Not inconceivable. After all Windows is called w32 in Emacs not win32 as is common everywhere else because RMS couldn’t bear to think “win” in association with MS!
You can but it's extremely hacky to get it all working. It's butter smooth just like Linux on WSL as long as you don't mind running it in a terminal. I use a fairly complicated DOOM emacs install without issues.
It's definitely not that polished, but I don't know about “extremely hacky”… how complicated are people's Emacs setups nowadays?
I installed the official Windows binaries for GNU Emacs pretty recently, copied my elisp directory over, and for the most part things worked out of the box, but with a few inconvenient exceptions: taskbar pinning didn't seem to work properly due to the awkward emacs/runemacs distinction, and some things related to directory layout and navigation were painful due to assumptions of a Unix-style home directory clashing with Windows's user-directory layout. No WSL involved.
>WSL has been great for me to also be able to do few-compromises coding work on it (previously had an arch linux partition but was tired of having to reboot to access it).
Cygwin[0] is a lot more mature and has a huge set of supported applications.
WSL1 was a reimplementation of Linux system calls and offered most of what modern tools needed. WSL2 is a complete Linux kernel/distro running in a Hyper-V virtual machine.
Cygwin is no longer needed when you have real Linux.
>Cygwin is no longer needed when you have real Linux.
I'd say that depends on your use case.
For many folks, WSL is an excellent idea. I've played around with it and it doesn't give me anything over what I already have using Cygwin.
Also, Cygwin+userland is much lighter weight than an integrated VM like WSL2.
A lot of the question is what you want/need. I need a decent shell with a fairly complete unix userland. X is nice to have as well. That such functionality seamlessly integrates with Windows is great.
But I don't need a dev environment (although Cygwin provides that as well) for unix on my Windows box.
I'm sure there are other use cases/software that requires a full blown Linux kernel/environment, but they don't apply to me. I just use VMs (on separate hardware) for that.
And unless you actually need a full-blown kernel, rather than a specific set of tools, cygwin provides a lightweight, mature and well supported alternative.
Don't get me wrong, I'm not claiming that Cygwin is unix. Rather, I say that for a significant set of use cases, Cygwin can be a superior solution.
I also find that, for me, cygwin is a better solution for what I want: A bash shell and a decent set of unix-like command-line tools, that (critically) uses the same filesystem as Windows programs do.
I've honestly been kind of perplexed by all the excitement around WSL. A lot of people seem to say they want it for "development", by which I guess they mean web development. And I could see WSL being a nice alternative to running a full Linux VM for web development. But I don't do web development (mostly). I just want a unix-like shell and tools on my Windows box. And I don't want to have to think about whether the files I'm creating and working on live in Linux-land or Windows-land.
As stated, WSL2 is a full Linux VM. It's a real Linux kernel which means you have 100% compatibility for all Linux tools instead of workaround Cygwin.
Also the filesystem access is shared. That's why WSL is a separate thing, otherwise you could always just run a VM yourself. WSL lets you easily browse files, operate on the same files, and even call processes and pipe results across both sides.
Also kinda unstable. WSL2 maybe 2 months post release bricked (edit: as in had to wipe and restore) my Lenovo laptop. Wasn’t too bad to reinstall but still seems a bit immature.
BSOD and could not restore. To install wsl you have to enable windows insiders beta patches as part of install process. Had to external drive boot and wipe.
Have you managed to get an icon you can double click to open? I have to start WSL shell, `emacs &` then ^D. Not a huge pain, but would like a Taskbar icon
I put a small XFCE panel next to my windows taskbar. I put launchers for any windowed programs I want to launch. My .bashrc checks if the host is WSL. If the host is, then it checks for a running XFCE session. If there isn't one running, it launches the settings daemon and panel.
> The worst thing Microsoft can do is bring more people to Linux.
They're doing exactly the opposite. Just wait for the day some new killer Linux apps encourages, or even requires, WSL rather than native Linux to run properly, or to run at all.
Imagine a window-manager/desktop-environment using the same exact windows primitives and behaviour but integrated into the WSL Linux OS. That thing would be the killer app a lot of Linux users would dream of, it would for obvious reasons run only under WSL, and would take away a huge number of non-hardcore Linux users. "Why learn a new user interface when you can keep the same you're used to, and more importantly write Linux software that will make full use of it?".
I desperately want to be proved wrong, but I'm really pessimistic about WSL: it is to Linux exactly what WINE is to Windows, and will kill Linux pretty much everywhere except servers and embedded systems, just as WINE has killed Windows on many desktops where the real thing wasn't necessary.
> Just wait for the day some new killer Linux apps encourages, or even requires, WSL rather than native Linux to run properly, or to run at all.
Why that would exist? If you wanted an app that could only run in Windows, you could write it for Windows. Nothing has changed here.
The only reason to use WSL is because you want to use Linux software or you have a Linux server environment and you want to use Windows as your Workstation environment for development.
> just as WINE has killed Windows on many desktops where the real thing wasn't necessary.
Except, of course, this is running an actual Linux kernel. So really it's just putting Linux in Windows and running them side-by-side. If anything, it makes moving to Linux easier if somehow this becomes even more popular.
The thing is, your attitude is stuck in the 90's and Microsoft's isn't. They used to write software for many different platforms and they're starting to do that again. Microsoft definitely cares less now if you run their software on Android, iOS, Windows, or even Linux. They're going to make money off of you either way.
>> The thing is, your attitude is stuck in the 90's and Microsoft's isn't. They used to write software for many different platforms and they're starting to do that again. Microsoft definitely cares less now if you run their software on Android, iOS, Windows, or even Linux. They're going to make money off of you either way.
I think it's more of a market position change rather than an attitude change.
Microsoft had significantly more market share in the 90's and used that market share to get their way no matter what. Desktop computing was the dominant way most people used computers and Microsoft was king.
The rise of cloud computing and mobile caused Microsoft's dominant position to slip. They lost the cloud to Linux. They lost mobile to Apple and Android. They still have majority on desktop computing, but that too is under assault from Chromebooks in education and non-Windows tablets for "consumption-heavy" and casual computing.
>> They used to write software for many different platforms and they're starting to do that again. Microsoft definitely cares less now if you run their software on Android, iOS, Windows, or even Linux.
They have to. If they don't embrace other platforms they would dwindle. If Microsoft software was only available for Windows, many consumers would rarely use their products. Office 365 exists so Microsoft Office can live on as a web application and there-by be available for practically all devices.
>> They're going to make money off of you either way.
Exactly. They have adapted quite well and have demonstrated remarkable resilience and versatility. However I believe that they were compelled to change due to a loss of dominance rather than a change of attitude.
> I think it's more of a market position change rather than an attitude change.
I think the market position changed long before their attitude did. Microsoft's protective attitude towards Windows ultimately cost them mobile.
> The rise of cloud computing and mobile caused Microsoft's dominant position to slip. They lost the cloud to Linux. They lost mobile to Apple and Android.
They didn't lose the cloud to Linux -- that makes no sense. Cloud competitors are Google and Amazon. Microsoft's cloud market share is growing more than 50% every year. While it still much less than Amazon, Microsoft is in a solid position. Linux accounts for more than half the servers on Azure and I'm sure Microsoft is perfectly ok with that.
> They have to. If they don't embrace other platforms they would dwindle. If Microsoft software was only available for Windows, many consumers would rarely use their products.
A second ago, you were arguing that Microsoft is going to make Linux obsolete and you now seem to be arguing the opposite.
> However I believe that they were compelled to change due to a loss of dominance rather than a change of attitude.
I'm not sure how that is relevant or how either one of us could know the minds of the top executives at Microsoft. But either way, it means that Windows is definitely not Microsoft's primary focus as it was throughout the 90's and 2000's. WSL is part of that strategy and not some obsolete EEE scenario.
>> They didn't lose the cloud to Linux -- that makes no sense.
What I meant by "they lost the cloud to Linux" is that most server computers running in the cloud are not running Windows, they are running Linux.
>> Linux accounts for more than half the servers on Azure and I'm sure Microsoft is perfectly ok with that.
Azure is doing great as a cloud service, but the fact that more than half of the servers are not running Windows only underscores the change in strategy due to the loss of market share and dominance.
Microsoft executives in the 90's would not have been okay it. In their view, all computers must run Windows and any other operating systems were competitors.
>> A second ago, you were arguing that Microsoft is going to make Linux obsolete and you now seem to be arguing the opposite.
I am not sure how you got this from my comments. I was only speculating the Microsoft's attitude change was out of necessity rather than benevolence.
>> I'm not sure how that is relevant or how either one of us could know the minds of the top executives at Microsoft.
They were pretty vocal about their views on Windows and Linux at the time. Take these Steve Ballmer quotes for example:
"When we tell the story about what's happening today with browsers ten years from now, I want the thing that replaces Windows to be Windows."
"Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works."
"I've got my kids brainwashed: You don't use Google, and you don't use an iPod"
"There's no chance that the iPhone is going to get any significant market share. No chance."
"Let's face it, the Internet was designed for the PC. The Internet is not designed for the iPhone. That's why they've got 75,000 applications — they're all trying to make the Internet look decent on the iPhone."
"Whatever device you use... Windows will be there. … Windows will be everywhere on every device without compromise."
"We are in the Windows era — we were, we are, and we always will be."
Microsoft has always been about making devs happy so they will sell software to users. If devs are happy with Linux, WSL will make it easier for them to sell those apps to Windows users. The community of people who develop software is small compared to the audience that runs software, and those people are mostly on Windows. MS is doing this to keep devs happy and keep them shipping apps for Windows, even if the devs live entirely in Linux land.
Microsoft wants to sell Cloud to developers. More than 50% of servers on Azure are Linux. It's that simple. Obviously developing for Linux in WSL does nothing to keep developers shipping apps for Windows.
For me VMs have worked a lot better than WSL on windows. I'm not sure why everyone is so opposed to them these days. Near native performance, and you get all the linux widgets. Sure it takes up a little more disk space and memory but if you're an engineer those are minimal costs compared to other factors.
I’m not scared of their strategy because I’m aware of it.
I’m scared of adding all the unknown problems of Windows to all the problems of Linux and then having to depend on that on a daily basis.
So, I won’t use it. It’s too easy to buy a used computer, slap a new SSD and RAM in it and run Manjaro Linux. I recommend an HP Elite 800 from Amazon for $200-$300. Then if you need Windows it’s just one KVM/RDP click away.
That's an irrational fear. WSL2 runs on top of a very well vetted VM environment and has it's own well walled off sandbox. If you are trapped in windows like I often am it's a sufficient replacement for the real thing in 98% of use cases. Windows 10 is extremely stable on good hardware from well known companies. Just disable all the garbage that runs in the background. If you buy bottom barrel you will get what you paid for unless you're extremely lucky; same goes for linux.
No, it's irrational to think that you won't have to deal with the problems of two different OSes when you're running two different OSes. Run only one of them and you'll only have to deal with the problems of one of them on your daily driver.
It's really that simple.
For work, I put Windows out to pasture on a different workstation - I hardly ever need it at all (I keep it around for for testing and debugging Windows-specific issues and when I want to use SSMS instead of Azure Data Studio or Visual Studio instead of VS Code which is pretty much never), but when I do it's there. For games, I've always had separate dedicated Windows machines.
I run Windows on multiple systems and I'm absolutely aware of it's stability but also it's problems. One of my biggest issues with it is that it ignores my active-hours and starts updating right in the middle of me working or playing. It's happened time and again on pretty much all of my Windows machines.
Another huge Windows problem is that I don't have any control over many things. For instance - they keep re-pinning shit to the taskbar after an update. Or, they change my settings after an update. Or, they constantly nag me with popups or ads disguised as notifications or start menu icons.
> If you buy bottom barrel you will get what you paid for unless you're extremely lucky...
OK, not sure how that's relevant. I recommended buying a very solid, albeit refurbished desktop unit from a major manufacturer that I happen to have been running three instances of for years now without problem.
> ...same goes for linux.
What does that even mean? My years using Linux as a desktop have been filled with far less drama than the years I ran Windows as my workstation.
No, it's irrational to think that you won't have to deal with the problems of two different OSes when you're running two different OSes.
There are people commenting on this post who actually do this thing, and are telling you that your irrational fears are unfounded. Experience beating “thinking” every day.
This is part of their ongoing campaign to "featurize" Linux as just another part of Windows. It's not going to be extinguished. Quite the contrary; it will be easier than ever for devs to work with Liunux and FOSS and for users to consume those apps on Windows (where the users are). Users don't care where software runs or how and by folding Linux into Windows, everyone gets what they want. It's brilliant, really.
Does this mean Linux is finally going to get that desktop share it’s been seeking for 20 years? Jokes aside, this is actually cool for testing GTK apps.
I hope they do better than XQuartz (X11 on mac). It looks like they're doing well!
Running X11 apps on macOS always felt like an afterthought of an afterthought. It is slow and doesn't integrate with the system at all. I know it's possible to do much better, and I wish it were so.
Personally, I'd like to be using more GUI apps in Docker across platforms, but it's just ... gross right now.
A Microsoft Linux distribution would be very interesting.
Maybe PowerShell would be the default command-line interface.
VS Code would be the default text editor.
.NET Core programming languages would be in the default SDK with the ability to seamlessly develop applications and push to Azure.
They could even include a way to run legacy Windows applications to maintain backward compatibility with all the previous Windows applications--a Windows subsystem for Linux.
Seriously though, if Microsoft created a full desktop Linux distro I would definitely want to try it.
>> You have no idea how much stuff expects the shell to behave like bourne shell.
Would you please elaborate what you mean by this statement?
The C shell (csh / tcsh) and the Korn shell (ksh) don't follow Bourne shell conventions and yet they work fine as login shells and script interpreters.
It seems logical that PowerShell could be further adapted to be more Unix-like with "read" and "print" functions that would attempt to bridge the object / plaintext divide similar to the "read" and "print" functions that are used in Lisp-like languages to convert between Lisp-like forms and plaintext.
If it were superior for containers, Windows containers wouldn't have withered on the vine.
.NET Core being truly cross-platform is pretty much an official acknowledgement by Microsoft that Windows is not the be-all and end-all. To use their words, they're "meeting developers where they live" instead of insisting that one size fits all, if that size is Windows.
According to one of the comments, it seems it is running Wayland in WSL and connect to it through RDP. Do anyone know why not just run Wayland in Windows? Is there any technical limitation? I am not familiar with Wayland.
Wayland relies quite heavily on sharing various resources (especially memory) between server and client. Getting this to work between a server in Windows and a client in the WSL2 VM sounds quite tricky.
WSL2 has been a major game changer for me. Being able to isolate my work entirely inside the linux VM (with VSCode Remote) has eliminated 90% of my frustrations with developing on Windows.
After more than an year trying to get my laptop (very high dpi) and my monitor (high dpi) to have decent fractional scaling on Linux so that I could use both screens while working comfortably.
I decided to try wsl and it is pretty much as fast (with my computer/use case), OS just delivers the problem above, so I am sticking with it...
I really have to agree on the scaling issue. I spent an entire afternoon getting my two displays - one 4k, one 1080p - to scale at different values without having stupid issues, but I just couldn't get them to work. This is on X because I had issues getting Wayland to work (might have been my laptop nVidia 1060's fault, tbh). I can't wait for my issues with Wayland to get fixed, because I've heard the fractional scaling support is much, much better.
I've been debating Linux vs WSL2 recently and this is exactly the type of issue that has me pausing on embracing Linux Desktop.
I've paid thousands to the Mac ecosystem over the years purely to avoid these problems. I just want the OS to work, and i've literally never had that experience on Linux. I'm sure it's much much better these days than it was the last time i tried, but - everything i hear tells me they still exist to some degree.
4k and 1080p is my exact setup btw haha. I was debating installing PopOS this weekend.
If this is an issue, try using Wayland instead of X11. I run PopOS on a similar setup and it works flawlessly under Wayland. Give PopOS a try, you won't be disappointed!
Edit: there was no configuration needed. I selected Wayland from the menu and it just worked right out of the box. No bells and whistles, just a great desktop experience.
What's the material advantage of Wayland? I've done a tiny bit of research on what it is, but not how it materially provides a better UX to the end users. Thoughts?
I'll give it a look. Admittedly it doesn't sound attractive, because it sounds like the exact bells and whistles of configuration that i _don't_ want haha.
The longer i'm a software engineer the less energy i have for dealing with my OS, i guess.
I never tried Pop OS, I might look into it as well since it's based off Ubuntu LTS, which I quite like. I'm too old for the rolling releases that change constantly. I've been using Ubuntu and Redhat for a long time now.
It is much better. Run it in a VM for a while and get a feel for it. Pick one of the stable versions like Redhat (Centos) or Ubuntu LTS so that you don't have to worry about constant updates as you would in Manjaro/Arch. And buy linux compatible hardware or system if you plan on using it professionally. A preinstalled machine/laptop is great for that. Dell and Lenovo have several.
Any recommendation for linux compatible hardware? I'll be building a new machine next year and i'd like to make it work with Linux, so a buying list would be nice.
I know the CPU/Ram/GPU i want, but i imagine most of the trouble is motherboard, since so many features are there.
I'm also curious how my current hardware rates on compatibility.
I've been building my own systems for a while. As long as you don't get the absolute newest motherboards you'll probably be okay. I have never had an issue with Linux and the Asus/MSI boards I've bought. Also like someone else said go with an AMD GPU. On a self build you can always send parts back. But if you get a laptop and it doesn't work with Linux make sure they have a return policy :) . They're much more cantankerous in my experience. That said if you stick with a mainstream Linux like Ubuntu you'll probably be fine with nvidia. I just prefer AMD gpu policies because they open source the driver code. I think both have had issues with Linux in the past, so sometimes you have to try a couple of different versions of the drivers. I tend to be conservative and not always go with bleeding edge. However sometimes that's what works.
Interesting, i've heard Nvidia is the way to go. Closed source, yes, but still great drivers. I saw some very concerning behavior from AMD GPUs, like not releasing decent drivers for ages after new cards were released, etc.
I also have an Nvidia right now, so.. hopefully it works great hah. Otherwise i'll be on Windows.
tl;dr: AMD - if a particular GPU is supported by your kernel and Mesa versions, it works flawlessly, NVIDIA - way more ifs and randomness.
AMD: check in which kernel version AMD added the support for your GPU, and which Mesa version has feature parity (most of the time it's already there because there weren't any big shifts since Vega, RDNA2 might be that one) and you're good to go on any distro.
NVIDIA: Wayland support isn't there for years and foreseeable future, random issues with driver updates. Supports only 3 distros (Red Hat family, SUSE and Ubuntu without derivatives, I even made a page for devs how to add Debian flavour of it on any deb distro since Mint users were constantly struggling), Debian makes it's own decoupling of blob which works flawlessly but new version might not be there for a month because maintainers aren't there. I still remember that full support for Pascal has landed 6 months after the release.
Not sure if you've already seen this, but I highly recommend AutoHotkey [1] for setting up hotkeys and hotstrings in Windows. It's powerful and flexible, though the language can be a little odd at times. You can even script mouse movements, or create application-specific hotkeys.
I don't use WSL but I use a Linux VM that I just RDP into.
I run Windows on my personal computer, and just have a Debian VM I use for work.
When it's time to work, I just click an RDP shortcut and 3/5 monitors turn into work monitors. I still have easy access to my Windows stuff on the other two for the non-work related stuff I keep open all day (Spotify, Discord, etc).
When work is done, I just close the RDP session. All my work stuff stays open. I don't need to worry about saving any state, or restoring it the next day when I start work.
Also completely obviates any sort of driver or hardware issues. Stuff that's simple on Windows (e.g., using any of the multitude of USB/thunderbolt laptop docks) is just a friggin' nightmare on Linux.
The main use case for me, simplistically, is I still don't have an equivalent to Microsoft Word that I can run in Linux and that is still the standard for business / office applications. So I need a Windows desktop I can access ad hoc throughout the day interactively as I am doing things. Rebooting to do so would be prohibitively time consuming.
Of course, this is terrible, but it is what it is for now. The online office apps are slowly creeping towards viability but they are still a long way short. When (if) they get there I might be able to change this.
To use both systems simultaneously? Dual boot is either one or the other, and even then, adds considerable friction. Many Linux distributions don't support secure boot. Sometimes Windows updates overwrites the Linux bootloader.
There's ways to have the windows boot loader do it, but unless something's changed that really means the windows boot loader reboots the computer. EasyBCD[0] can do this, but only on an mbr partition with bios boot, not on gpt/UEFI boot.
Loading the windows boot loader from grub works better.
I generally prefer linux, but need windows for work related stuff (excel and visual studio). I have a full version of linux installed for duel-boot purposes and I still use it a bit, but WSL is getting better and better to the point where it's hardly worth it to have two OS's installed. It takes up space; it means that I have two dev environments to keep in sync with each-other; and restarting my computer to get from one to the other is a hassle. On my next computer, I might not bother installing two OS's and just stick with windows/WSL.
Why dual boot when you can do your linux work and windows work on the same machine? Imagine you write a lot of python code that has to work on both linux and windows. You want to dual boot for that? Sure for the final set of tests you would run on pure Linux but for day to day development WSL is a fine substitute.
Until recently I was booting into Windows and then remote deskoping into Linux. But Wayland has broken that functionality so badly I have just given up on Linux. When WSL gets this update that will mean I can do development on Linux again for the cross-platform GUI I like tinkering on (LibreOffice).
If you're dual-booting, you can go one better and virtualize your Linux distro in the windows environment. It works fairly well, the only problem is making the disk available for both types of uses; virtualbox has the ability to use a disk partition, but for hyper-v or other, you may need to work around it by mounting a disk image. (Doing something like this is really only useful if you have to actually boot windows natively for gpu acceleration or other reasons)
Dual boot takes way too much time. WSL2 literally fires up instantly and then you have an actual Linux VM running actual Ubuntu or whatever. Just no GUI. You can then use Visual Studio Code (the Windows app) to develop for Linux or Windows. If you do Linux GUI work it's obviously not ideal.
Main use case for WSL is to use Windows desktop and run Linux based development tools. Many tools are mostly developed/used on Linux and Windows support can be lacking.
This enables also using Linux based IDEs and other graphical tools (could be for example some command line tool popping up image viewer) or browser.
Um, never? The average developer doesn't know or understand anything about the kernel, they just like the UNIX shells and CLI environment. The popularity of the Mac (which, BTW, doesn't use the Linux kernel) is proof of that.
This actually has tradition, see the Irix and POSIX environment subsystems of earlier WinNTs. I think the current approach by Microsoft owes to the developments in the OS and virtualization tech space both in hardware + software over the past 20 years. Otherwise, if Linux were equally dominant in the dev/server space, we could've seen a revivial of the subsystem feature. Which would have been pretty cool, from an implementation POV, in its own way.
The new edge is just chromium, which already ran on Linux. It seems like a stretch to suggest it is emulating the windows version rather than just being a native Linux app
I remember doing this using X forwarding 10 years ago. Of course there is the potential here to implement something more performant, but for things like development tasks where 3D acceleration isn't so important, this has been possible since forever. So I wonder what's so exciting about it?
This feels a lot like that infamous comment left on the Dropbox thread.
> For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software.
It's convenient to get everything out-of-the-box with minimal configuration and supported by the operating system vendor.
I think that's the main point of the WSL. Most of the things people are using it for could have been done for years with a separate Linux VM, but getting smooth experience was not trivial.
Did "X forwarding" give you seamless access to local Windows files automatically? Did it work with microphones and other peripherals like this says it does?
Heck, was it even built-in into Windows with first-class support from Microsoft?
Not automatically, but yes if you set up a network share?
I mean yes, the fact everything is set up by default and supported is very nice, and some integrations are better than they would have been before such as sharing peripherals. But we are talking about something that is specifically for developers here. Many people are saying that WSL has finally let them use Windows for development, as if it was really impossible before before.
I assume you're referring to the integration between Windows and Linux?
Because WSL2 i've not had a single "chmod" issue, .. not sure why i would. Chmod within linux works just like you'd expect. However permissions across the OS boundary is another story.
Though TBH i'm not sure what you'd expect from chmod'ing files in the Windows side. Seems unfair to expect Linux-centric behaviors to work on the Windows installation. Eg you wouldn't expect to be able to put Windows applications inside Linux Containers, right?
Exciting, but let's see how long this takes to be released (not to insiders). I was excited when WSL 2 was announced, but it took almost a year to be released to stable. I had immediate needs that WSL 1 couldnt meet, and I could not run Insiders builds in my environment.
By the time WSL 2 actually was out, I had migrated completely to Linux. I'll keep checking MS progress here, but in many ways they already lost me and many others.
I'm glad Microsoft is doing development out in the open, but I really wish they'd do a better job of isolating features like WSL from the underlying OS. I'd gladly run an insider build of WSL, but with their track record of stability for their general releases, it terrifies me to think of running an Insider build of Windows.
From a Microsoft perspective, this feels like damned if you do and damned if you don't.
If they didn't embrance linux style tooling, they get told that they're anti-open source and that Macs will always be a better development environment when you're targeting Linux servers.
If they do embrance Linux style tooling, they get told it's EEE all over again.
I've been following the development of WSL, Terminal and VS Code. It doesn't strike me that this is some corporate EEE style policy, more it's a directive to make Windows as developer friendly as possible.
There's quite possibly an ulterior motive here, but it's more "make deploying onto Azure the happy path" than anything else.
WSL+VS Code+Terminal+Docker for Windows+Github == more business running their workloads on Azure == more money for Microsoft.
This is one of the more sane comments on this thread. There is a lot of paranoia about MS wanting to somehow "corrupt" Linux because some web developers are having IE6 flashbacks. Sure if it was still 1999 I'd be scared of that, but now Microsoft's biggest growth business is Azure, so this move is largely about supporting Azure usage, not about creating a weird Linux Windows hybrid to lock developers out of proper Linux distros. The rest all comes from MS being developer friendly, which has always been a part of their culture on the tools side
That's a poor portrayal of EEE. Of course this move is largely about supporting Azure usage, it just supports Azure usage by locking developers out of proper Linux distros.
When you use the proprietary DirectX extension in WSL, you're not developing for Linux anymore, you're developing for WSL, a proprietary package. And now that you're reliant on DirectX/WSL/Windows, what cloud provider are you going to pick? You see, the Azure Advantage (TM) is that only Microsoft knows how to run DirectX on Linux effectively, because only Microsoft can inspect and modify the code. The Azure Advantage (TM) is that only Microsoft has the proprietary rights for Windows, so Microsoft can charge their competitors anything they want while offering it on Azure at a (relatively) affordable price.
If you buy the theory that Microsoft now loves opensource and Linux, I want to ask you why they don't provide full support for things like 'Wine'. May be even develop something like that themselves, that will allow people run Windows programs flawlessly on Linux. (I mean, if they only mostly care about Azure)
Also, they have acquired Github, and they are slowly pushing towards the entire development/discussion to be moved to Github (In the guise of making it easier for people to contribute to Linux), from the current method of using the Emails for discussions and submitting patches.
When you consider everything, and don't just go by localized observations, you might get a better picture of the old EEE in the new bottle.
Supporting Wine would cost Microsoft money and not make them much/any money, why would they do that?
On the other hand, supporting VS Code, Terminal, WSL2 makes them money by helping boost their cloud services, so it makes sense to spend money in those areas.
Not to mention the uptake of proper linux desk top distro's is a rounding error in the big scheme of things. They need to worry more about Apple and Google. And Apple has done more to EEE Linux than Microsoft is going to do.
If they were just embracing Linux, it wouldn't be so nefarious. You're missing that they're already starting the "Extend" phase with proprietary DirectX extensions for WSL, encouraging developers who normally favor the Linux environment to instead target the WSL, which is Windows only.
This isn't just making deploying to Azure the happy path. This is ensuring that a generation of software in the Linux environment only works on Windows' WSL.
If you're going to do Windows specific GUI development, why would you go to the hassle of using DirectX/WSL at all? Why not just do native Windows development?
If you're not doing native development on Windows 'cause you want cross-platform support, you won't use DirectX specific pieces...
So if I'm understanding correctly, your theory is that MS will be expecting Windows servers with DirectX and WSL to be the targets for ML production workloads? Instead of Linux servers in Azure...
Wouldn't developers just write native Windows ML apps then?
This isn't true, you''re supposed to use proprietary DirectX libs that interface with a virtual DirectX device, as shown in this architecture diagram provided by Microsoft:
You're supposed to use APIs provided by mesa (OpenGL, OpenCL) or TensorFlow and similar ML Frameworks which then talk to D3D12 or DirectML as seen on linked diagrams.
It makes zero sense to consume D3D12 and DirectML under WSL directly from user applications since that prevents your app from being deployed on the real linux. There also won't be any SDK or headers released by Microsoft so you'll have to manually load functions from .so.
Not everyone will be using the popular ML frameworks that will likely try to smooth out cross platform differences. OpenGL & OpenCL is still available, that doesn't negate the fact that Microsoft's proprietary DirectX extension is exposed directly.
> It makes zero sense to consume D3D12 and DirectML under WSL directly from user applications since that prevents your app from being deployed on the real linux.
That's the whole point, people will do it because it's convenient, and Microsoft is counting on the fact that it prevents your app from being deployed on "real Linux". DirectX is already quite a popular API on a popular OS and actually pretty good on technical merit alone. It may very well be a sensible trade-off for a project or developer to move to DirectX, but it will be a loss for the Linux ecosystem.
> There also won't be any SDK or headers released by Microsoft so you'll have to manually load functions from .so.
The .so files are compiled from the same source code, the article doesn't go into a lot of detail but I suspect existing DirectX tooling will be updated for Linux targets. Either way, normal developers will have access to the same tooling and documentation as the developers for TensorFlow and similar ML frameworks you already claimed will talk to D3D12 or DirectML (unless you're claiming that Microsoft will give special tools to the open source TensorFlow project or something).
I think there a way too many people who are not political and do not give a flying fuck about all those conspiracy theories. They just care about doing the actual work. What we have on sites like this one is a vocal minority that may not represent common situation at all.
Unfortunately it doesn't make it more friendly to developers. If they wanted to make it more friendly to developers, they would release a Microsoft Linux distribution. Maybe port some critical dev tools. There are far too many incompatible quirks with Windows to ever make it a reasonable development platform when targeting Linux.
WSL2 is a virtual machine. It is way more than a reasonable development platform for linux and it is very much friendly to developers, much more so than another distro would be.
As a linux user I'm immensely happy that I can use the same shell-scripts and applications on windows machines as I do on linux. And that I can just SSH into it (and use the same tools, SSHing into powershell doesn't help much if you don't know or use powershell for anything else). It makes coexisting so much more comfortable.
This is more of "embrace" so the other steps are made obsolete. i.e. anyone running windows who ever considered trying linux will no longer be tempted since he would probably be able to do anything he wanted in windows either way.
Microsoft has created a GPU accelerated DirectX driver with Nvidia that only works on WSL 2. That is 'extend'. [0]
I can't begin to imagine if Microsoft starts creating an entire Linux development suite of apps that 'requires' the presence of WSL and Windows installed.
Depends on your perspective if you look at it from the perspective enterprise where Microsoft makes a lot of its money its a different story. The enterprise's IT department (which is probably already running Windows with Exchange, Office and the rest of MS stuff) faces the following issue: Developers want Linux tools, but to IT, it makes sense to keep all employees on Windows rather than give developers the option of Linux in order to make their management easier. With WSL the problem is solved, everyone is on Windows and developers get the tools they need.
Linux is definitely better at privacy by leaps and bounds. But! Performance, no, there are use cases where windows outperforms, and others where Linux does. Security they're almost equal with Linux with a slight advantage if you keep your OS up to date and fire walled.
The big danger of WSL is in drivers. For many hardware vendors, driver development is a cost center. It they could just get away with writing a single Windows Driver and then rely on a Microsoft supplied WSL universal driver which just does pass through to the Windows driver, it would cut down on their development cost. With GPU pass through, Microsoft already has this type of model, where the graphics driver on the Linux side of WSL is just a thin shim that calls to the Windows GPU driver. In the future, I could see NVidia, making all their consumer GPU drivers like this, and reserving native Linux drivers for their professional GPUs, which would help them segment the market better.
As much as I like to crap on nvidia, they have supported a relatively high quality Linux driver when it barely registered as a desktop platform. Hell, they even have a FreeBSD driver.
The good news is that if Microsoft becomes Micro$oft of old, you can just move off Windows and back to just normal old Linux.
At the moment though, this brings Linux and the entire Linux software ecosystem, a pretty good desktop experience, all of the Windows hardware/software ecosystem, and very good integration between the two environments.
It's sort of everything that OS X/MacOS used to be with respect to a great GUI + nix CLI. But Apple has given about as much attention to the nix side of the software as I give the sewage lines that run under my house.
With a Windows GUI and a CLI that is one of several distros. You get the benefits of the enormous hardware support Windows provides, but all of the opensource software the open source community provides.
Who knows what the long-term strategy is, but it's suddenly made Windows useful as a development platform again, right when Apple has started taking their eyes off the ball and has been ignoring the *nix side of their platform for years.
Do we have usage stats for WSL? I did a quick google search and the only thing I found was a laughably biased article claiming only around 150k people used WSL1. Just because Windows has a much larger userbase does not mean that WSL is seeing a lot of usage. It's very possible (and in my estimation likely) that the numbers are not even close.
Linux on the desktop numbers please? It's been known for "pure/native" Linux users to chant this phrase, yet it seems that Windows has achieved this.
I will see in the future lots of tutorials, guides, software, company support, etc covering not just your regular Linux but also WSL, since it's much easier to access rather than installing yet another Linux distro directly on hardware just to try Linux software.
My point was that you can't claim the 100 million+ Windows userbase as being the largest Linux distribution, because almost none of those people (proportionally) are actually using WSL.
I don't think we have the usage numbers for WSL. I don't think we have the usage numbers for Linux desktop either. I personally would be surprised if WSL was the largest Linux distro, but either way it's not a claim one can make because we don't have the numbers.
We used to use Virtual Box but Oracle.... our company wants to never have any Oracle products on any of our stuff. AT least with wsl we don't need to worry about that.
Right! Distribution of apps is about where the user lives, and that's Windows. Devs will be able to live in Linux and be happy and their apps will simply work in Windows and users don't care. It's win-win-win for devs, users, and MS.
It's still Linux kernel though. Linux is far more machines than windows. Embedded computers and phones are computers too. If you're talking desktops and laptops of course windows is in the lead by a huge amount.
This is also why I try to use the GPL where possible. The move towards permissive licences puts the open source world in the hands of the companies as opposed to having a legal guarantee
Open source is in at the moment but it might not be in the future (especially if we go all in on the cloud)
To me, it feels like someone got stuck working at Microsoft that likes Linux better so they decided to write some code to make it happen as a side project. Then somebody noticed... it doesn’t feel planned to me. But now that person feels happy to be working on Linux at Microsoft.
Desktop Linux market share has been growing in past years among developers, just check the stack overflow surveys. This is MS fighting over that market share by providing an alternative. They don't do it to help Linux but to protect their own base line. For employees this means less ability to justify running Linux on developer boxes and having to run Windows like the rest of the company.
Embrace-extend-exterminate is an objective strategic risk which exists regardless of Microsoft's current executive culture. With Microsoft now controlling an important part of dev tooling, i.e. stuff like VSC, TS, Github, Azure, the risk is very real.
It looks they are moving to subscription model now. The don't care whether they give software to you for free or not/which system are you using because they do earn more from subscriptions (azure, office 365, xbox game pass, whatever)
How would the steps “extend” and “exterminate” look like in this situation?
If Microsoft does anything people don’t like with WSL, people can move back to another Linux distribution, the cost is almost zero to move back to a Debian or Ubuntu.
Not if you let your workflow get intermingled with Linux (WSL) and windows because they worked well together and then suddenly Microsoft gets new management and decides to "take the company in a new direction"
And the vast majority of people still do. Linux isn't going anywhere. Microsoft will get injected with the open source virus as well, it's almost inevitable.
That view would have been reasonable 15 years ago. MS didn't embrace Linux because they want to be nice, but because they realized a desktop OS monopoly is completely useless in the mobile era. A big chunk of software developers prefer Mac or Linux. Work in the cloud is done on Linux. People use Windows at home/work because it's what they've been using for 25 years.
What's important to note is that the average Office/Browser user/Gamer has no idea that WSL exists. Its there for developers. So Windows is definitely not turning into Linux but you can say Nadella made a genius move to keep developers from fleeing Windows.
if windows was as secure as linux. + If I could have home edition, without forced updates which result in arbitrary restarts, then yeah I would move to windows.
Microsoft has a different moral compass nowadays. They need Linux to survive to grow their business so it makes sense to integrate such support into their desktop environment. We all win.
Wayland was released 12 years ago. Should we keep waiting? The Linux desktop already lost. You can attribute it to a lot of things, but it's nothing to do with WSL.
Well now WSL has given a clear migration path for Deep learning enthusiasts and professionals to be able to develop and test their models locally, before deployment without installing a Linux desktop.
Gamers and normal users don't care about using wine on Linux for running their Windows apps, when they can keep running the same Windows apps and games and run Linux apps on the Windows desktop. Thus have little to no reason to switch to desktop Linux.
It also makes sense if you want to keep developers from switching to Linux desktops. I for one, think that most developers, especially young ones, would be far better off migrating fully to Linux.
Nobody was switching to Linux on the desktop; its desktop market share has remained steadily negligible for the past twenty years. I'll wager this is aimed at unseating Mac as the UNIX-alike development environment of choice.
Most developers work in huge companies that give them a workstation with Windows pre-installed, mostly because Windows is much easier to administrate at scale.
Yes. Huge companies don't care one iota what you are experienced with - everyone gets a standard-build Windows machine (loaded with antivirus, endpoint protection and DLP, which combined use half of your CPU), or if you build for iOS, a standard-build MacOS machine.
Linux is huge in the server space in big business, and completely insignificant in the desktop space.
It is as you just re-image a laptop if it goes awry. AD is everywhere so that's how you can control and lockdown. I can't even install non-approved apps on my developer laptop running Windows. I can't install approved apps either without the correct authority from three layers of management.
>It also makes sense if you want to keep developers from switching to Linux desktops
Well, the huge majority of developers didn't switch en masse to Linux desktops for like 3 decades. The Linux desktop stats were still meagre, even right before WSL. It wasn't about to happen now...
This is more about making existing Windows using devs life easier for working with Docker / etc to develop for the Linux-driven server side (which has been a think for 2+ decades), than about preventing them from switching to Linux.
If anything, this is the opposite. It helps introduce the 95% of Windows using devs to Linux and UNIX userland while they're still on Windows -- which could serve as a gateway to using Linux directly.
Man I get why this is so exciting but I'd love some more unixes that are willing to move beyond PC GUI mechanics, like the use of ctrl as a GUI key binding that conflicts with read line bindings. The only real alternative are macs.
Looks impressive. Definitely useful for people who want to use/need windows and doesn't want to dual boot. I love how Microsoft loves open source by making Linux environment available on Windows.
So, Since Microsoft loves open source too much, I also believe they are creating Linux Subsystem for Windows where we can run Windows programs on Linux.(it may be better than wine because it is by Open Source loving Microsoft which created Windows).
So, Linux users who can't run Programs say Adobewares can then run in Linux Subsystem for Windows.
I also hope they will port Microsoft Officewares to Linux too. Since, MS loves Open Source, I believe that they will benefit Open Source and make Operating System a freedom that must be available to all people.
I can't tell if this is thick sarcasm or if you've read a bunch of press releases I missed. Do you have sources for any of your second or third paragraph?
Can't you see the word "believe" ?
There are many articles/news that say Microsoft is loving open source. So,i genuinely hope that, in the long run, All Microsoft softwares can run on almost all platforms thus blurring the need to dual boot to second OS( for ex., A person who runs Linux can use Microsoft Excel, Word without dual booting to Windows) . That's win-win for users as well as Microsoft.
I didn't claim any false things nor did i preach bad stuff. I just preached the importance of OS freedom that many dream.That was intention of Microsoft as well which loves open source.
https://www.youtube.com/watch?v=b2mnbyRgXkY&t=7975