# What do you think of Windows Subsystem for Linux (WSL)?

onoturtle
I'm curious what others experience have been with using WSL on Windows 10, otherwise known as Ubuntu on Windows or Bash on Windows. The recent Microsoft Build event reminded me that this was an option.

I have a workstation coming in for work in a week or so with Win10. The original plan was to install Ubuntu and use the Win10 key for a VM for the various Windows only stuff used in the office. I'm curious about simplifying this and just using Win10, see how it goes and turn to Ubuntu if it sucks.

Some weaknesses I'm aware of:

- I understand that WSL is more efficient than running Ubuntu on VM, but not as efficient as running Ubuntu directly. So there will be some performance impact. Not a big deal for me, I think, since I'll still be using remote Linux servers to run bigger tasks.

- No Linux GUI. I think there are some X server or some other workarounds. I don't know. Probably not a blocker for me since I'll be doing mostly command line tools. My field has some visual stuff but all the examples I can think of are Java or R that I can run directly in Windows.

- Not a full implementation of the Linux kernel. This worries me. I think some network using tools may not work. Not sure how this will affect my work yet. Could be the deal breaker.

- "screen" seems broken. I need to run an initial screen with sudo to have the permissions to initialize directories. I think I can add something to my bash profile to run some clean-up to fix this up.

I only tested WSL on a Win10 VM on my personal MacOS laptop, as the work computer isn't here yet. I'll have deeper impressions once the workstation comes in. Unless others impressions here deter me and I go straight into Ubuntu!

I'm interested in experiences from both the for work and for personal use perspectives. While my primary thoughts at the moment are aimed at the work situation and even if WSL may end up not being very good there, I still may consider WSL for a next personal computer where I'm not interested in using Linux. I currently use a Mac but being limited to Apple hardware is not ideal and I don't care for going through all the hoops for a Hackintosh.

Last edited:
Buffu

Mentor
See the cygwin site - there is already a pretty decent implementation of linux specifically meant for running linux apps. I used cygwin for years - no problems - developing and running C, C++, R, Ocaml, you name it. Linux under windows has been done for at least 15 years.
https://www.cygwin.com

It does not have/support system management code for obvious reasons. You can run any windows app from the cygwin command line - like cmd.exe is able to do.
There is x-windows support, Gnome, and other desktops.

onoturtle
Cygwin is a different beast, as it site itself states. That's about providing functionality to port Linux apps to Windows (or use ports built by others) or use Linux-like functionality in a Windows app, as opposed to running native pre-compiled Linux binaries or doing Linux app development that you can do with WSL. Different use cases, so I imagine both will co-exist.

I personally don't do any Windows development at all and since Canonical is partnered with MS, it is Ubuntu under the hood, which makes me more confidant in it over Cygwin. Current version is still in beta, hence the issues. I'm not sure when the full release, along with RedHat and other Linux distributions will be available on the Windows Store.

After the recent worldwide ransomware attack caused by a Windows vulnerability, why would anyone choose this approach over just going directly to Linux? I would recommend just installing Ubuntu and avoid Windows like the plague.

fluidistic
Gold Member
I'm curious what others experience have been with using WSL on Windows 10, otherwise known as Ubuntu on Windows or Bash on Windows. The recent Microsoft Build event reminded me that this was an option.

I have a workstation coming in for work in a week or so with Win10. The original plan was to install Ubuntu and use the Win10 key for a VM for the various Windows only stuff used in the office. I'm curious about simplifying this and just using Win10, see how it goes and turn to Ubuntu if it sucks.

Some weaknesses I'm aware of:

- I understand that WSL is more efficient than running Ubuntu on VM, but not as efficient as running Ubuntu directly. So there will be some performance impact. Not a big deal for me, I think, since I'll still be using remote Linux servers to run bigger tasks.

- No Linux GUI. I think there are some X server or some other workarounds. I don't know. Probably not a blocker for me since I'll be doing mostly command line tools. My field has some visual stuff but all the examples I can think of are Java or R that I can run directly in Windows.

- Not a full implementation of the Linux kernel. This worries me. I think some network using tools may not work. Not sure how this will affect my work yet. Could be the deal breaker.

- "screen" seems broken. I need to run an initial screen with sudo to have the permissions to initialize directories. I think I can add something to my bash profile to run some clean-up to fix this up.

