wsl: Practical Guide for Australian Developers 2026

8 min read

When a Melbourne dev I know swapped their slow VM for wsl, their CI iteration time dropped from 20 minutes to under 5 — and that’s the practical hook: wsl often turns a clunky cross-platform setup into something you can actually iterate on during a workday. The latest chatter in Australian dev Slack channels and university forums shows people searching for “wsl” to speed up local development, try Linux-native tooling on Windows laptops, or run GPU-enabled workloads without dual-booting. This guide walks through exactly how to set up wsl, common pitfalls I see, quick wins for getting productive, and a short case study showing measurable gains.

Ad loading...

What is wsl and why it matters now

wsl (Windows Subsystem for Linux) is a compatibility layer that lets you run Linux userland on Windows. For many developers in Australia and beyond, it means using apt, bash, container runtimes and Linux-first tools without leaving the Windows desktop. Why the recent surge? Microsoft’s continued updates, smoother GUI app support and wider adoption in enterprise images make wsl an obvious choice when teams standardise on Linux tooling but company laptops run Windows.

Quick definition (40–60 words)

wsl is a Windows feature that provides a lightweight Linux environment, integrating with Windows files, networking and terminals. It removes the need for heavyweight virtual machines for most developer workflows and supports both wsl 1 and wsl 2, with wsl 2 using a real Linux kernel in a lightweight VM for better compatibility and performance.

Before you start: who should use wsl?

  • Developers who need Linux-native tools (Docker, systemd-based services in certain cases, language toolchains).
  • Students learning Linux or preparing assignments that expect a Linux environment.
  • Data scientists wanting to run Linux pip packages or experiment with small GPU workloads on Windows laptops.
  • Teams that need consistent dev environments across Windows and Linux machines.

Step-by-step: install wsl and choose settings (what actually works)

  1. Enable wsl and install a distro: Open an elevated PowerShell and run wsl –install. This installs wsl and Ubuntu by default on modern Windows versions. If you prefer another distro, run wsl –list –online then wsl –install -d <DistroName>.
  2. Pick wsl 2 for most cases: wsl 2 uses a real Linux kernel and gives better file system compatibility and Docker support. Convert existing distros with wsl –set-version <DistroName> 2.
  3. Install Windows Terminal: Use Windows Terminal from the Microsoft Store for tabs, profiles and a better experience. Configure a profile that opens your distro shell.
  4. File placement rule: Keep your project files in the Windows filesystem (e.g., C:Users) if you need to edit them with Windows editors, but run heavy Linux I/O inside the distro’s home (~) for performance-critical operations. The mistake I see most often is storing large repos on /mnt/c and running Linux builds there — that’s slow.
  5. Enable GPU compute if needed: For ML experiments, install NVIDIA drivers for WSL on Windows and the CUDA toolkit inside the distro (where supported). Check official guidance if you plan to use GPU acceleration.
  6. Set up Docker (if required): Use Docker Desktop’s WSL 2 backend or install podman inside your distro. For CI parity, prefer the Docker Desktop integration that exposes the daemon to your wsl distro.

Common pitfalls and how to avoid them

