Windows Subsystem for Linux
Windows Subsystem for Linux (WSL) runs Linux distributions and their command-line or graphical applications alongside Windows. It gives Windows users a Linux filesystem and tool environment without a separately managed traditional virtual machine or a dual-boot setup.
itWindows and Microsoft infrastructure | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Windows Subsystem for Linux
Windows Subsystem for Linux (WSL) runs Linux distributions beside Windows applications on one Windows machine. A distribution supplies the Linux user space: its shell, package manager, libraries, tools, services, and filesystem. Windows supplies the WSL host integration and, with WSL 2, manages a utility virtual machine containing a Microsoft-built Linux kernel.
WSL is useful when Windows remains the desktop operating system but development, automation, administration, or data tools expect Linux. It removes the need to maintain a conventional general-purpose virtual machine for many local workflows. It does not turn Windows into Linux, and it does not reproduce a remote production host in every detail.
Architecture and execution flow
The Windows-side wsl.exe command installs, starts, selects, updates, exports, imports, and stops distributions. Starting a distribution creates or resumes its Linux environment, then launches the requested Linux process. The process uses the distribution's packages and filesystem while WSL connects terminal input, files, networking, graphics, and process invocation across the Windows–Linux boundary.
WSL supports two architectures:
- WSL 1 translates Linux system calls through a Windows compatibility layer. It has no managed Linux virtual machine and provides fast access to files stored on Windows, but it does not provide full Linux system-call compatibility.
- WSL 2 runs distributions as isolated containers inside a managed utility virtual machine with a real Linux kernel. It provides full system-call compatibility, supports systemd and Linux GUI applications, and is the default for new distributions.
The architecture is chosen per distribution. WSL 1 and WSL 2 distributions can coexist, and a distribution can be converted between them. WSL 2 is the usual choice. WSL 1 remains relevant when a workflow must repeatedly access project files stored on the Windows filesystem or when virtualization constraints prevent WSL 2.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://learn.microsoft.com/en-us/windows/wsl/
Supports
- Official WSL documentation map and product homepage
- Installation, environment setup, configuration, and troubleshooting progression
- https://learn.microsoft.com/en-us/windows/wsl/about
Supports
- WSL definition, use cases, Linux distributions, Windows integration, and architecture overview
- https://learn.microsoft.com/en-us/windows/wsl/install
Supports
- Supported installation flow and default Ubuntu distribution
- Distribution selection, custom import, user setup, and version inspection
- https://learn.microsoft.com/en-us/windows/wsl/compare-versions
Supports
- WSL 1 and WSL 2 architecture, compatibility, filesystem, virtualization, systemd, and networking comparison
- WSL 2 default status and documented WSL 1 exceptions
- Store servicing model
- https://learn.microsoft.com/en-us/windows/wsl/basic-commands
Supports
- Distribution listing, targeting, defaults, version conversion, status, update, export, import, termination, shutdown, and unregister behavior
- https://learn.microsoft.com/en-us/windows/wsl/filesystems
Supports
- Windows and Linux filesystem access paths
- Project placement guidance and cross-filesystem performance
- Supported access to Linux files from Windows
- https://learn.microsoft.com/en-us/windows/wsl/networking
Supports
- Localhost, host addressing, NAT, mirrored networking, DNS tunneling, proxy, firewall, IPv6, VPN, multicast, and LAN behavior
- https://learn.microsoft.com/en-us/windows/wsl/wsl-config
Supports
- Per-distribution wsl.conf and global .wslconfig scopes
- Automount, interop, user, resource, swap, kernel, and networking settings
- Restart requirements for configuration changes
- https://learn.microsoft.com/en-us/windows/wsl/systemd
Supports
- systemd enablement, verification, architecture, WSLg compatibility, shutdown, and instance-lifecycle limits
- https://learn.microsoft.com/en-us/windows/wsl/troubleshooting
Supports
- Installation, virtualization, networking, firewall, permissions, filesystem, and Windows-command interoperability diagnosis
- https://learn.microsoft.com/en-us/windows/wsl/faq
Supports
- WSL definition, workloads, resource comparison with traditional VMs, integration, and boundaries
- https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps
Supports
- Linux GUI application support through WSL 2 and WSLg
- Graphics-driver and desktop integration requirements
- https://learn.microsoft.com/en-us/windows/wsl/tutorials/gpu-compute
Supports
- Supported GPU compute workflows inside WSL 2
- https://code.visualstudio.com/docs/remote/wsl
Supports
- VS Code interface on Windows with server, extensions, terminals, and tools inside WSL
- WSL project opening and remote development workflow
- https://docs.docker.com/desktop/features/wsl/
Supports
- Docker Desktop WSL 2 backend, distribution integration, and project storage guidance
- https://github.com/sindresorhus/awesome
Supports
- Required discovery starting point for topic-specific awesome lists
- https://github.com/sirredbeard/awesome-wsl
Supports
- Discovery of WSL Distro Manager, wsl-vpnkit, Setup WSL, and Tabby in the WSL ecosystem
- https://github.com/bostrot/wsl2-distro-manager
Supports
- Graphical install, uninstall, update, backup, restore, configuration, launch, and scripted action features
- GPL-3.0 licensing
- https://github.com/sakai135/wsl-vpnkit
Supports
- WSL 2 connectivity workaround for virtual private network interference
- https://github.com/marketplace/actions/setup-wsl
Supports
- WSL distribution setup in Windows-based GitHub Actions jobs
- https://tabby.sh/
Supports
- Terminal profiles for local shells and WSL environments
- https://ubuntu.com/desktop/wsl
Supports
- Ubuntu as a WSL distribution and Canonical's WSL integration
- https://wiki.debian.org/InstallingDebianOn/Microsoft/Windows/SubsystemForLinux
Supports
- Debian installation and operation as a WSL distribution
- https://www.kali.org/docs/wsl/wsl-preparations/
Supports
- Kali Linux preparation and use under WSL
- https://en.opensuse.org/openSUSE:WSL
Supports
- openSUSE distributions and setup under WSL
- https://learn.microsoft.com/en-us/windows/terminal/
Supports
- Windows Terminal profiles, tabs, shells, open-source status, and WSL integration
- https://devblogs.microsoft.com/commandline/windows-command-line-the-evolution-of-the-windows-command-line/
Supports
- WSL team formation in 2014 and Build 2016 announcement
- https://devblogs.microsoft.com/commandline/whats-new-in-wsl-in-windows-10-fall-creators-update/
Supports
- Early beta in Windows 10 Anniversary Update
- Supported feature status, Store distributions, and multiple distributions in October 2017
- https://devblogs.microsoft.com/commandline/automatically-configuring-wsl/
Supports
- wsl.conf introduction in Insider build 17093 during February 2018
- https://devblogs.microsoft.com/commandline/announcing-wsl-2/
Supports
- May 2019 WSL 2 announcement, real Linux kernel, utility VM, compatibility, and filesystem goals
- https://devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux-build-2020-summary/
Supports
- WSL 2 availability in Windows 10 May 2020 Update
- Kernel-based architecture and GPU compute direction
- https://devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-september-2020/
Supports
- 2020 wsl --install distribution setup and wsl --mount previews
- https://devblogs.microsoft.com/commandline/the-initial-preview-of-gui-app-support-is-now-available-for-the-windows-subsystem-for-linux-2/
Supports
- April 2021 WSLg preview and managed GUI system distribution
- https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/
Supports
- September 2022 systemd availability and PID 1 architecture
- https://devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux-in-the-microsoft-store-is-now-generally-available-on-windows-10-and-11/
Supports
- November 2022 Store package general availability and default servicing path
- https://devblogs.microsoft.com/commandline/windows-subsystem-for-linux-september-2023-update/
Supports
- September 2023 mirrored networking, DNS tunneling, proxy, firewall, memory, and sparse-disk previews
- https://blogs.windows.com/windowsdeveloper/2025/05/19/the-windows-subsystem-for-linux-is-now-open-source/
Supports
- May 2025 WSL open-source release and component boundaries
- Historical architecture summary from WSL 1 through WSL 2
