WSL Team Blog

blogs.msdn.microsoft.com/wsl · Company blog · on HN since 2016

Microsoft's team blog on the Windows Subsystem for Linux, explaining its architecture, syscall translation, file system, and interop.

What HN saysCommenters cite it to explain how WSL1 works, including pico processes and the file system layer, and why it is not a real VM.
44HN people shared it
37linked it in comments
20stories submitted
1.2Kstory points
7 years agolast shared
2016people per year2026

Most-shared posts

  1. 1
    Windows Subsystem for Linux Architectural Overview
    14 people · 197 points · first shared 2016 · 40 comments on HN
  2. 2
    WSL File System Support (2016)
    10 people · 89 points · first shared 2016 · 26 comments on HN
  3. 3
    Pico Process Overview – Linux binaries on Windows
    10 people · 88 points · first shared 2016 · 23 comments on HN
  4. 4
    How the Windows Subsystem for Linux Redirects Syscalls
    4 people · 360 points · first shared 2016 · 266 comments on HN
  5. 5
  6. 6
  7. 7
  8. 8
    Serial Support on the Windows Subsystem for Linux
    3 people · 1 points · first shared 2017 · discussion on HN
  9. 9
    Homepage
    3 people · first shared 2016
  10. 10
    Testing the Windows Subsystem for Linux
    2 people · 200 points · first shared 2017 · 135 comments on HN
  11. 11
    Wsl-Antivirus-and-Firewall-Compatibility
    1 people · 2 points · first shared 2019 · discussion on HN

What HN people wrote when they linked it

pif · 2016-12-13
> Windows is the dominant desktop OS So what? Is desktop computing all that matters? Networking, scientific computing, mobile telephone, don't they matter? Unix was never meant for looking magic to clueless users; it was meant for programmers, i.e. for people who use the computer and not just some programs written by other people. And, in its realm, it has been brilliant! Not perfect, but very good! By the way, here's a link to learn something more: https://blogs.msdn.microsoft.com/wsl/
mojoe · 2016-08-06
There's a video at the bottom of a blog post that was linked to from this article that does a pretty great job of explaining the subsystem for Linux: https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-…
dbgllm · 2016-07-15
You mention a target as compliance or certification, but I don't think this is a direct concern for the WSL. They want to support specific use-cases, at least at first. --- "Moving forward we will be investigating new areas of interest while continuing to support the following scenarios: + GNU command line tools such as grep, sed, and awk + File system and symlink support within the WSL environment + Ability to run apt / apt-get for installs, updates, and package testing + Basic functionality for languages such as NodeJS/npm, Python, Perl + Command line tools such as Vim, Emacs, Git, and SSH" https://blogs.msdn.microsoft.com/wsl/2016/07/08/bash-on-ubuntu-on-wind…
saurik · 2019-05-06
It isn't the "NT kernel either way", as you are going through the filesystem translation layer; AFAIK it is implemented as a subsystem, so you are accessing the kernel through an entirely disjoint mechanism. So like, Microsoft may have fixed this recently, but WSL processes were essentially stuck inside of a filesystem sandbox that uses some inane mechanism to access files via mountpoints that fails to correctly translate the few flags that are supportable by the underlying Windows filesystem, so if you try to do basic things like use WSL's copy of git to manage a git repository stored outside of the WSL sandbox, it just doesn't work correctly. On the flip side, you also can't run a native Windows process whose binary is sitting inside of the sandbox, as native Windows processes do not have direct access to WSL files. Checking, they seem to have finally added the ability to mount new paths, so that's helpful (if you have network shares or removable media like USB keys, these were previously not accessible via WSL). The great thing about cygwin and MinGW is that, by and large, it _is_ "just the NT kernel", with nothing more than a userland library sitting between the process and the same kernel interface used by any other Windows application, so tons of stuff "just works" that WSL is having to slowly reimplement. (FWIW, it could be that Microsoft has fixed some of these filesystem showstoppers since I last tried to seriously use WSL; if so, that's exciting, but it doesn't…
rolph · 2019-06-29
this just adds to the fun i hope the hole is plugged :-/ https://white-hackers.blogspot.com/ Microsoft has already taken steps that should assist the security vendors to deal with the new security considerations presented by WSL, including a Pico APIsthat can be used by AV companies in order to monitor these types of processes. https://blogs.msdn.microsoft.com/wsl/2016/11/01/wsl-antivirus-and-fire…
signal11 · 2019-06-29
V1 of WSL (which isn’t going to go away IIRC) was essentially an iteration/improvement of the subsystem model, but with new things like picoprocesses. This article[1] has a good overview of the design goals, which mainly was to let unmodified binaries run. [1] https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-…
intea · 2019-04-10
localhostdotdev · 2019-04-10
"every other system has a feature except us, and we are not going to add it (because reasons) even if it's very widely used" also: > When a fork syscall is made on WSL, lxss.sys does some of the initial work to prepare for copying the process. It then calls internal NT APIs to create the process with the correct semantics and create a thread in the process with an identical register context. Finally, it does some additional work to complete copying the process and resumes the new process so it can begin executing. https://blogs.msdn.microsoft.com/wsl/2016/06/08/wsl-system-calls/
mehrdadn · 2019-01-22
WSL uses them for one (so good luck backing up WSL installations) https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-suppor… Other stuff does too, e.g. https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/kernel-e… Those are user-level APIs as well, though usually called via NtQueryEaFile and NtSetEaFile. And (part of) my complaint is that DISM's /EA flag is broken.
phs318u · 2018-10-29
Correct. It's an interesting architecture, if you're interested in reading more: https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-…
locacorten · 2018-10-24
Nice job. I'm a little skeptical though -- I think the devil is in the details. It's a lot of work to make a highly reliable backup program. As a Windows user, here's a list of questions I'd ask: 1. Does Relica work with OneDrive on-demand files? [1] 2. Does Relica work with WSL files? [2] Supporting all these corner cases on Windows, Mac, and Linux will be a TON of work. [1]: https://support.office.com/en-us/article/learn-about-onedrive-files-on… [2]: https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-suppor…
exikyut · 2018-06-04
I think MS is trying to both support and not-support WSL, in the sense of building it out enough to support their internal agenda, but not where complex SLAs are needed. So, COM port access... I don't see that being hard; I envision it as boring API-wiring, since RS232 has been standard since before Windows and Linux existed, so it's likely the code's generally similar. But in terms of high-level support, RS232 is primarily industrial-class, with a long tail of developers and workstation uses trailing after it. Industrial immediately means complex SLAs and - nooooo - industry certifications and the like. I don't think MS wants to invest that much into WSL. With this said, a bit of poking around found https://blogs.msdn.microsoft.com/wsl/2017/04/14/serial-support-on-the-… from last year. Are you on Insider Build #16176 or later?
Const-me · 2018-01-30
> if they spawned a minimal VM for just the game They don’t even need a full-blown VM, windows 10 has pico processes. That’s how windows subsystem for Linux works: https://blogs.msdn.microsoft.com/wsl/2016/05/23/pico-process-overview/
jongalloway2 · 2017-08-08
There's some interesting technical background on the WSL blog, e.g. https://blogs.msdn.microsoft.com/wsl/2016/05/23/pico-process-overview/
notum · 2017-05-12
WSL (Windows Subsystem for Linux) isn't virtualized, as the article states. https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-… It's aim is to run Linux binaries natively. The degree of it's usefulness, issues and filesystem interoperability was discussed before so won't get into that.
ghshephard · 2017-04-19
See: https://blogs.msdn.microsoft.com/wsl/2017/04/11/testing-the-windows-su… In particular, they run Nginx 1.4.6 with 100% test coverage and postgresql-9.5.3 with 100% test coverage. Oddly (very), they have a few projects, Cassandra, Coffescript that show better test pass rates with WSL than Native Ubuntu.
hermitdev · 2017-04-18
They did recently add support for standard serial devices[1]. I'm not sure if this support extends to USB or what any such timeline looks like. [1] https://blogs.msdn.microsoft.com/wsl/2017/04/14/serial-support-on-the-…
jackhammons · 2017-01-07
WSL PM here. No virtualization software is required to use Bash on Windows. https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-…
ch_123 · 2017-01-05
Fork was implemented in the NT kernel for WSL - https://blogs.msdn.microsoft.com/wsl/2016/05/23/pico-process-overview/
AsyncAwait · 2016-12-18
I think he already did a while ago[1], [2], [3], [4] etc, but am sure this is a good excuse to open another one. :-) [1] - https://code.visualstudio.com [2] - https://github.com/PowerShell/PowerShell [3] - https://www.microsoft.com/net/core#linuxfedora [4] - https://blogs.msdn.microsoft.com/wsl/
jklehm · 2016-12-10
To some extent on the SUA.[0] I'm curious to see someone write up an attempt with the WSL.[1] [0] https://wiki.winehq.org/Cygwin_and_More#Psst..._Even_Microsoft_Does_UN… [1] https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-…
wvenable · 2016-11-18
That quote comes from here: https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-… But I suspect they specifically wouldn't mention it because it's an implementation detail people aren't supposed to know about or look into. The problem might have been more widespread had they actually said "Don't change anything in this specific hard to find hidden/system protected folder"
mastazi · 2016-11-17
Windows 10, since Anniversary Update, has a new feature (not enabled by default) where you can have an entire (Ubuntu-based) Linux user space running natively (no VM) on your Windows machine, it's called Windows Subsystem for Linux: https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-…
benaadams · 2016-10-31
You can even pipe between Windows and Unix commands on Windows these days https://blogs.msdn.microsoft.com/wsl/2016/10/19/windows-and-ubuntu-int…
contextfree · 2016-10-07
In this case they shipped. The Windows Subsystem for Linux is based on the picoprocess design that originated with Drawbridge. https://blogs.msdn.microsoft.com/wsl/2016/05/23/pico-process-overview/
ericfrederich · 2016-08-06
One of the videos I watched on their blog they mentioned this ability has been here since NT. They said something like "we just brushed the dust off of it and it worked". https://blogs.msdn.microsoft.com/wsl/
joewood1972 · 2016-07-15
Sure you can share files, it's works OK with some caveats. More in the overview under DriveFs: https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close