I only tested WSL on a Win10 VM on my personal MacOS laptop, as the work computer isn't here yet. I'll have deeper impressions once the workstation comes in. Unless others impressions here deter me and I go straight into Ubuntu!

I'm interested in experiences from both the for work and for personal use perspectives. While my primary thoughts at the moment are aimed at the work situation and even if WSL may end up not being very good there, I still may consider WSL for a next personal computer where I'm not interested in using Linux. I currently use a Mac but being limited to Apple hardware is not ideal and I don't care for going through all the hoops for a Hackintosh.

Your decision must depend on the exact set of specific needs you have. That said, Bash / WSL is deliberately branded as "beta" because there are known issues and incomplete things in it. If - as you mention in your OP, the limitations are not of so much concern for your specific needs - but again I'd recommend considering the whole thing from all the different perspectives, then you can go with it but the Linux kernel is not a full implementation and won't be in the foreseeable future, for obvious reasons. As you may already know, WSL is based on work on an abandoned Microsoft project called Astoria - regarding Android apps on Windows OS. In order to develop Bash on Windows, Microsoft has worked with Canonical and from a strictly technical standpoint this is not Linux. It offers a set of limited features and that's it. Of course, I don't say there is anything wrong with it other than this very fact.

On the other hand, there is often some fuzz about VMs regarding their efficiency on using resources and I really cannot see the point given today's memory high availability regarding size and speed, HD drives capacity and efficiency, processors' speeds and if there are not really big things to implement and run on the OS running on VM. It is my preferred way in many situations and the feature of OS isolation is of great importance. Potential vulnerabilities and inefficiencies that will inevitably come into play won't give you a show of nasty interplay.

Also, performing a clear Linux install is always a good idea if you want to work / develop on Linux, provided that you don't need Windows or any apps specific to it. There are so many good and reliable Linux distros and tools / applications for them, that you can really go with pure Linux and have no problem at all.

Jamison Lahman
onoturtle
Seems like the reports I read that network features don't work is outdated. For my work use case of bioinformatics/comp bio, seems like other people have been successful:

https://www.reddit.com/r/bioinforma...formatics_on_a_windows_computer_how_to_build/

So I think I'll give it a shot. I may have to sacrifice an evening after work to get Ubuntu up and running if Win10 doesn't work out, but probably worth it since I want to spend some time in Win10 to evaluate it as a possibility for a personal computing purposes to expand my computer hardware options from just Apple. There I only have some simple bash scripts for some file management and backup via rclone. I just need to figure out how scheduling (cron, launchd) works in WSL if at all. So I think that functionality will likely work out fine, but I just need to figure out what I think of the Win10 UI! I got some sense of it using it as a VM, but it'll be a different feeling when it is the host OS, I think.

stoomart
Seems like the reports I read that network features don't work is outdated. For my work use case of bioinformatics/comp bio, seems like other people have been successful:

https://www.reddit.com/r/bioinforma...formatics_on_a_windows_computer_how_to_build/

So I think I'll give it a shot. I may have to sacrifice an evening after work to get Ubuntu up and running if Win10 doesn't work out, but probably worth it since I want to spend some time in Win10 to evaluate it as a possibility for a personal computing purposes to expand my computer hardware options from just Apple. There I only have some simple bash scripts for some file management and backup via rclone. I just need to figure out how scheduling (cron, launchd) works in WSL if at all. So I think that functionality will likely work out fine, but I just need to figure out what I think of the Win10 UI! I got some sense of it using it as a VM, but it'll be a different feeling when it is the host OS, I think.

As a Linux guy, I personally like the Windows 10 system, after disabling all the annoying apps and privacy issue settings. I installed LSW yesterday and did some basic sysbench performance tests compared to native Linux on the same system via dual boot, and found CPU to be severely impacted. I will post specific results soon.

onoturtle
stoomart
Sysbench stats for LSW (Windows 10 1703 x64) and NAT (native Fedora 25 x64):

Code:
Test execution summary (10000 events):
nat   total time:                          98.9255s
lsw   total time:                          127.6780s
nat   total time taken by event execution: 395.6661
lsw   total time taken by event execution: 510.6012

