> (reliability, performance, and beyond)
Considering it's just a headless linux vm with some integration with the host, I don't understand what reliability, performance or beyond it could possibly introduce beyond what any VM solution provides?
There are few gotchas with WSL. I hate how by default it includes your Windows path in your default linux path out of the box. It's easy to turn off and my init scripts for any VM always do that anyway, but it's the main thing I have seen people who are new to WSL get tripped by. It's useful to be able to run windows programs from within WSL. Like all the cli tools that pop up a browser to make you login, but that's about where its usefulness ends for me.
> No matter what you do, there will always be some weird platform detection
In my experience, unless you're running a very mainstream distro (read Ubuntu) there will always be a weird "platform detection" issue. I run openSUSE on most of my devices, and used to scripts not working because "uhhh, this is not Ubuntu or Debian or Fedora". The only time I run into "platform detection" issues are scripts that assume `uname -r` of a very narrow format.
> or line termination that pops up somewhere.
That goes back to my original comment about running Windows programs from linux, or moving files to/from linux. I never run into this issue because, just like on a linux desktop, I only interact with linux through the commandline. Even on a full linux desktop, I have this mental separation between GUI apps and terminal apps.
> it’s degraded performance or kernel-level incompatibility.
The only "kernel-level incompatibility" I run into is that WSL kernel doesn't have /dev/kvm. Granted I don't do a lot of kernel module specific development, so I don't know how something like a USB device or a PCIe interface can be passed to the WSL instance. But again, I'm thinking of it, and treating it like a user-mode development VM, not a full host.
USB forwarding to WSL is built in to the WSL kernel, but you do need to install a thing on the windows side. After that, there are a number of GUIs to manage your usb devices or you can use the shell. Switching a usb devices from windows to WSL basically unplugs it from windows and plugs it into WSL.
I need it to access ssh keys from my yubikey. It’s painless if you just set it up to automatically forward the device on startup.