← Back to context

Comment by NikolaNovak

7 hours ago

What made a significant jump from WSL2 to WSL3?

Unless I'm mistaken, WSL to WSL2 was massive change in complete architecture, with WSL2 now requiring virtualization and making your host-OS run on top of hypervisor, with potential tradeoffs not many users are typically aware of. Basically, WSL and WSL2 were different beasts entirely :)

Was there anything that big or note-worthy from WSL2 to WSL3? Or just a natural evolution/upgrade?

WSL3 is the app version. The underlying mechanism of how Windows runs Linux hasn't changed. The change from WSL to WSL2 was in that mechanism (WSL: run via syscall translation, WSL2: run via VM). This is an app change, so it covers the interfaces of how you can start running Linux code, but underneath the hood, it's still a kernel running within a VM.

The big addition here is the support for containers. The app now provides a simple way to run containers directly. Underneath the hood, there's still a kernel running on a VM, though. There's also some improvements to the filesystem layer, a kernel upgrade, etc.

This article[0] does a nice job explaining it.

[0] https://zenn.dev/yohakucode/articles/wsl3-wsl2-wslc-update

I had to speculate using the changelog, since MS hasn’t released performance tests . Kernel 6.18 has a better scheduler and other refinements. WSL3 improved the clock routines to use a synthetic clock. There are quite a few others.

virtiofs is the biggest change, it was experimental in 2.x. It doesn’t affect my application, but most new users who want to share files between windows + Linux will see a huge bump.