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
Don't Panic
Don't Panic — Windows Subsystem for Linux
Here is the whole idea in one sentence: Windows Subsystem for Linux (WSL) lets you run actual Linux distributions right next to your ordinary Windows programs, on the same machine, without picking a side. No dual-boot menu, no separate laptop, no remote server you SSH into just to run grep.
Before WSL, "I need Linux tools on Windows" meant one of three unpleasant choices: reboot into a different operating system, run a full virtual machine and pay for it in RAM and disk space, or tunnel into somebody else's Linux box over the network and hope the connection holds. WSL replaces all three for a large share of everyday development, scripting, and administration work, by putting a real Linux environment a few keystrokes away instead of a reboot away.
Three ideas carry the rest of the course. First, the layering: Windows is the host, WSL is the integration and lifecycle layer, and a distribution — Ubuntu, Debian, whichever you pick — is its own self-contained Linux user space with its own packages, users, and filesystem.
Second, there are two ways WSL can run a distribution. WSL 1 translates Linux system calls through Windows, while WSL 2 runs a genuine Linux kernel inside a small managed utility virtual machine. WSL 2 is the default, and for good reason, but it is a virtual machine, not a clever trick.
Third, where you put your files matters more than almost anything else here: keep a Linux-built project on the Linux side, keep a Windows-built project on the Windows side, and crossing that line costs you performance every time you do it.
Here is the part that catches people off guard: WSL 2 being "a real kernel in a VM" is not a free upgrade over WSL 1, it is a trade. That VM can hold onto memory it no longer needs — your machine can look like it is starving for RAM long after the Linux workload that used it has finished — and Windows will not take that memory back on its own. It is not a leak, it has a documented fix, but it surprises almost everyone the first time their machine gets sluggish for no visible reason.
Two more things worth carrying with you. Your Linux user account and your Windows account are genuinely separate, with separate permissions, so logging into one does not make you the other. And the two configuration scopes — one file inside Linux, one inside your Windows user profile — both need WSL restarted before a change takes effect, which trips up nearly everyone at least once before it becomes a reflex.
Start with the Cheatsheet if you want the WSL 1 versus WSL 2 decision made concrete, the Reference tab for the commands themselves, and the quiz once you are ready to check what stuck.
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
- https://dev.to/nomurasan/why-wsl2-is-slow-on-mntc-and-how-to-find-the-exact-operation-costing-you-time-40o7
Supports
- 9P protocol round-trip cost mechanism for /mnt/c access from WSL 2
- Order-of-magnitude benchmark creating many small files across the filesystem boundary
- https://devblogs.microsoft.com/commandline/memory-reclaim-in-the-windows-subsystem-for-linux-2/
Supports
- WSL 2 utility VM memory growth without automatic release to the host
- Memory reclaim mechanism, its idle-CPU compaction trigger, and the Linux page-cache limitation
