Preview Mode Links will not work in preview mode

Azure DevOps Podcast

Message from Jeffrey Palermo: Howdy.  Welcome to my podcast.  I hope it helps you ship software more quickly and more reliably. Through the topics and guests, I hope your life is made easier. Let me know what topics would be helpful for you.

Podcast sponsor: Clear Measure We are a software architecture company that empowers our client's development teams to be self-sufficient: moving fast, delivering quality, and running their systems with confidence.

Oct 7, 2019

On this week’s episode, Jeffrey is joined by Craig Loewen to discuss the Windows Subsystem for Linux! Craig is a Program Manager on the Windows Subsystem for Linux team. He started his journey in University by studying as a Mechatronics Engineer. Really loving all things software, Craig worked at several different companies, but eventually found his way to Microsoft as an intern. Not long after, he got hired on full-time! He’s been with the WLS team now for about a year.


Today, Jeffrey and Craig Loewen discuss the ins and outs of WLS. They talk about how the codebase for WSL is organized, what it actually looks like to build WSL, some of the exciting highlights and changes to version 2 of WSL, Craig’s plans for the UI in WSL 2, and much, much more! Tune in to get the full scoop!


Topics of Discussion:

[:45] Be sure to visit AzureDevOps.Show for past episodes and show notes!

[:52] Jeffrey gives some announcements and lets you know where to get a hold of his book, .NET DevOps for Azure.

[3:47] About today’s guest, Craig Loewen.

[3:55] Jeffrey welcomes Craig to the show!

[4:12] How did Craig end up in his current role and what has his journey been like at Microsoft and prior to Microsoft?

[4:58] Craig gives a quick overview for listeners who have never used the Windows Subsystem for Linux.

[7:18] Where is the codebase for WSL organized?

[7:53] Is it one massive Git repository or is it a series of repositories?

[8:30] What language/s is it written in?

[8:44] Is it a visual studio solution?

[9:28] What does it mean to build WSL? What does it look like to actually change some code and produce a new version of the build that could be tried out by somebody?

[10:26] What are some of the key meaningful things that they have to have in their part of the build?

[12:16] Craig highlights some of the exciting changes in version 2 of WSL.

[14:46] Does running on a virtual machine open up some additional capabilities?

[15:22] A word from Azure DevOps Podcast’s sponsor: Clear Measure.

[15:50] Is it an overstatement to say that when version 2 of WSL comes out, and you’re running Windows 10, you’d be running Windows and Linux?

[18:00] What is WSL’s build server?

[18:55] How often is WSL running this massive build?

[19:43] What goes into Craig’s private build script?

[20:37] When Craig says ‘run it on my box,’ what does that entail?

[21:00] Craig speaks about the automatic testing they have for the subsystem.

[22:39] Is it a manual process or automated integration when they pull external issues from their GitHub into Azure DevOps?

[23:37] How do they get information, telemetry, and logs about how WSL is going out there in the wild?

[24:40] Does Craig know how many people are actively using WSL out in the world?

[25:14] Jeffrey and Craig speak more about how WSL version 2 is going completely VM-based and what that means.

[27:32] If WSL 2 is going to go to Windows server, does that mean that in Azure when someone spins up a Windows server and they want to put multiple low-volume applications on a particular VM that want to target either Linux or Windows that it doesn’t matter because both kernels are native?

[29:36] What are Craig’s plans for the UI for WSL 2?

[30:55] Craig’s recommendations for those who want to learn more!


Mentioned in this Episode:

Azure DevOps

Clear Measure (Sponsor)

.NET DevOps for Azure, by Jeffrey Palermo — Visit to get your hands on two free books to give away at conferences or events!

Jeffrey’s .NET DevOps Bootcamp (Oct. 28-30th, in Lakeway, TX)

Microsoft Ignite 2019

Jeffrey Palermo’s Youtube

Jeffrey Palermo’s Twitter — Follow to stay informed about future events!

Craig Lowen’s Website

Craig Loewen’s LinkedIn

Craig Loewen’s Twitter @CraigALoewen

Azure DevOps Podcast: “Oren Eini on DevOps Success at RavenDB (Part 1) — Episode 55”

Azure DevOps Podcast: “Oren Eini on DevOps Success at RavenDB (Part 2) — Episode 56”


Windows Subsystem for Linux Documentation (

Windows Command Line (


Want to Learn More?

Visit AzureDevOps.Show for show notes and additional episodes.