What is WSL?
Linux on Windows—without dual boot or a heavy VM.
Windows Subsystem for Linux (WSL) is Microsoft’s platform for running Linux distributions directly on Windows. It’s a go-to setup for development, DevOps (development and operations), cloud tooling, automation, and—on WSL 2—Linux GUI apps that feel native on the Windows desktop.
Last updated: 2026-02
Jump to: WSL in one minute • WSL 1 vs WSL 2 • GUI apps • systemd • Install/update • Best distro for you
Quick start (5 minutes)
If you came here to do the thing:
- Install WSL (PowerShell as Admin):
wsl --install - Update WSL:
wsl --update - Pick a distro:
wsl --list --online - Install one (example):
wsl --install -d Ubuntu
If you want a Debian-based distro tuned for WSL productivity and polished onboarding, see Pengwin (and for managed baselines, Pengwin Enterprise).
WSL in one minute
WSL is a Microsoft feature that enables Linux workloads on Windows:
- Linux terminal tools (git, OpenSSH, curl, compilers, language runtimes, package managers)
- Linux file system with fast performance on WSL 2
- Windows + Linux interop (launch Windows .exe from Linux, access Windows files, share clipboard)
- Linux GUI apps on WSL 2 via WSLg (X11/Wayland)
The 30-second definition
WSL is a Microsoft feature that enables Linux workloads on Windows:
- Linux terminal tools (git, OpenSSH, curl, compilers, language runtimes, package managers)
- Linux file system with fast performance on WSL 2
- Windows + Linux interop (launch Windows .exe from Linux, access Windows files, share clipboard)
- Linux GUI apps on WSL 2 via WSLg (X11/Wayland)
WSL 1 vs WSL 2 (what matters today)
WSL has two architectures you can choose per distro. Most users should choose WSL 2, but WSL 1 can still be useful.
| Capability | WSL 1 | WSL 2 (recommended) |
|---|---|---|
| Linux compatibility | Good, but not complete | Full Linux kernel (best compatibility) |
| Startup & overhead | Very lightweight | Lightweight utility VM |
| Best performance location | Often better when working directly in /mnt/c projects |
Best when projects live inside the Linux file system (your home directory) |
| Linux GUI apps | Needs external X server (VcXsrv/X410) | WSLg integrated (X11/Wayland) |
| systemd | Not supported in practice | Supported |
| Containers | Limited / depends on tooling | Best experience (Docker & Linux container workflows) |
In practice: if you’re doing modern development, containers, or tooling that expects “real Linux,” WSL 2 is the default choice.
Can WSL run Linux GUI apps?
(Yes—and this is where WSL feels "native" to many people.) Yes—on WSL 2. (Prerequisite: Windows 11 or Windows 10 Build 19044+ (21H2) and newer for WSLg.)
With WSLg, many Linux GUI apps run in a fully integrated desktop experience:
- Launch from the Windows Start menu
- Pin to the taskbar
- Use Alt+Tab across Windows and Linux apps
- Copy/paste between Windows and Linux
- Hardware-accelerated graphics via vGPU drivers (OpenGL acceleration)
If you’re on WSL 1, GUI apps typically require an external X server (e.g., VcXsrv / X410). With Pengwin, this becomes a matter of clicks: pengwin-setup can install and configure the X server integration for you, and it can also install a full Xfce4 desktop environment with Windows Start menu entries.
Best distro for you
WSL is the platform; your distro is the day-to-day developer experience.
- Want a polished Debian experience on WSL? Use Pengwin (optimized defaults, onboarding via pengwin-setup, strong Windows Terminal integration).
- Need an enterprise-ready baseline? Use Pengwin Enterprise for a more controlled, supportable environment.
- Prefer Fedora workflows? Use Fedora Remix for WSL.
- Need IT governance and standardized deployment? Use Raft WSL Enterprise for Intune-based management.
Does WSL support systemd?
Yes—on WSL 2.
systemd is the standard init/service manager used by most modern Linux distributions. Enabling systemd in WSL makes many workflows feel much closer to a native Linux machine (services, background daemons, and tooling that expects systemd).
- Some distros ship with systemd enabled by default on WSL.
- Others can enable it via distro configuration (e.g.,
/etc/wsl.conf).
Networking (what changed recently)
WSL 2 traditionally used a NAT (Network Address Translation) setup. This still works well for most developers:
- If a server runs inside WSL (Node, Flask, PostgreSQL, etc.), Windows can usually reach it via localhost.
For more advanced scenarios, newer WSL versions support additional networking modes, including mirrored networking (which improves host↔WSL connectivity and can reduce friction in enterprise setups).
File access and performance (avoid the common trap)
This is the #1 issue that makes people think WSL is “slow.” If you only take one tip from this page, take this one. WSL provides seamless access to files in both directions:
- Windows drives mount under
/mnt/c,/mnt/d, etc. - Windows can access Linux files via
\\wsl$\paths
Performance tip: Heavy build workloads (npm/yarn installs, compiles, large repos) usually perform best when the project lives inside the Linux file system (your WSL home directory), not under /mnt/c.
What is WSL good for?
WSL is ideal for:
- Software development (Linux toolchains, compilers, package managers)
- DevOps and automation (ssh, Ansible, Terraform, Kubernetes tools, scripting)
- Cloud tooling (Azure/AWS/GCP CLIs)
- Data science / AI (Python stacks, CLI-first workflows)
- Cross-platform builds and CI parity on Windows developer machines
What is WSL not ideal for?
WSL is powerful, but it is not identical to running Linux on bare metal. It may not be the best fit for:
- Kernel development or workflows requiring custom kernel modules (beyond what WSL exposes)
- Direct access to specialized hardware (some peripherals require extra plumbing)
- Always-on production servers with strict SLAs (WSL is optimized for developer workflows)
- Edge-case networking or security constraints that require full control of the host network stack
How to install or update WSL
The simplest path on modern Windows is:
- Open PowerShell (Admin)
- Run:
wsl --install
To update WSL later:
wsl --update
To check your WSL version:
wsl --version
To list available distros:
wsl --list --online
Where Whitewater Foundry fits
WSL is the platform. A Linux distribution is your day-to-day environment.
Whitewater Foundry has been building and shipping WSL-first Linux distributions and tooling since 2018, with a focus on making Linux on Windows reliable for individual developers and scalable for teams.
Whitewater Foundry ships WSL-focused distros and tooling for teams:
- Pengwin — Debian-based distro tuned for WSL productivity (CLI + GUI workflows), including click-based GUI setup via pengwin-setup—even on WSL 1—and optional full Xfce4 desktop environment installation.
- Pengwin Enterprise — an enterprise-ready WSL distribution for organizations that want a more controlled, supportable baseline and enterprise-friendly workflows.
- Fedora Remix for WSL — Fedora experience on WSL.
- Raft WSL Enterprise — enterprise distribution management for Intune-based deployment and governance.
If you want a polished, WSL-first Linux experience with strong onboarding and Windows integration, start with Pengwin. If your priority is enterprise standardization and a managed baseline, consider Pengwin Enterprise or Raft WSL Enterprise.
FAQ (fast answers)
Is WSL a full virtual machine? WSL 2 uses a lightweight utility VM under the hood, but it’s managed by WSL and feels integrated like an OS feature.
Can I use Docker? Yes. Most developers get the best experience with Docker workflows on WSL 2.
Where should my project files live?
For best performance on WSL 2, keep active repos inside the Linux file system (your WSL home directory), not under /mnt/c.
Do GUI apps work on Windows 10 too? Yes—WSLg (Linux GUI apps integrated into Windows) works on WSL 2 on Windows 11 and on Windows 10 Build 19044+ (21H2) and newer, using the up-to-date WSL (Store) experience. On older Windows 10 builds or on WSL 1, you typically use an external X server.
What’s the easiest way to get GUI apps on WSL 1?
With Pengwin, GUI setup on WSL 1 is a matter of clicks via pengwin-setup (VcXsrv/X410 integration), and you can also install a full Xfce4 desktop environment.
Learn more
- Microsoft Learn: WSL documentation
- Microsoft Learn: Install WSL
- Microsoft Learn: Run Linux GUI apps with WSLg
- Microsoft Learn: Use systemd with WSL
- Microsoft Learn: WSL networking (incl. mirrored mode)
- Microsoft Learn: Advanced WSL settings (.wslconfig / wsl.conf)
- Microsoft Learn: Troubleshooting WSL
- Community: WSL on GitHub (issues & feedback)
- Community: WSLg project (GUI integration)
- Community: wsl.dev
Whitewater Foundry resources:

