Fundamentals 11 min read

Why WSL Never ‘Boots’: 7 Core Differences Between WSL and Standard Ubuntu Startup

The article explains how standard Ubuntu boots through BIOS, GRUB, kernel and systemd, then contrasts this with WSL 1’s syscall translation layer and WSL 2’s lightweight VM, detailing seven fundamental differences—including trigger, firmware, init process, lifecycle, UI, networking and file system—highlighting why WSL starts in seconds.

Ubuntu
Ubuntu
Ubuntu
Why WSL Never ‘Boots’: 7 Core Differences Between WSL and Standard Ubuntu Startup

Standard Ubuntu Boot Process

On a physical machine or a VM, Ubuntu follows the conventional boot sequence: BIOS/UEFI firmware performs POST, the GRUB bootloader loads the Linux kernel and initramfs, the kernel (PID 0) mounts the real root filesystem, systemd (PID 1) starts services in parallel according to the selected .target, and finally a login manager or shell is presented.

BIOS / UEFI firmware
   ↓ (POST hardware self‑test)
Bootloader (GRUB)
   ↓ (load kernel + initramfs)
Linux kernel start (PID 0)
   ↓ (mount real root filesystem)
init system (systemd, PID 1)
   ↓ (parallel start of services by .target)
Login manager / display manager → desktop or shell

The process can be divided into four stages: firmware, bootloader, kernel, and user‑space (systemd).

Firmware stage : POST and locate boot device.

Bootloader stage : GRUB loads kernel and initramfs.

Kernel stage : Kernel takes over, mounts the real root partition, and hands control to init.

User‑space stage : systemd (PID 1) launches dozens of services in parallel and finally presents a login prompt or shell.

How WSL Starts

WSL does not have a traditional “boot” action. You do not “start WSL”; you run a Windows program such as wsl.exe, Windows Terminal’s Ubuntu tab, or the Start‑menu shortcut. If the distribution is not already running, Windows launches it on demand.

WSL 1 and WSL 2 differ in their startup mechanisms.

WSL 1

WSL 1 runs on top of the Windows NT kernel and translates Linux system calls to Windows calls in real time. There is no Linux kernel to start, so the translation layer connects Bash and other processes immediately. It is fast but limited in compatibility for kernel features.

WSL 2

WSL 2 includes a real Linux kernel (custom‑compiled by Microsoft and packaged in the kernel file) that runs inside a lightweight utility VM based on Hyper‑V. The kernel image is pre‑built, so BIOS, GRUB and initramfs are skipped.

The actual initialization work is performed by Microsoft’s /init binary, not by systemd.

⚠️ /init is a Microsoft‑provided binary, not systemd. It mounts filesystems, configures networking, performs UID mapping, and then hands control to the default shell (or systemd if you enable it).

Seven Core Differences Between Standard Ubuntu and WSL 2

Trigger : Power‑on for a physical machine; running wsl (on‑demand) for WSL.

Firmware / Bootloader : BIOS + GRUB for Ubuntu; completely skipped for WSL.

Linux kernel : Provided by the distribution (e.g., 7.0) for Ubuntu; Microsoft‑custom kernel packaged inside WSL for WSL 2.

Init process : systemd (PID 1) for Ubuntu; Microsoft /init for WSL (systemd must be enabled manually).

Lifecycle : Runs continuously from power‑on until shutdown; WSL idles when no windows are open and terminates only after wsl --shutdown.

Login / Display : Login manager and graphical session for Ubuntu; direct shell prompt for WSL, with GUI support via WSLg.

Network / Filesystem : Real network interface and independent ext4 for Ubuntu; NAT‑based virtual network (or optional mirrored mode) and Windows drive mounts ( /mnt/c, /mnt/d) for WSL. Cross‑filesystem I/O is slower.

Typical WSL 2 Startup Timeline

Windows receives the request and checks whether the distribution is already running.

If not, it starts a lightweight VM and loads the Microsoft‑custom kernel (skipping firmware/GRUB).

The kernel boots and executes /init (Microsoft’s init process). /init mounts the root filesystem, configures networking, performs UID mapping, and mounts /mnt/*.

If systemd is enabled, it takes over to start basic services.

The configured default shell (e.g., bash or zsh) is launched and the prompt appears.

The whole sequence takes only seconds because no hardware initialization or dozens of services are queued.

Common Misconceptions & Practical Tips

Misconception: WSL is a full virtual machine.

Reality: WSL 1 has no kernel; WSL 2 runs a real kernel inside a lightweight VM, which is far less heavyweight than a full Hyper‑V or VMware VM.

Misconception: Closing the terminal window shuts down WSL.

Reality: The distribution remains idle in the background. Use wsl --shutdown to terminate it and free memory.

Misconception: systemd always runs inside WSL.

Reality: systemd is disabled by default. Enable it by adding

[boot]
systemd=true

to /etc/wsl.conf and then restart WSL with wsl --shutdown.

Tip: If the first launch is slow, it is often due to Windows updates or antivirus scanning the Linux files. Running wsl --shutdown and starting again usually resolves the delay.

Tip: To start a service automatically on Windows boot, use the Windows Task Scheduler to run wsl -e <command>, or enable systemd and create a native service inside WSL.

Conclusion

WSL is not a “booted” system; it is a Linux environment that Windows awakens on demand. It skips BIOS, GRUB and the login manager, and its kernel is supplied by Microsoft. The /init process performs the necessary setup before handing control to your shell, which explains the near‑instantaneous startup.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Linuxvirtual machineboot processWSLUbuntusystemd
Ubuntu
Written by

Ubuntu

Focused on Ubuntu/Linux tech sharing, offering the latest news, practical tools, beginner tutorials, and problem solutions. Connecting open-source enthusiasts to build a Linux learning community. Join our QQ group or channel for discussion!

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.