← Back to context

Comment by ronsor

3 days ago

Improving that problem probably would've been a massive undertaking. That aside, there's the problem that implementing kernel mechanics is a lot more than faking syscalls: the various types of namespaces, FUSE, random edge cases that applications do expect, kernel modules, etc. At the end of the day, users don't want to stumble into some weird compatibility issue because they're running not-quite-Linux; it's a better UX to just offer normal Linux with better integration.

The WSL2 design isn't stupid, it's practical. What I will give you is that it's not elegant in an "ivory tower of ideal computing" sense.

When people talk about improved compatibility or higher practicality I wonder why they don’t just run Linux on metal at that point. You can either run it on your laptop, or connect to a networked computer.

Can I even use a usb serial port yet after how many years? (Possibly by now but how long did it take, and does it actually work well?)

It is stupid in that it's not really any kind of subsystem, it's just a vm. VMs have their uses, but it's basically just an app.

The reason hardware such as my usb serial example (or any serial) worked on wsl1 was because it actually was a subsystem.

  • Your serial might have worked, but your docker didn’t. (And someone else’s other drivers didn’t, and mmapping had ever-so-slightly different semantics causing rare and hard to reproduce issues).

    WSL2, on the whole, is much more compatible. If you want 100% Linux compatibility, just run Linux.

    • I do. That's why I didn't know the current answer to the question. But I use software that wants to talk to hardware, not just cloud software that might as well be on a vps.

      1 reply →