sysbench --test=memory --num-threads=4 --memory-block-size=1M --memory-total-size=1T run
Code:
nat    Operations performed: 1048576 ( 6841.94 ops/sec)
lsw    Operations performed: 1048576 ( 2873.61 ops/sec)

nat    1048576.00 MB transferred (6841.94 MB/sec)
lsw    1048576.00 MB transferred (2873.61 MB/sec)

Test execution summary (1048576 events):
nat    total time:                          153.2571s
lsw    total time:                          364.8985s
nat    total time taken by event execution: 612.4421
lsw    total time taken by event execution: 1451.8137

sysbench --test=fileio --file-total-size=50G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
Code:
nat    Operations performed:  14340 Read, 9560 Write, 30530 Other = 54430 Total
lsw    Operations performed:  5160 Read, 3440 Write, 10911 Other = 19511 Total
nat    Read 224.06Mb  Written 149.38Mb  Total transferred 373.44Mb  (1.2448Mb/sec)
lsw    Read 80.625Mb  Written 53.75Mb  Total transferred 134.38Mb  (458.62Kb/sec)
nat    79.66 Requests/sec executed
lsw    28.66 Requests/sec executed

Test execution summary:
nat    total time:                          300.0083s
lsw    total time:                          300.0325s
nat    total number of events:              23900
lsw    total number of events:              8600
nat    total time taken by event execution: 166.9534
lsw    total time taken by event execution: 60.7171

onoturtle
chmasy
After you get the workstation with windows 10 why don’t you just image/ghost the system so you can always get back to the base system you started with. This way you can always try a bunch of different configurations and then choose what is best for you.

stoomart
After you get the workstation with windows 10 why don’t you just image/ghost the system so you can always get back to the base system you started with. This way you can always try a bunch of different configurations and then choose what is best for you.
Being leery of any OS upgrade since Win95, I prefer to download the latest major build, backup using File History and System Image, then reinstall fresh whenever they come out; I've done this with Windows 10 versions 1507, 1511, 1607, and 1703.

I'm hoping to post some stats for a Linux VM running in Windows compared to LSW shortly.

Edit: Unfortunately sysbench core dumps under VMware Player 12.5.5 for both Fedora 25 and CentOS 7 on the laptop I've been testing with, looks like my dinky Lenovo laptop (Yoga 2 11) wasn't built for running VMs.

Last edited:
Jamison Lahman
After the recent worldwide ransomware attack caused by a Windows vulnerability, why would anyone choose this approach over just going directly to Linux? I would recommend just installing Ubuntu and avoid Windows like the plague.
It was my understanding that the ransomware were not zero-days. Update your machines and you'll be fine. I am a huge Linux activist, but even I have certain user-need cases for Windows. I've been using Windows since I was young but never learned terminal commands. I know Unix commands fairly well so it makes being on my Windows machine much more pleasant. The Ubuntu Podcast just recently had a very good episode about this (I don't remember which one it was, but it had an interview with the CEO of Fedora if you're interested.)
P.S. I would personally recommend Manjaro or Anetgros distributions over Ubuntu ;-)

Jamison Lahman
In order to develop Bash on Windows, Microsoft has worked with Canonical and from a strictly technical standpoint this is not Linux. It offers a set of limited features and that's it. Of course, I don't say there is anything wrong with it other than this very fact.
I believe they've been working with a lot of major Linux distributions as well. If nothing else, I see this as Windows acknowledging their product is not perfect and I applaud their efforts. Moreover, most standard users will never even be aware of WSL making the idea even more admirable (though they are probably trying to be more competitive on the server side than making Windows desktop "better")

onoturtle
I think it has been about a month since my workstation came in and I'm pretty comfortable with Win10 now. WSL runs well enough that I probably will stick with Windows.

There was one thing I was getting annoyed with but I don't think I can pin it on Windows. I was trying to use fastq-dump (or even prefetch) to download and extract fastq files from a ~60GB SRA file. Ran it all day to no avail. Might be a combination not as efficient WSL network implementation and SRA tools issues. The solution seems to be to download the SRA file from ftp via curl (has the benefit of restarting the download if connection is lost as well!) then using fastq-dump to extract from downloaded sra file.

As far as migrating from Mac to Windows for personal use to expand my laptop options in the future, things look promising.