Recorded remotely over Teams for the Omaha Azure user group and posted unedited, this talk builds from terminal history to Hanselman's case that WSL 2 is not "just a VM" but a level of integration that "blurs the lines between operating systems". He ends by claiming that a Windows machine set up this way, even an old laptop, is "the best developer laptop". He works at Microsoft, which makes the tools he presents.
Console, terminal and shell. He separates the three: the shell (cmd, PowerShell, Git Bash, Cygwin) makes the strings, and the terminal paints them. The old console host is synchronous, so a dir /s runs only as fast as the screen accepts output and builds run fastest minimized. Mintty existed because of that. The open-source Windows Terminal renders with DirectX at around 500 frames a second, asynchronously, and any shell can run in it through the ConPTY pseudo-terminal interface.
Fake Linux and lied-to Linux. Cygwin is GNU user-space recompiled against Win32 with #ifdefs, so its ls calls Windows APIs. An attendee called it "syntactic sugar" and Hanselman adopted the phrase; his example is that you still cannot follow a Redis install guide with it. WSL 1 instead runs unchanged ELF binaries as pico processes, a lightweight process type invented because forking on Windows is expensive, and intercepts their Linux syscalls and redirects them to Windows. It breaks down on the file system: the Linux file system sits on NTFS, one syscall can become up to ten NTFS writes, access was about 10 times slower than native, and npm install could take 15–20 minutes. He calls WSL 1 obsolete but notes it needs no hypervisor, so it still serves older PCs without virtualization extensions.
WSL 2 as a utility VM. WSL 2 runs a real Linux kernel on the Windows hypervisor platform, which was split off from the paid Hyper-V product so that Windows 10 Home users, students with cheap laptops included, can run it. He calls getting that through the organisation "a huge win". Distros start in under a second, five ran within about half a gigabyte, less memory than Teams, and wsl.conf sets mounts, memory, processor limits or a custom kernel. Distros can be exported and imported as tar files; his example is a Microsoft colleague shipping a preconfigured IoT build environment that way.
Integration across the boundary. From Linux he launches notepad.exe (the .exe must be explicit, which he says prevents exploitation), pipes ls to clip.exe, and opens Linux folders in Explorer through a Plan 9 file server each distro runs. VS Code stays a Windows app while its extensions, such as the C# language service, run in a server inside Linux on a well-known port; he says other editors could copy the open protocol. Linux's localhost port 5000 is forwarded to Windows, so a breakpoint set in Windows debugs .NET Core running in Linux.
Docker, dev containers and Codespaces. Docker Desktop now runs on its own hidden WSL distro rather than a Hyper-V VM "on puppet strings", and his podcast site builds and runs its Selenium tests in Linux containers from either side. A dev container file lets a new hire open a Go project with no Go installed locally, and Visual Studio Codespaces moves the same setup to a cloud VM reachable from a browser or desktop VS Code. He adds that one person with free tools can now run CI/CD more maturely than many enterprises.
What was still coming. As of the August 2020 talk, Linux GUI support had been announced at Build with full support due that autumn, CUDA GPU access for TensorFlow was planned, and the WSL kernel was to move from Windows Update to Microsoft Update. His stated goal was cutting WSL setup from three or four steps and a reboot to one step and a reboot.