Today at Microsoft’s Build developer conference, the Redmond company announced some major changes to the Windows Subsystem for Linux, as well as some improvements to Windows 10 command line with the Windows Terminal. Both expand the already robust ways to develop on Windows, and offer some fantastic features and additions.

Windows Subsystem for Linux has evolved dramatically since it was first introduced as a Bash shell back in the Windows 10 Anniversary Update in 2016. Windows Subsystem for Linux, or WSL, offered native support for Linux by translating Linux system calls into Windows APIs that could be executed by Windows itself, and the feature allowed developers that required Linux to install a distro of their choice and access its command line side by side with Windows.

While the translation layer added compatibility and ease of use, one area where it could stumble would be performance, so for Microsoft’s second iteration of WSL, Microsoft is adding a custom Linux kernel to Windows itself to handle to Linux APIs. It is doing this through virtualization, with Linux running in a lightweight Hyper-V Virtual Machine (VM) that is tightly integrated into Windows, which will allow for full system call compatibility because the Linux kernel will be responding to requests, rather than having them translated.

Although this is a VM, there will be no resources to configure, and launching a shell will only take a couple of seconds to get up and running. It’ll still be able to access the Windows file system to retrieve and modify files, just like WSL v1, but also provide the capabilities to run most Linux software, such as X-Server, Docker, and more, right in Windows. As a VM, it’ll have its own network card, although it’ll be set by default to be shared with the physical NIC in the host PC for now, although that may be changed prior to WSL v2 being formally released.

The Linux kernel itself will be a custom-compiled one for Windows based on 4.19, which is the current long-term stable branch, and kernel updates will be handled through Windows Update, so no user involvement will be required to keep the Linux system up to date by the end-user.

In addition to the added compatibility, the new virtualized Linux kernel brings some hefty performance increases for tasks that are heavy on system calls, with Microsoft seeing up to 20 times better performance with WSL v2 compared to v1 when unpacking a zipped tarball, and 2 to 5 tives better performance using git clone and other projects. Plus, you can still access and edit files with Windows utilities as well, and Microsoft has been adding support to the different end of line characters for Linux vs Windows in applications like Notepad.

If you use Windows Subsystem for Linux, these changes should be all good news. There will likely be some teething pains during the transition, but Microsoft is releasing this in June to the Windows Insider Program for feedback. That program hasn’t had a great reputation at finding bugs before release in the past, but it will allow people to get some hands-on time with the changes before they roll into production. Microsoft hasn’t officially stated what release this will be a part of, but it could be as early as this fall depending on how far along the team is and how the feedback goes.

Windows Terminal
POST A COMMENT

53 Comments

View All Comments

  • PeachNCream - Tuesday, May 7, 2019 - link

    Yup, we've found a live one here. I'm not interested in preaching about operating systems. As you're proving, they can be a bit of a religion which incites the usual hormone-fueled crusade emotions. I do think Linux has a few niches where it works out quite well, but its not for everyone (unless you've got an Android in your pocket which is another debate entirely, heh). However, if any single company can put the Linux kernel to good use and dress it up so that the end user can just click their icons, play video games, and veg out on Facebook, Microsoft would be it - at least in the PC space. We all know what happened to Windows on phones. Reply
  • FormerRedHead - Tuesday, May 7, 2019 - link

    I would take Oracle on Linux any day over Windows. WebLogic, Jboss, or WebSphere, too, for that matter. And PowerShell does not hold a candle to what one can do with bash. Reply
  • imaheadcase - Wednesday, May 8, 2019 - link

    Every windows user now hates change..you saw the huge blowback from simply changing to win 10 in the first place. Linux is and will always be more of a geek OS. Pretty evident by now. Reply
  • PeachNCream - Tuesday, May 7, 2019 - link

    You're going to blow a blood vessel in your brain being wrapped up that tightly over software. Reply
  • baka_toroi - Tuesday, May 7, 2019 - link

    You're right about that. I need to go live in the countryside before it gets to that point, using a single computer running nothing but FreeDOS. Reply
  • HStewart - Tuesday, May 7, 2019 - link

    I don't believe this mean that Windows is becoming Linux based OS, just that it allows Windows to Host Linux subsystem in it environment. One can run Linux Applications without dual booting Windows. Older version of Windows did this with OS/2 subsystem and where is OS/2 today. Reply
  • mooninite - Tuesday, May 7, 2019 - link

    Your analogy is wrong and also wildly out of date. IBM OS/2 was not open source. Not being driven by multiple players either. Windows did have a Unix subsystem at one point, too, and now it is all coming back.

    I don't understand the comments on this article. Windows fanboys (fanboys are still a thing?) are scared to hell about this... ? :-/
    Reply
  • Reflex - Tuesday, May 7, 2019 - link

    macOS is BSD based, not Linux. Reply
  • PeachNCream - Tuesday, May 7, 2019 - link

    Yes, but we are talking about branches of the same tree here. BSD is probably the weirdest branch of Unix (I suspect pot had something to do with it) with System V and Linux being arguably more closely aligned to one another, but there are still lots of shared principals and thinking. iOS as well as it's another OSX/BSD critter. Reply
  • Reflex - Tuesday, May 7, 2019 - link

    Um, no we aren't talking about branches of the same tree. Linux is a completely different design and architecture than true UNIX, of which BSD is a direct branch of. Linux was implemented from scratch as a POSIX compliant OS, it uses a monolithic kernel architecture and works on a different set of principles. There is often binary compatibility, but that is true of a lot of operating systems, for instance Windows NT and later has also been POSIX compliant and long had a full subsystem for POSIX applications (Unix apps could run on Windows).

    BSD and Linux are as different from each other as Windows and Linux are. And historically speaking, BSD is not the 'weird one' in the family.
    Reply

Log in

Don't have an account? Sign up now