Here’s what trips people up and quick fixes:

  • Slow filesystem operations: Don’t run heavy builds on /mnt/* — clone and build inside the distro (e.g., ~/projects) and use an editor that supports remote WSL integration.
  • Port conflicts and networking: Windows and wsl share the host networking interface; if a Windows process holds a port, the wsl app can’t bind it. Use ss -ltnp in the distro and stop the Windows service holding the port.
  • GUI apps: If GUI support isn’t enabled, install wslg components or ensure your Windows build supports GUI via wslg. Some older Windows builds lack wslg.
  • Toolchain mismatches: Use distro-supplied packages or version managers (rbenv, pyenv, nvm) inside the distro to avoid conflicts with Windows versions.
  • Permissions surprises: Windows and Linux permissions differ. For git workflows, set core.fileMode and line ending handling explicitly to avoid noisy diffs.

Productivity tips: what I do daily with wsl

  • Use VS Code Remote – WSL extension to edit files inside the distro while keeping Windows UI comforts — this avoids cross-OS file slowness and keeps tooling consistent.
  • Run tests and linters inside wsl so CI pipelines match local behaviour.
  • Keep dotfiles in the distro and use a single script to bootstrap a new machine (dotfiles/bootstrap.sh).
  • Use a lightweight tmux session for long-running jobs and attach from Windows Terminal.

Case study: small Aussie team — before/after

Before: a two-person startup in Brisbane used Windows laptops and a shared Linux CI image. Onboarding meant installing VirtualBox, lots of RAM allocation and a 2–3 hour setup for dev environments. Builds were flaky due to OS differences.

After: they switched to wsl 2, standardized on Ubuntu 22.04 in wsl, and used Docker Desktop with the WSL backend. Onboarding dropped to 20 minutes (install wsl, clone repo, run bootstrap). CI pass rate improved because local runs matched CI much more closely. Iteration latency dropped by roughly 60% for feature branches.

Security and enterprise considerations

wsl runs within Windows security boundaries but you should still treat the distro like a separate Linux host: keep packages updated, audit services and limit exposure. For managed laptops, check company policy — some enterprise environments restrict wsl or require specific configuration. If your org needs compliance evidence, document distro versions and kernel patches.

When not to use wsl

  • If you need full systemd-based services that integrate at a kernel level — although workarounds exist, some complex system services are simpler on a native Linux machine.
  • Real-time OS work or kernel driver development — wsl abstracts the kernel and is unsuitable for kernel-mode development.
  • If you need consistent hardware passthrough beyond supported GPU compute features.

Resources and authoritative references

Start with the official docs and community pages for up-to-date installation commands and release notes:

Checklist: get productive with wsl in under an hour

  1. Enable wsl and install Ubuntu: wsl –install
  2. Update packages inside the distro: sudo apt update && sudo apt upgrade
  3. Install Windows Terminal and VS Code + Remote – WSL
  4. Clone your repo into ~/projects and run bootstrap scripts
  5. If using Docker, enable Docker Desktop WSL integration
  6. Set up SSH keys inside the distro and configure git user/email

Troubleshooting quick reference

If wsl fails to start: try wsl –update and wsl –shutdown. For networking issues, restart the LxssManager service in Windows or reboot. If a distro hangs after an upgrade, export, unregister and re-import the distro as a last resort (backup first).

FAQs

Can I run Docker containers in wsl? Yes — for the smoothest experience use Docker Desktop with WSL 2 backend or install podman inside your distro. Docker Desktop exposes the Docker daemon to wsl and integrates with Windows resources.

Is wsl good for machine learning workloads? It’s fine for development and small experiments. For GPU acceleration, ensure your GPU vendor supports WSL GPU drivers and follow vendor install docs. For heavy training, a native Linux machine or cloud instance is usually better.

How do I pick between wsl 1 and wsl 2? wsl 2 is recommended for compatibility and performance for most developers. Use wsl 1 only if you have a specific need or legacy constraint that benefits from its different filesystem semantics.

Final takeaway and next steps

wsl often solves the friction between Windows desktops and Linux-first development workflows. The practical move is to install wsl 2, put projects inside the distro, use VS Code Remote – WSL and standardise team scripts. If you’re in Australia and searching “wsl” now, try the one-hour checklist above — you’ll likely save hours each week after the initial setup.

Frequently Asked Questions

Open an elevated PowerShell and run wsl –install. If you need a specific distro, use wsl –list –online then wsl –install -d <DistroName>. Convert existing distros to wsl 2 with wsl –set-version <DistroName> 2.

For best performance, clone and build heavy projects inside the distro (e.g., ~/projects). Use /mnt/c for files you must share with Windows apps, but expect slower file I/O there.

Yes — vendors like NVIDIA offer WSL-compatible drivers. Install the Windows driver and then the CUDA toolkit inside the distro following vendor and Microsoft guidance. For heavy workloads, prefer a native Linux machine or cloud GPUs.