The way some Linux/BSD developers fled to OS X and now WSL, kind of shows the big mistake it was for Microsoft and Apple not to be serious with their NT/POSIX and A/UX efforts respectively.
In a parallel timeline Linux would never picked up steam if those systems had been serious POSIX implementations.
Do you think there would have been as much value historically?
The main part of the appeal of WSL is that it lets me use the Linux dev ecosystem, which (for web work) is larger/nicer than the Windows ecosystem.
I think a lot of this comes from the revenue model -
For example, nginx is free, where IIS cost money.
As the world of cloud computing took off, it was easier to have devs learn Linux than it would be to pay for licenses for each server.
Eventually this meant that more companies were expanding/developing Linux solutions, developers were more familiar with those tools, and you have a self-reinforcing circle.
and because a ton of software was available or easy to port from the start, not in the least the GNU project. That's the value of a standard like POSIX, even if it has plenty of warts.
Not on the desktop, but embedded still seems to be going linux's way. Why does the gpl license of the kernel matter ? Android gets along fine with everything other than the kernel being differently licensed. MS launched some linux distro for IoT stuff as well.
MIT/BSD OSes like mbed, NuttX, RTOS, Zephyr, or bare metal like Arduino and ESP32, is where people are heading into, when they aren't using a commercial RTOS with security and real time capabilities that Linux has yet to fully support, like INTEGRITY, QNX.
For me, getting stuck with MPBs was mostly a function of wanting a higher quality Unix-like laptop. For a long time a vocal contingent of desktop Linux users wanted only ridiculously cheap hardware to run it on.
Thankfully that has started to change, and there are at least a few solid laptops available that ship with some flavor of Linux installed. I hope those options continue to make their way into the ranks of employer issued gear too.
Having WSL really has made me mostly stop dual-booting. While I have a Ubuntu installation for when I need a full blown Linux environment, I don't do that much development that requires a full blown Linux environment. When I'm working on hobby projects like small web apps, I have a hybrid setup using VSCode from Windows but using Bash via Ubuntu on WSL for the in-IDE terminal, which means the actual server is running from Node on Linux. For fairly vanilla web dev needs, it feels like the best of both worlds - I can even have Photoshop open on the same computer writing into the same drive.
My only gripe was how slow containers in WSL were on Windows, but with WSL2 that issue is going away.
I am pretty sure that one of the common reasons that people flock from MacOS to Windows is because of the absurd price of their hardware, not necessarily their software.
Have people ever flocked from Linux to Mac OS X? I've only ever heard of people flocking from Windows to Mac OS X and a small number of people moving between either one of those and Linux.
I remember when I bought my XPS13 a year ago, to work while I traveled, I found that even with WSL, it was painful to get my toolchain working on windows (mostly unix based tools) I ended up putting ubuntu (and currently popOS) and never looking back.
Had the same experience, I was forced to use Windows for a while, it was all so cumbersome. Tooling does not work, permission errors, wsl <-> host system copy errors, line ending errors, docker errors, character escaping errors, especially quotes and double quotes, PATH errors. The list goes on and on and on.
Also, if there are are no hard requirements for Windows such as most webdev why would anyone use WSL instead of the real thing? Especially if the deployment platform is Linux, makes no sense for me.
Have you had bad experiences with Windows subsystem for Linux? In my experience it's useful, effective, and works out of the box with no configuration.
I'm being massively downvoted here, thanks for asking the why ! Been using windows 95,98,2k,7,10. I've had countless problems with it for more than 10+ years. Countless steps for system setup, bad/missing drivers, malware, spyware, performance degradation over time, system creeping more and more resources, cannot fix bugs upstream...
Since then I've switched to linux (less gaming) which has its own flaws and pains, but I love it.
Regarding WSL, why bother mixing two philosophies together ? Switch to linux and you've got it all, unaltered, and open source.
If you can, great. For a lot of us Windows is a reality we've made our peace with so having WSL is great. And tbh, W10 has been basically rock solid for me.
How is it a reality that you HAVE to make peace with? I've been interviewing a lot lately, and the vast, vast majority of workplaces have no problem with me running Linux as my daily driver. Most even offer Macs.
I can relate to your pain. At a previous position we had special windows workstations to deal with all of windows-specific software, and all of our personal workstations were using linux.
Now that I manage teams, I don't care about what OS people use. The more productive they are the better. The only dev (over 15 people) that used windows told me after a few months he regretted keeping windows on his machine !
Just to add another anecdote to yours, I've had none of your 'countless problems'. The W10 machine that I'm typing this on hasn't been rebooted in 8-9 months (bribed IT into putting my box in a no-update GPO :D). Its been nothing but rock stable for me. Heck, until a month ago, I was using a old sony W7 laptop with the original W7 installed from 2011 and it was just as performant as it was on day 1.
I believe you, but I don't know what you're doing that makes it so unstable. Or maybe I'm just a bit more OCD than others. I am extremely selective about kernel-mode components and what I install on my machine.
so cron is working now in it? I will definitely try it out again. also... why do you mean by "running"? it's basically a vm so as long as i have a command prompt open, it should be running, correct? it would be cool if there was a way of keep it up and running like a regular vm.
When you close the shell it sort of sleeps; there seems to be some hooks to allow it to wake on request, for ssh, but for the most part the system sleeps and won't wake until a shell is opened.
I get around this by having an X app always running, and its behaviour is sufficient to prevent WSL from sleeping.
Some folks I know just leave the shell open, but having an xfce panel is desirable to me.
If you used systemd instead of cron it would at least run as soon as it came back, if it was out when it should have run. That's usually sufficient for backups and such.
that is strange that they put it to sleep like that. I wonder what the reason is and if there is an actual supported way to prevent this and use it like a regular VM?
I still prefer Cygwin. I can't make a WSL program that is also a win32 program and that has a native win32 GUI. With Cygwin, I can. If I want a sandboxed VM, I can get a sandboxed VM using a number of different technologies, of which WSL is merely one.
GPU support is non-existent, unfortunately. It would truly be amazing if that changed because I agree that X410 is excellent. I think I had to add a creative snippet to my .bashrc to set the DISPLAY ip on WSL2, but it could not be easier to use other than that.
I'm also a bit disappointed it doesn't bridge the host network like WSL1. It's nice there that I can just run something and access it on local host - it even works together with docker-for-windows, the docker CLI client being in WSL.
I believe that recent(ish) builds of Windows, webservers running in WSL can be accessed from Windows via localhost:port, just like with WSL 1. [0] Accessing servers running on the Windows side from WSL is a fair bit harder, but IMO also a lot less likely.
Everything is transparent to me, it's like I'm working in Linux when I use vscode and wsl2 together. There is still the issue with dbus, but you can get a script that replaces sysctl to her things running again.
Edit: to be specific, I can access local servers on wsl2 from windows, I don't even use an xserver.
I'm still on wsl1.. and just ran into this today.. you can run docker for windows and the docker client on wsl can access it over tcp
For docker composer i had to change the root in wsl.Conf
I don't know, I fought Bluetooth and headset mic configurations all the afternoon and got it working (God, I have two mic, why is there 12 mic outputs to choose from ?!) but I still don't want to get back on Windows (it wants too much ram and its file Explorer is too slow compared to dolphin).
And then, how do I use bindfs with WSL ? Where are the WSL files and the docker volumes inside it ?
I’ve used windows my entire life/career. I recently moved jobs to an all Mac startup and I can’t believe how much better Bluetooth and VPN is. I keep messing up keyboard shortcuts and I don’t quite understand how “windows” work on a Mac. But the Bluetooth situation alone (I could never get my QC35s to work as a headset when needed and just headphones as needed) means I won’t use windows for a productive work environment for awhile. (Still have a gaming desktop that will always run windows for fun and VMs for dev)
> I don’t quite understand how “windows” work on a Mac.
The app and having a window open of that app are decoupled, simple as that. Open up, say, Safari, press Cmd+W to close the window, and Safari will still be open. Press Cmd+N and you'll open a new window. Press Cmd+Q to quit it, regardless of how many windows (including zero) are open.
Can you share how you configured your bluetooth headset? I have a pair of sony's noise cancelling ones, but I could never get the mic to work on linux. Thanks in advance!
This is about the only gripe I've had with linux desktop in recent years. For everything else, its been at par or better than windows/osx for me. I do mostly programming, music synthesis/recording and photogrammetry/image processing on a Dell XPS-15, and its been great.
Well, here's what I did (not in that specific order):
- use alsamixer to find out which mic is which and if they are muted (it's a CLI app)
- install blueman to have it easier to switch the headset to hsp/hfp (a2dp sink is one way and it means it's not designed to send sound from the headphones, I made that mistake)
- since I have a Dell I had to fight that pesky mute led status in alsa (haven't figured out yet what it means, I ended up disabling the internal mic in the bios to be sure it was the headphone doing the recording) ; there are bug reports about the keyboard key not doing what it's supposed to do ; the internal mic only works when I set it to On in the alsamixer menu ; you can check if the laptop led is on or off (like the webcam) ;
- use pavucontrol to try to figure out what device is doing what (it's like the sound control center but it displays more information)
- make sure to switch off every device that is not your headset/headphone (hdmi, internal, anything) ; it's funny how you can configure an audio stream (say your laptop's internal speakers) to be the recording stream: it'll just record itself
I also installed audacity and recorded myself muttering "blah blah" way too many times in order to try to identify the microphones detected by the system. I still don't understand why I have so many redundant output devices with the same name and an incremental version (:1, :2, :3) but hey.. it works (I just want to be able to video call two colleagues tomorrow, I really don't know how to control for quality if you have studio quality sound recording needs :/).
> Where are the WSL files and the docker volumes inside it ?
In WSL1 files are stored in a protected folder of %LocalAppData%. It's protected because using Windows and regular NTFS-expecting tools has a bad tendency to mess up Linux ACL metadatda. More recent versions of WSL1 added a Plan9-based file server that shows up as a pseudo-device in Windows under a UNC path \\wsl$
In WSL2 the files are stored in a VHD-like file (VM hard drive) and the Plan9-based file server is always available in every version of WSL2 (under \\wsl$ still) and additionally used in both directions (/mnt/c/ is no longer a direct NTFS mount on the Linux side, but now uses the file server, because WSL2 is more VM-like in every facet).
I think that should work fine in WSL1. You just need to know that inside the WSL file system /home is not Windows %Home% (C:\Users\ or localized equivalent) and you want to use the \\wsl$ path for working with /home from Windows applications. The easiest way to tell if your WSL1 version is setup to provide \\wsl$ paths is to try `explorer.exe .` in the console in the directory you want the \\wsl$ path to. If it opens somewhere random in %System32% or %LocalAppData% then it doesn't support it (request an upgrade from your IT Admin).
I switched to Windows with WSL for all personal work about a year ago. I had been using Lubuntu (Lfce) for years, but wanted to give it a shot. There are some rough edges (file system permissions can be weird if you're sharing files between the host and Linux), but it has been great and I've gotten comfortable with it. One thing to be aware of is many devs will want at least Windows 10 Pro edition ad you can't use Home as a docker host. I didn't feel bad paying $100 for the upgrade though.
Just an FYI, if somebody wants a legitimate license of windows 10 pro (well, pretty legitimate) eBay vendors sell “OEM” keys which have been pulled from scrapped hardware for a for dollars.
If you’re getting audited by Microsoft this is probably not OK, but I have never had any problems with it for personal use.
There are also numerous ways to get upgrades from 7 to 10, your employer might offer etc. etc. Microsoft is being pretty liberal with windows 10 licenses these days, even pro.
No hypervisor support for Windows Home is pretty insane. Ran into this problem with a friend's laptop during a hackathon a year or two ago. Wonder if ripping that out makes QA faster.
I'm sure a big piece is Microsoft thinking "most users don't need this so we can get away with charging the few who do". I have trouble feeling outrage because it is only $100 to upgrade. I've paid almost that much for a text editor.
I'm not angry, I'm just disappointed. So many students and future programmers use Windows Home (I did as a kid), and Microsoft would throw away the opportunity for them to play around and lock them in. Now I can't imagine using Windows Home to program.
$100 seems pricey for a text editor, my friend. Is it IntelliJ or PyCharm? Why not VSCode + Sourcegraph?
I always felt this was named incorrectly. It's not a Windows Subsystem for Linux operating systems, it's a Linux Subsystem for the Windows operating system.
It was an historical reason. WSL1 was named such because instead of using Linux kernel, Microsoft uses Windows NT subsystem to run Linux userland (hence Windows Subsystem for Linux). As WSL become a well known name, the next iteration (the one with the real Linux kernel) is simply named as WSL2.
That's why "Linux Subsystem" would have been clear and straightforward. Just one more of Window's subsystems. Cramming "Windows" in the name is what makes it confusing.
Subsystem here is a reference to a Windows subsystem. There are many subsystems within Windows that handle various OS functions. In this case, a subsystem was created to handle running Linux.
It's phrased in a very confusing way, so it's a very poor choice of names, but I wouldn't go so far as saying incorrect.
The preposition "for" has a lot of different meanings, and the one they've used, though extremely unexpected here, is legal.
They mean it in the sense that it enables something, like in "tips for success" or "a budget for entertainment". This is a Windows subsystem, and what it's for is making Linux stuff available as a feature.
In the context of computers, "for" commonly means targeting toward or being compatible with something, like "apps for iPhone". Which is not how they mean it. And which is why they should have chosen something different.
It's maybe not incorrect, but it is inconsistent[1].
Traditionally they had the name of the non-native system first. So
Win32 subsystem for running Windows 32bit applications, OS/2 subsystem for running OS/2 applications, POSIX subsystem for running POSIX applications etc.
So had they been following this, it should have been called the Linux subsystem.
It sure is nice for all the people who are stuck on Windows/prefer Windows but need access to Linux tools.
But I'm not sure what this will do to Open Source in the long run. I don't think WSL users will care a lot about the ideals of the Free Software people and I'm not sure whether the Free Software people will love to maintain code for people who don't give a fuck.
Or maybe it will expose more people to the idea and will provide a new entry point for new talents.
The nice thing about FOSS is there's a property-based guarantee over software development progress. The moment WSL goes embrace-extend-extinguish (and that's far from guaranteed to happen, given Microsoft's benign nature of late), Linux will just continue to do its own thing. It won't just stop existing. The code isn't going anywhere, and you can always host your own mirrors.
The only reason their are being benign to open source is because it allows them to hedge their bets and leverage their good hardware support to gain share among people who wouldn't consider Windows a viable option.
WSL's primary purpose is to prevent market loss to Linux and macOS. And yes, BSD (but we all know how likely that is to happen).
Sure, you can complain that Google haven’t given everything away for free.
However the open source AOSP has been amazing - lots of innovation from individuals and other companies has occurred because they could start a project using AOSP.
Also because Android is based on Linux, drivers have been released and improvements have happened to the kernel. Compare that to what you get from Apple with Mach (or iOS).
It feels to me that you are complaining because someone gave you a free beer, but only half filled the glass.
Sure it is, because apparently they get support for doing stuff that Microsoft gets bashed for, like the way they manage their Linux changes, or their own Java dialect.
> But I'm not sure what this will do to Open Source in the long run. I don't think WSL users will care a lot about the ideals of the Free Software people and I'm not sure whether the Free Software people will love to maintain code for people who don't give a fuck.
People who care about the ideals of the free software people have always been a genuine minority group. You might be using the terms interchangeably, but it's why the term "Open Source" exists.
WSL1 wasn't restricted to just Ubuntu. All the major distros were available. Canonical's cooperation is useful from a trademarks standpoint, but I don't see Canonical having any leverage in this arrangement.
"But I'm not sure what this will do to Open Source in the long run."
I don't know about Open Source as a concept/movement, however it will destroy Linux as we know it.
More and more developers are already flocking to it (and VSC) for writing Linux software. All it needs is a killer library (Windows GUI bindings?) and/or extensions that could push developers into writing software that expects to be run under WSL instead of the real thing.
It may seem stretched, but WSL is to Linux what WINE is to Windows; so how many of us could run Windows software under WINE without any Windows installed?
WINE didn't damage Windows because there are simply too many native Windows installs compared to Linux users with WINE, but what about the other way around? Linux wouldn't stand a chance.
Microsoft is slowly gaining full control of Linux, one developer at a time, and nobody seems to care.
Can’t imagine the licensing for server editions of Windows will take off when Linux for servers is still FOSS.
I think it’s great that more people are getting access to FOSS on Windows. I remember when Linux didn’t have a package manager and you had to install dependencies manually.
Enabling Windows users a limited Linux experience should help encourage more Linux switchers.
"Enabling Windows users a limited Linux experience should help encourage more Linux switchers."
I really wished this was the case, however I hardly imagine Microsoft execs discussing at meetings the introduction of WSL to encourage people to switch to Linux.
A "limited Linux experience" has been available to Windows users since Cygwin allowed us to have bash and gcc on a Windows machine. I used it a bit in the early 2000's and extensively in 2008-2009 when I was issued my first Windows laptop in ages. Before my laptop suffered a most regrettable accident that rendered the Windows partition inoperable and forced me to switch to Linux. When hardware virtualization became available and memory became more abundant, running Linux VMs was a no-brainer.
WSL2 is faster, better integrated and closer to what a Linux environment is supposed to be.
I can't say how it'll effect everybody else or what the overall effect will be but I do use WSL quite a bit. I don't use Linux as my main desktop but I have been using Linux since '98 in some dual boot but mostly headless installs. For me it makes life much easier.
All I want from Linux is the command line. Instead of having to fire up a VM or SSH into a remote box and transfer files I have access to them on my PC.
Based on my experience it makes Linux more accessible to me. It doesn't really change the way I use Linux other than to give me more options.
I can't imagine it being hurtful to Linux overall. Because of things like the Raspberry Pi and Android people are already in some ways getting familiar with Linux. Because of MacOS some people are getting familiar with Unix in general. If anything I think people will be like me in that WSL will simply make Linux more accessible.
It worries me that this appears to be Windows attempt to turn Linux into a component of Windows-essentially Windows swallowing Linux. Linux shouldn’t require Windows to operate.
Linux doesn't require Windows to operate, but it might work better if it's packaged in Windows.
The big question mark for me is drivers. Having great drivers to take advantage of hardware across a multitude of different platforms is an issue of market share and market demand. I have an NVMe drive, 16GB of the fastest RAM, workstation-grade networking, and Dolby speakers on my laptop. I can't take advantage of it, because I accidentally erased Windows 10 Professional for Workstations when dual booting Ubuntu, that had all the specialized drivers. I'm fine with Ubuntu, but I kind of wish I had Windows + WSL instead.
Doesn't Windows download the drivers and/or doesn't your vendor offer driver downloads?
(For Windows itself, you can just download the ISO from Microsoft's website and use the product key that is on the laptop during installation.)
When it comes to drivers, it's one of the reasons why I dislike Windows. I try Windows every now and then, just to see what is happening in that ecosystem. The last time I installed Windows on my NUC, it automatically got the drivers for all the hardware (nice), but with that all kinds of vendor applications that I don't want, some Realtek nonsense and some Intel GPU application.
I was quite surprised by that. On Linux or macOS, I driver is just something that you load into the kernel, but it would never come with applications that I most likely I don't need. The system felt... polluted?
As long as you have a network connection you can install Win 10 again and it will activate the license for free as long as it's the same Home or Pro version, You can even switch your install to or from 32 and 64 bit.
I might not have activated my license, but I do have a genuine Microsoft Windows sticker and the laptop serial number. I'll give them a call tomorrow to see what they can do. Thanks so much for sharing!
You don't need to, your license is actually an attestation in your laptop's firmware: you can simply reinstall and it will automatically activate by itself
Whenever drivers come up I wonder what people are doing that somehow doesn't just work automatically. Everything I ever plugged into Linux in the past few years has instantly worked perfectly, the only exception being GPUs.
Meanwhile Windows starts looking for drivers for a few minutes, and may or may not find them.
Agreed. From the list of hardware OP listed I see 0 reasons why it won't work natively in Ubuntu. Even better than windows because you won't need any special drivers to download!
Many developers are using Windows or macOS and roll out to Linux servers. HN news has a relatively large number of people that use Linux on the desktop. But if you go to big traditional IT companies, it's mostly Windows and some Mac on the desktop. For people who prefer Linux or deploy to Linux in such environments, WSL and WSL2 are a great improvement over juggling (non-WSL2) VMs.
The filesystem performance on a Windows FS mount is absolutely unusable in WSL2. They are aware of it, but it does not seem to be a priority right now. Looks like I'm going to be stuck on WSL1 for quite some time unfortunately.
I suppose it depends on what you use it for. I've only tried some simple stuff like having webserver dokcker image and using a volume for the html while developing on the experimental wsl2 integration for docker, and that has worked splendidly.
Doing it that way, no files are ever mounted 'from windows', it's all contained within wsl.
The Fedora remix for WSL is on sale for $6 right now. If you're interested in WSL, this is an upgrade from the free Ubuntu distro. I hope they continue on with it for WSL2. I much prefer Fedora to Ubuntu.
I've got Manjaro XFCE on multiple workstations for almost 2 years now. Setting up a new Manjaro workstation is far less annoying than setting up Windows 10. I just did a comparison the other day because I needed to work on a SQL Server project that requires the use of Visual Studio + SQL Server Development Tools (SSDT).
On Windows 10 Pro - ssh didn't even work correctly in Git Bash after I ran ssh-keygen. I could only git clone from a cmd prompt.
The only 2 things I kinda miss from Windows are TortoiseGit and SSDT. Luckily, I don't really need them most of the time.
(Before Manjaro I used Windows since version 3 and I only used Linux for server since Red Hat 4 or 5. A couple of years ago I couldn't have imagined using a Linux desktop but now everything I do is just better on Linux.)
> Setting up a new Manjaro workstation is far less annoying than setting up Windows 10
Pretty much true for any Linux distro. Also much easier to fix when something goes wrong (which is increasingly rare unless self-inflicted). And Gnome is an unbelievably polished environment (if not very customizable)
Hypothetical scenario - new Dell laptop refuses to connect to your home Wifi. Linux laptop does that flawlessly, same laptop connects when booted to a Linux live USB stick. Where do you look? Standard control panel? Driver-specific panel? Dell's panel? System logs?
Back when WSL was first released I tried getting my ruby environment set up using it, but at the time I still used a graphical text editor and getting it talking to the Linux filesystem was too much of a bother.
Nowadays I use vim so I gave it another chance a couple of weeks ago. Together with the new Windows Terminal app [1] it's been a great experience. I can run my editor and my code on Linux and then visit the webapp from the browser in the Windows environment.
Note: There's also better support for talking to the Linux filesystem from Windows nowadays, but I've not needed it so I can't comment on how good it is. Scott Hanselman has a good blog post on getting it set up though [2])
I can understand why people left Linux for Mac OS X: at the time, the Linux desktop really wasn't that advanced, and most folks didn't want to deal with what really could be a pain. I thought that it was worth it to stick with Linux, but I could see why some folks would use a Mac. I don't really understand why they stick with it today, but that's a post for a different time.
But I really cannot understand why anyone would willingly use Windows. I sometimes have to, and it is hellaciously, embarrassingly bad. There's nothing about the experience which says good or enjoyment or quality or anything positive. Things are inconsistent. There are ads on the home version. Simple things are slow. And it's ugly!
If you're stuck at a company which forces you to use Windows, I guess WSL is better than nothing. But why not just move on?
all I can say is the combination of visual studio + cmake + windows terminal + WSL has been life changing for me. I can have a terminal open with a WSL tab and a powershell core tab, and build both Linux and windows builds from the same repo. No more remoting into a Linux box or having to setup a VM (wsl will turn into one soon). You can even debug your Linux build in visual studio using wsl. Same with haskell builds, I literally have the same stack yaml and I can run tests for both OSes from the same code.
I'm a developer, too. But I find it's easier for me to just use native Linux without all the MSFT cruft getting in the way.
Just like I reckon WINE is useless, too. And for pretty much the same reasons.
If you want to use Windows, use Windows.
If you want to use Linux, use Linux.
If you want to use both at the same time, then you might get away with using a pure Linux guest on a Windows host, or a pure Windows guest on a Linux host, using VMWare or VirtualBox. But these hybrids (WINE and WSL) are the worst of both worlds.
Well, if you are resorting to VMWare/VirtualBox -- you might as well use WSL, since it's just a VM optimized for OS integration.
Wine, OTOH, is a runtime, not a VM... and I've personally never been able to get it to work (I'm sure this speaks to my lack of knowledge more than the merits of the project). I've had issues with WSL, but it's not really comparable.
I disagree. Both WSL and Wine are immensely useful to use some tools from the other world in your workflow without having to shuffle data between the two or adding overhead for simple tasks. I encounter tools that only exist for one (or are a real hassle to build for the other) often enough for this to be useful.
I wouldn't do development that's primarily for the other platform with them though.
145 comments
[ 4.7 ms ] story [ 72.1 ms ] threadIn a parallel timeline Linux would never picked up steam if those systems had been serious POSIX implementations.
The main part of the appeal of WSL is that it lets me use the Linux dev ecosystem, which (for web work) is larger/nicer than the Windows ecosystem.
I think a lot of this comes from the revenue model - For example, nginx is free, where IIS cost money.
As the world of cloud computing took off, it was easier to have devs learn Linux than it would be to pay for licenses for each server.
Eventually this meant that more companies were expanding/developing Linux solutions, developers were more familiar with those tools, and you have a self-reinforcing circle.
In what concerns desktop and embedded, it hasn't won.
Ironically IoT is now getting full of BSD/MIT licensed POSIX clones, exactly for not having to deal with anything GPL related.
Thankfully that has started to change, and there are at least a few solid laptops available that ship with some flavor of Linux installed. I hope those options continue to make their way into the ranks of employer issued gear too.
My only gripe was how slow containers in WSL were on Windows, but with WSL2 that issue is going away.
Hence why stuff like homebrew came to be, due to people developing OS X, but deploying into GNU/Linux.
Many having the same reasoning as Miguel de Icaza:
"What Killed the Linux Desktop"
https://tirania.org/blog/archive/2012/Aug-29.html
To the point that it just feels ironic walking around FOSDEM corridors and seeing the majority carrying macbooks.
Also, if there are are no hard requirements for Windows such as most webdev why would anyone use WSL instead of the real thing? Especially if the deployment platform is Linux, makes no sense for me.
Since then I've switched to linux (less gaming) which has its own flaws and pains, but I love it.
Regarding WSL, why bother mixing two philosophies together ? Switch to linux and you've got it all, unaltered, and open source.
Now that I manage teams, I don't care about what OS people use. The more productive they are the better. The only dev (over 15 people) that used windows told me after a few months he regretted keeping windows on his machine !
I believe you, but I don't know what you're doing that makes it so unstable. Or maybe I'm just a bit more OCD than others. I am extremely selective about kernel-mode components and what I install on my machine.
Also chocolatey -> brew etc
In my case, I use X410+WSL and have a xfce panel always active on my desktop, and that is sufficient to keep WSL alive and so have a working cron.
I get around this by having an X app always running, and its behaviour is sufficient to prevent WSL from sleeping.
Some folks I know just leave the shell open, but having an xfce panel is desirable to me.
(also does systemd handle this stuff now?)
And with WSL's import feature I have trivially replicated this WSL environment to all of my machines.
Yes, it's won me over.
Oh huh, are you running an X server for this? And if so, does GPU acceleration work for Linux apps?
Many people are using it now but I don't have time to mess with beta software. I am exercising my patience.
0: https://docs.microsoft.com/en-us/windows/wsl/wsl2-ux-changes...
Edit: to be specific, I can access local servers on wsl2 from windows, I don't even use an xserver.
And then, how do I use bindfs with WSL ? Where are the WSL files and the docker volumes inside it ?
The app and having a window open of that app are decoupled, simple as that. Open up, say, Safari, press Cmd+W to close the window, and Safari will still be open. Press Cmd+N and you'll open a new window. Press Cmd+Q to quit it, regardless of how many windows (including zero) are open.
This is about the only gripe I've had with linux desktop in recent years. For everything else, its been at par or better than windows/osx for me. I do mostly programming, music synthesis/recording and photogrammetry/image processing on a Dell XPS-15, and its been great.
- use alsamixer to find out which mic is which and if they are muted (it's a CLI app)
- install blueman to have it easier to switch the headset to hsp/hfp (a2dp sink is one way and it means it's not designed to send sound from the headphones, I made that mistake)
- since I have a Dell I had to fight that pesky mute led status in alsa (haven't figured out yet what it means, I ended up disabling the internal mic in the bios to be sure it was the headphone doing the recording) ; there are bug reports about the keyboard key not doing what it's supposed to do ; the internal mic only works when I set it to On in the alsamixer menu ; you can check if the laptop led is on or off (like the webcam) ;
- use pavucontrol to try to figure out what device is doing what (it's like the sound control center but it displays more information)
- make sure to switch off every device that is not your headset/headphone (hdmi, internal, anything) ; it's funny how you can configure an audio stream (say your laptop's internal speakers) to be the recording stream: it'll just record itself
I also installed audacity and recorded myself muttering "blah blah" way too many times in order to try to identify the microphones detected by the system. I still don't understand why I have so many redundant output devices with the same name and an incremental version (:1, :2, :3) but hey.. it works (I just want to be able to video call two colleagues tomorrow, I really don't know how to control for quality if you have studio quality sound recording needs :/).
In WSL1 files are stored in a protected folder of %LocalAppData%. It's protected because using Windows and regular NTFS-expecting tools has a bad tendency to mess up Linux ACL metadatda. More recent versions of WSL1 added a Plan9-based file server that shows up as a pseudo-device in Windows under a UNC path \\wsl$
In WSL2 the files are stored in a VHD-like file (VM hard drive) and the Plan9-based file server is always available in every version of WSL2 (under \\wsl$ still) and additionally used in both directions (/mnt/c/ is no longer a direct NTFS mount on the Linux side, but now uses the file server, because WSL2 is more VM-like in every facet).
But it could be done in WSL2 (keeping permissions intact in the volume while being able to edit them outside) ?
If you’re getting audited by Microsoft this is probably not OK, but I have never had any problems with it for personal use.
There are also numerous ways to get upgrades from 7 to 10, your employer might offer etc. etc. Microsoft is being pretty liberal with windows 10 licenses these days, even pro.
$100 seems pricey for a text editor, my friend. Is it IntelliJ or PyCharm? Why not VSCode + Sourcegraph?
You do make a good point re: Windows 10 Pro. I hadn't thought of it from that perspective.
So sometimes I give up on my favorite command line tools and switch to "CMD".
I think "Windows Linux Subsystem" would've been more accurate, but it's also more confusing.
On the other hand, they named their 32-bit Windows emulator "WOW64 (Windows-on-Windows 64-bit).
The preposition "for" has a lot of different meanings, and the one they've used, though extremely unexpected here, is legal.
They mean it in the sense that it enables something, like in "tips for success" or "a budget for entertainment". This is a Windows subsystem, and what it's for is making Linux stuff available as a feature.
In the context of computers, "for" commonly means targeting toward or being compatible with something, like "apps for iPhone". Which is not how they mean it. And which is why they should have chosen something different.
Traditionally they had the name of the non-native system first. So Win32 subsystem for running Windows 32bit applications, OS/2 subsystem for running OS/2 applications, POSIX subsystem for running POSIX applications etc.
So had they been following this, it should have been called the Linux subsystem.
[1]: https://docs.microsoft.com/en-us/previous-versions/windows/i...
The old installer had "Windows Executive" and "Human Interface Parser" as installation items that always had my head scratching
But I'm not sure what this will do to Open Source in the long run. I don't think WSL users will care a lot about the ideals of the Free Software people and I'm not sure whether the Free Software people will love to maintain code for people who don't give a fuck.
Or maybe it will expose more people to the idea and will provide a new entry point for new talents.
At least Canonical is getting paid.
The nice thing about FOSS is there's a property-based guarantee over software development progress. The moment WSL goes embrace-extend-extinguish (and that's far from guaranteed to happen, given Microsoft's benign nature of late), Linux will just continue to do its own thing. It won't just stop existing. The code isn't going anywhere, and you can always host your own mirrors.
And there's always BSD.
The only reason their are being benign to open source is because it allows them to hedge their bets and leverage their good hardware support to gain share among people who wouldn't consider Windows a viable option.
WSL's primary purpose is to prevent market loss to Linux and macOS. And yes, BSD (but we all know how likely that is to happen).
However the open source AOSP has been amazing - lots of innovation from individuals and other companies has occurred because they could start a project using AOSP.
Also because Android is based on Linux, drivers have been released and improvements have happened to the kernel. Compare that to what you get from Apple with Mach (or iOS).
It feels to me that you are complaining because someone gave you a free beer, but only half filled the glass.
People who care about the ideals of the free software people have always been a genuine minority group. You might be using the terms interchangeably, but it's why the term "Open Source" exists.
It'd be a lot different if, for instance, Oracle was able to actually kill MySQL.
WSL1 wasn't restricted to just Ubuntu. All the major distros were available. Canonical's cooperation is useful from a trademarks standpoint, but I don't see Canonical having any leverage in this arrangement.
I don't know about Open Source as a concept/movement, however it will destroy Linux as we know it.
More and more developers are already flocking to it (and VSC) for writing Linux software. All it needs is a killer library (Windows GUI bindings?) and/or extensions that could push developers into writing software that expects to be run under WSL instead of the real thing. It may seem stretched, but WSL is to Linux what WINE is to Windows; so how many of us could run Windows software under WINE without any Windows installed? WINE didn't damage Windows because there are simply too many native Windows installs compared to Linux users with WINE, but what about the other way around? Linux wouldn't stand a chance. Microsoft is slowly gaining full control of Linux, one developer at a time, and nobody seems to care.
Can’t imagine the licensing for server editions of Windows will take off when Linux for servers is still FOSS.
I think it’s great that more people are getting access to FOSS on Windows. I remember when Linux didn’t have a package manager and you had to install dependencies manually.
Enabling Windows users a limited Linux experience should help encourage more Linux switchers.
I really wished this was the case, however I hardly imagine Microsoft execs discussing at meetings the introduction of WSL to encourage people to switch to Linux.
WSL2 is faster, better integrated and closer to what a Linux environment is supposed to be.
All I want from Linux is the command line. Instead of having to fire up a VM or SSH into a remote box and transfer files I have access to them on my PC.
Based on my experience it makes Linux more accessible to me. It doesn't really change the way I use Linux other than to give me more options.
I can't imagine it being hurtful to Linux overall. Because of things like the Raspberry Pi and Android people are already in some ways getting familiar with Linux. Because of MacOS some people are getting familiar with Unix in general. If anything I think people will be like me in that WSL will simply make Linux more accessible.
The big question mark for me is drivers. Having great drivers to take advantage of hardware across a multitude of different platforms is an issue of market share and market demand. I have an NVMe drive, 16GB of the fastest RAM, workstation-grade networking, and Dolby speakers on my laptop. I can't take advantage of it, because I accidentally erased Windows 10 Professional for Workstations when dual booting Ubuntu, that had all the specialized drivers. I'm fine with Ubuntu, but I kind of wish I had Windows + WSL instead.
(For Windows itself, you can just download the ISO from Microsoft's website and use the product key that is on the laptop during installation.)
When it comes to drivers, it's one of the reasons why I dislike Windows. I try Windows every now and then, just to see what is happening in that ecosystem. The last time I installed Windows on my NUC, it automatically got the drivers for all the hardware (nice), but with that all kinds of vendor applications that I don't want, some Realtek nonsense and some Intel GPU application.
I was quite surprised by that. On Linux or macOS, I driver is just something that you load into the kernel, but it would never come with applications that I most likely I don't need. The system felt... polluted?
The license is stored on Microsoft's server's.
Meanwhile Windows starts looking for drivers for a few minutes, and may or may not find them.
Also Solaris, SmartOS, IBM and Unisys mainframes also run Linux on their hypervisor based environments and not much are complaining about them.
Great stuff!
Doing it that way, no files are ever mounted 'from windows', it's all contained within wsl.
The best part of any Linux distro is the terminal, I've ditched my Linux laptop for a Windows laptop with WSL and haven't looked back.
I've been pretty tired of linux desktop environments being flaky, lack of gaming, Nvidia driver issues, etc. Windows + WSL has been a godsend
On Windows 10 Pro - ssh didn't even work correctly in Git Bash after I ran ssh-keygen. I could only git clone from a cmd prompt.
The only 2 things I kinda miss from Windows are TortoiseGit and SSDT. Luckily, I don't really need them most of the time.
(Before Manjaro I used Windows since version 3 and I only used Linux for server since Red Hat 4 or 5. A couple of years ago I couldn't have imagined using a Linux desktop but now everything I do is just better on Linux.)
Pretty much true for any Linux distro. Also much easier to fix when something goes wrong (which is increasingly rare unless self-inflicted). And Gnome is an unbelievably polished environment (if not very customizable)
Hypothetical scenario - new Dell laptop refuses to connect to your home Wifi. Linux laptop does that flawlessly, same laptop connects when booted to a Linux live USB stick. Where do you look? Standard control panel? Driver-specific panel? Dell's panel? System logs?
Nowadays I use vim so I gave it another chance a couple of weeks ago. Together with the new Windows Terminal app [1] it's been a great experience. I can run my editor and my code on Linux and then visit the webapp from the browser in the Windows environment.
Note: There's also better support for talking to the Linux filesystem from Windows nowadays, but I've not needed it so I can't comment on how good it is. Scott Hanselman has a good blog post on getting it set up though [2])
[1] https://github.com/Microsoft/Terminal
[2] https://www.hanselman.com/blog/RubyOnRailsOnWindowsIsNotJust...
I can open explorer.exe from inside wsl2 environment to copy files back and forth easily.
But I really cannot understand why anyone would willingly use Windows. I sometimes have to, and it is hellaciously, embarrassingly bad. There's nothing about the experience which says good or enjoyment or quality or anything positive. Things are inconsistent. There are ads on the home version. Simple things are slow. And it's ugly!
If you're stuck at a company which forces you to use Windows, I guess WSL is better than nothing. But why not just move on?
Just like I reckon WINE is useless, too. And for pretty much the same reasons.
If you want to use Windows, use Windows.
If you want to use Linux, use Linux.
If you want to use both at the same time, then you might get away with using a pure Linux guest on a Windows host, or a pure Windows guest on a Linux host, using VMWare or VirtualBox. But these hybrids (WINE and WSL) are the worst of both worlds.
Wine, OTOH, is a runtime, not a VM... and I've personally never been able to get it to work (I'm sure this speaks to my lack of knowledge more than the merits of the project). I've had issues with WSL, but it's not really comparable.
I wouldn't do development that's primarily for the other platform with them though.
Or get a Windows VM.
> If you want to use Linux, use Linux.
Then get a Linux VM.
Simple. Easily solved.