So I recently got a new machine (Windows 10 PC) and I came across this reference[1] for downloading the Windows 10 subsystem for Linux. I downloaded and installed everything fine per the docs, but now my question is:<p><i>What are the limitations on this instance of Linux?</i><p>Can I use all my machine's resources (RAM, Disk, CPU)? Or are only a certain amount of these resources allocated for the Linux instance? I ask because being able to run Linux on this machine this easily sounds a bit...too good to be true. Any documentation references will be much appreciated.<p>[1] https://docs.microsoft.com/en-us/windows/wsl/install-win10
It's cool, but it's not what you'd normally understand "Linux" to be. It implements the Linux kernel syscalls, so it supports most of glibc and some of the GNU userland, but misses a lot of the stuff that makes Linux, well, Linux. You can't use iptables. No namespaces AKA containers. When you get to userland, your session is just a bash login shell. There's no DBus, no systemd, no X11, no clipboard. You have to do some fairly ugly hacking to share an ssh-agent between two consoles. And so on and on and on. It's cool for some things, but not good enough for some other things, and I don't see it growing support for those in the future either.
I've used it a bit but not seriously/professionally. My biggest issue was that after installing NVM and node, startup of the terminal took literally seconds. It was so bad that I had to move the NVM init lines from bashrc to an alias and I only run it when I know I'm working on node stuff. Not sure if it was just me or everyone else too.<p>Other gripes include relatively little customization for the terminal window. You can customize colors and fonts. But I don't remember it even supporting tabs.<p>Also the disk volume of your Linux subsystem is relatively separate from Windows, so if you wanna have an IDE edit code in a folder and run such code in the Linux terminal, you have to cd into some strange volume path to get there. Can work around it by creating a symlink from your home dir.<p>Ultimately my opinion is if you want Windows/Linux and not buy into the Mac ecosystem, it's better to just dual boot Win/Linux and only boot into Windows if you need to use some software not on Linux.
I use WSL on a constant basis. I haven't had any problems with it so far. As others have noted, it can take a second or two for the terminal to start up. That's probably my only gripe so far. I usually leave the terminal running for long stretches of time, so that start up time is ultimately meaningless.<p>That said, I'm not doing anything unusual with it, I haven't installed anything out of the ordinary. As such I can't speak to the depth of compatibility.
I'm using it full-time, albeit not for anything esoteric - mostly for zsh & bash, all my commandline stuff, node/npm etc. For these purposes it's pretty much equivalent to doing the same on macOS (though if you're used to Linux, the core utilities will be more familiar on WSL than on the mac). By and large Microsoft have done an impressive job with WSL. Windows vs unix filepaths can be a pest for some things (particularly integrating commandline with GUI apps), but I don't think I've come across anything without a workaround so far.<p>I wouldn't really call it 'running Linux' - for that you'll need to actually install & run Linux (either on the metal or in a VM). But for many of the purposes for which you might want to run Linux, WSL is more than adequate.
I recently switched from Fedora 26 to Windows 10. I've been using WSL for the past 3 days for webdev and so far its been pretty smooth.<p>Feels pretty similar to doing web with a Macbook Pro. No issues with local servers or anything.<p>One odd thing is that the Linux home directory is different from your Windows user directory. If you use the terminal from within VSCode this is a none issue since it starts in the project working directory anyway.<p>Honestly, the thing I miss most from Linux / OS X is the dropdown Quake style terminal. Wish Windows had better terminal emulators.
WSL does very well for me.<p>Lack of booting services can be irksome, no underlying support for docker, no KVM etc. (Not having to deal with systemd is a bonus IMHO)<p>However pretty much everything else I've thrown at it works.<p>Even running X apps (you need a Windows native X server, but that's fine.<p>You can use up all the disk space, other drives, as much RAM as you need ... It's all available.<p>The minor annoyance for me is the lack of specific file system support (fuse would do at a pinch) and maybe libusb support too. But those are easily solved with spinning up Linux in your favourite hypervisor.
I do use it on a consistent basis, after my MacBook had keyboard issues in May. I forced myself to create an entire web app on it over the course of 1 month to see how it felt.<p>Surprisingly, it was quite a pleasure to work with. There are certainly small little quirks that takes some getting used to and some keyboard short cuts that aren’t present from my Mac setup. Nonetheless, WSL is good enough that I would happily recommend it to colleagues.
Cygwin works <i>much</i> better for me than WSL - it strikes a perfect balance between being a full-featured UNIX and, at the same time, being part of Windows.
You cannot use GPU for computation inside WSL.
<a href="https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/16108045-opencl-cuda-gpu-support" rel="nofollow">https://wpdev.uservoice.com/forums/266908-command-prompt-con...</a>
It's one of the most requested feature and not having that is a big negative for me. (I've used WSL and then switched to simply having dual boot Windosw+Ubuntu)
- Bash terminal in WSL is very limited in color support, no tabs. use ConEmu or X11 + Terminator
- Due to lack of good color support, themes like Airline dont render well
- Could never get ssh-agent to work fine, that literally sucks
FWIW:<p>Coming from a Mac, it still did not gave me the UX that I was used. Everything seems to be patched on.<p>Due to KB issues, at this new job, I bit the bullet and tried to move to Win + WSL. Unfortunately, did not work out for me and I am going back to Mac (new 2018 ones).
Note that it is <i>not</i> an "instance of Linux". Microsoft's nomenclature for these NT subsystems is effectively to name the part that the Windows NT kernel substitutes for. There is <i>no Linux</i> in the Windows Subsystem <i>for Linux</i>.<p>* <a href="https://news.ycombinator.com/item?id=11417059" rel="nofollow">https://news.ycombinator.com/item?id=11417059</a>
I have a raspberry pi in my home network with an SSH server. I then just use Putty or Git Bash and ssh into the pi to do my Linux related work from Windows. I need to work a little more with systemd and block devices, so I didn't think WSL would cut it for me.
Disk is <i>very</i> slow. Phoronix did some benchmarks recently, check them. Virtualbox is faster for some stuff, and more convenient.<p>I don't recall performance comparisons with Cygwin, which is still my default shell for Windows.
I tried it once a couple years ago. First thing I did was 'git status' in a large project.<p>I died waiting for it to finish and have since been reincarnated.