What’s new in WSL in Windows 10 Fall Creators Update
Similarly to the Windows 10 Creators Update, the Windows 10 Fall Creators Update (FCU) delivers a large number of improvements and features in the Windows Subsystem for Linux (WSL) .
Note: For fans of our sister project, Windows Console, please also read our post on “What’s New in Windows Console in FCU“.
We’ve been documenting many of these new features and improvements on this blog over the last few months, but we’ve often been asked for a single document listing all the new improvements, and with FCU (version 1709, build 16299.15) shipping on October 17th 2017, we thought it was time to publish a list these improvements!
We’re excited about all the WSL team has accomplished leading up to the Fall Creators Update. Here’s the list of updates we’ll discuss in this post:
- WSL is no longer a Beta feature
- Install Linux distros via the Windows Store
- WSL now runs multiple Linux distros
- WSL no longer requires developer mode
- WSL comes to Windows Server & Microsoft Azure VM’s!
- WSL now supports USB/serial comms
- Miscellaneous fixes and improvements
- Deprecating the name “Bash on Windows”
- So, what’s next?
First, some background on “Building Windows”
Before we get started on WSL and Console features, we’ve seen lots of confusion in the community about what Insiders builds are, and how we release Windows, so we want to briefly outline the process through which we build and release Windows.
As many of you know, Microsoft has gone from delivering a new Windows release once every 3-4 years down to once every ~6 months! Actually, this isn’t quite true: In fact, we deliver Windows every week via our Windows Insider Program! The Insider program delivers regular beta-quality builds of the next version of Windows as it’s being built. Thus, the Insiders builds released over the last several months were snapshots of the Fall Creators Update that ships on October 17th 2017.
Note: “Fast Ring” Insider builds ship approximately once per week, and “Slow Ring” Insider builds release once every 4-6 weeks. Because this more rapid release cycle, some undiscovered or low-impact issues occasionally get released in Fast Ring builds, but are usually patched within a week. Slow Ring builds incorporate fixes to issues that may have slipped out into Fast Ring builds, and tend to be more stable. This is why we do NOT recommend installing Fast-Ring builds as your primary OS on your main/only machine.
But why is this important to WSL & Console users? Well, our first piece of news, is that…
WSL is no longer a Beta feature!
We first shipped an early beta version of WSL in Windows 10 Anniversary Update (), followed by major improvements in Creators Update (March 2017), though WSL remained a beta feature.
In Fall Creators Update (shipping 17th October 2017) WSL will become a fully supported OS feature.
This means that if you run into unexpected issues or problems with WSL, you can contact Microsoft Support to file a support ticket that will be managed through the normal channels.
Alternatively, the engineering team & community continue to provide support via the WSL Github Issues Repo and Feedback Hub. We greatly appreciate all the support that the community provide via these channels.
Install Linux distros via the Windows Store
In Windows 10 Anniversary and Creators Update, an Ubuntu image was downloaded and installed when “Bash on Ubuntu on Windows” (bash.exe) was first run.
In Fall Creators Update, we now enable you to install one or more Linux distros from the Windows Store. Currently, you can install Ubuntu, openSUSE and SUSE Linux Enterprise Server (SLES). Fedora and other distros will arrive in the store in the coming months.
First, enable the Windows Subsystem for Linux feature in the “Turn Windows Features on or off” dialog and reboot … and yes, the reboot is required – WSL will not work until you’ve rebooted!
After rebooting (you did reboot after enabling WSL, right?), search for “Linux” in the Store, and click the button in the Linux banner:
Then, click your favorite distro(s)…
…and hit the Install button on the product page:
A minute or two later, your distro(s) will be installed and you’ll be able to run your favorite Linux distros and tools on WSL.
**Note****: When you first run your distro, we expand the distro onto your PC. This can take a couple of minutes so please be patient the first time you run a newly installed distro.
So, now you have one or more distros installed, you can run them …
WSL now runs multiple Linux distros
Perhaps the biggest improvement to WSL in Fall Creators Update is its ability to not only install one or more Linux distros from the Windows Store but to be able to run them side-by-side, simultaneously!
Now you can install and run Ubuntu, openSUSE, and SUSE Linux Enterprise Server alongside one another, and alongside all your favorite Windows tools, and shells including Cmd and PowerShell.
Each distro runs independently of one another, but can access Windows’ host filesystem, networking stack, etc. It’s also important to remember that WSL does not use VM technology, and only consumes the memory required to load and execute the Linux binaries that you choose to run!
This ability to run different Linux distros allows you to use the same tools, package manager/ecosystem, and environment that your production code will be running in. This results in less time wasted tracking down hard to find errors when it comes time to deploy your code.
This allows you to, for example, use Edge/Chrome/Firefox on Windows, to view a website hosted on Apache on Ubuntu, that talks to a REST service running on openSUSE … without having to punch holes through the firewall when testing locally, because all these processes run above the firewall, alongside one another!
Note: If you’ve previously installed WSL on Anniversary or Creators Update, your existing “legacy” Ubuntu instance will continue to work just fine, but it is considered deprecated. We recommend that you migrate your files off the legacy instance and replace it with a store-delivered instance, so that you receive the support of Canonical and Microsoft moving forward.
WSL no longer requires developer mode!
If you read through the installation guide above, the observant among you will already be throwing your hands in the air saying “but you forgot to point out step 2 – enable developer mode”
Well, in FCU, Developer Mode is no longer required to run WSL! This eliminates an extra step from the installation process outlined above, and prevents the need to permit side-loaded apps to run on your machine.
WSL Comes to Windows Server & Microsoft Azure VM’s!
As we originally outlined in our similarly titled blog post on this subject, WSL is coming to Windows Server and to Microsoft Azure Windows VM instances.
Using WSL, Windows Server administrators, devops engineers, developers, etc., will be able to run their favorite Linux tools, apps, and scripts, alongside their favorite Windows admin tools. This will make it easier than ever before to automate, control, manage, and deploy an ever broader portfolio of technologies & tools atop Windows Server.
Note that, just as on Windows 10, WSL is for running your favorite Linux distros & tools for local interactive use, not for hosting production Linux workloads. If you want to deploy your production Linux workloads on Windows Server, we strongly recommend hosting Linux VMs in Hyper-V and/or containers in Docker for Windows.
WSL now supports USB Serial comms
We heard from many of you, especially those who work with IoT/embedded/etc. devices that communicate via USB/serial, that WSL was unable to talk to serial comms ports.
So, in FCU, we added serial device support, as outlined in the original announcement post.
WSL supports mounting of USB storage devices and network shares
Another common ask from many WSL users was for WSL to support mounting of USB-attached storage devices, and network shares. In build 16176, USB and UNC paths (network shares) was added, and several improvements were added in the subsequent few builds.
It’s important to note that because WSL utilizes the NT filesystem IO infrastructure, it currently only supports mounting FAT/FAT32/NTFS formatted storage devices. If you would like us to consider *NIX filesystem support, please upvote and/or comment on the associated UserVoice ask.
Miscellaneous fixes and improvements
Along with the big-ticket improvements above, there were also many smaller fixes, improvements, many of which can be found in the WSL release notes for the builds from 16170 – 16288.
Some of these improvements include:
- Improved TCP socket options inc. IP_OPTIONS, IP_ADD_MEMBERSHIP, IP_MULTICAST, etc.
- /etc/hosts will now inherit entries from the Windows hosts file
- xattr related syscalls support
- Fixed several filesystem features and capabilities
- Improved PTRACE support
- Improved FUTEX support
- “chsh“ now works
- This enables you to use your favorite shell directly. (This feature was not available in legacy instance.)
- Shell startup file other than “.bashrc” will now execute.
Also, the following notable syscalls were added for the first time during the FCU cycle:
- getxattr, setxattr, listxattr, removexattr
Deprecating the name “Bash on Windows”
Originally, the name “Windows Subsystem for Linux” generally referred to the Windows kernel infrastructure that runs Linux binaries. We wanted to convey what this meant from and end-user-experience, so, we referred to the end-user feature as “Bash on Ubuntu on Windows”, or more simply “Bash on Windows”. While this naming-scheme has helped us convey at least the essence of what WSL delivers as a feature, “Bash on Windows” doesn’t really describe what WSL is and does, and doesn’t make sense now that more distros are coming aboard.
So, moving forward, we’ll no longer be using the feature name “Bash on [Ubuntu on] Windows”!
Instead, we’ll use “Windows Subsystem for Linux” (WSL) to refer to the Microsoft-side of the technology stack, including the kernel and Windows tools that enable Linux binaries to run on Windows. The distros will simply be known by their own names – Ubuntu, openSUSE, SUSE Linux Enterprise Server, etc.
So, in future, conversations will go something like: “Linux runs really well on Windows/WSL”, or “I run Ubuntu on WSL”, or “have you tried openSUSE on WSL”. We think you’ll agree this is simpler, cleaner, and requires FAR less talking and typing.
So, what next?
Many of you have taken advantage of the Windows Insider rapid-release mechanism to upgrade to newer Windows builds in order to run the latest features and improvements as early as possible. This was particularly valuable to WSL users because we were making rapid and dramatic improvements to WSL during the Creators Update and Fall Creators Update product cycles.
The WSL engineering team continue doing the same: We have a long list of improvements and new features lined up for future releases and have already begun work on several of them!
If you’re keen to continue to run the latest and greatest WSL bits, and keep the feedback coming to our WSL and Console issue repo’s: We depend on feedback from you, our amazing community, and use your asks and issues to help prioritize the features and fixes that we work on, so keep the feedback coming!
Sincerely, the WSL and Windows Console engineering teams.