Hacker News new | past | comments | ask | show | jobs | submit login

Why? WSL 2 is a regression from WSL 1.

WSL 2 is just a Linux kernel inside a VM with some VMWare-like drivers for filesystem and network access.

WSL 1 made Windows an alternative implementation of the Linux kernel. Every process was a native Windows process, syscalls trapped into the Windows kernel, etc. Operations like open, read, and write ultimately operated on the NTFS volume directly, without being serialized across an IPC channel.

But this no doubt scared the bejebus out of some Microsoft executives as it would have put the final nail in the coffin of Windows as a target for back-end server development--you'd just use POSIX and Linux-specific interfaces because they'd be available everywhere, and in fact you wouldn't even need to recompile your applications.

More like they don't want to spend resources anymore after reports of bugs, slow filesystem performance, missing syscall, etc. Piggybacking Linux kernel developement is cheaper and less hassle.

1) If WSL is a proper product they'll be supporting it no matter what.

2) Filesystem performance is even slower with WSL 2. I'm sure this will improve, but they could have expended that energy on WSL 1, where it would have been categorically easier and more efficient. On the other hand, a virtio filesystem device was recently finalized so if they wanted to go the VM route they really didn't have to do anything but wait another couple months, at most.

3) They're maintaining a fork of the Linux kernel, which is significant work by itself. The syscall surface of Linux is quite small relative to the whole kernel. Most syscalls can be trivially implemented (and were, in WSL!) as thin wrappers around native NT capabilities. Many of the rest are comparatively easy to reimplement, especially once you have a fixed target to emulate. In terms of pace of development, they don't really need to do any better than RHEL, where enterprises are happy with Linux kernels and features years behind the tip of Linus' branch. And, frankly, if WSL 1 saw wide uptake it could have actually competed with mainline Linux in terms of the features and behaviors people depended on. If, for example, Microsoft refused to implement something like JIT'd BPF, it may have blunted and even stopped BPF momentum.

WSL 1 was interesting and potentially a game changer. WSL 2 is destined to disappear because there's very little value Microsoft can add which would require them to invest in WSL 2. The existing VM ecosystem, including their own generic VM framework, is more than adequate and will continue to only get better, regardless of WSL. All the problems are solved or are currently being solved by platform-independent, Linux-independent virtio specifications. Microsoft just needs to implement them in their hypervisor framework and they'll work with Linux, OpenBSD, and other OSs.

I think it's clear as day what happened: WSL 1 was a threat to the Windows API so it got axed. It was too radical even for Satya Nadella's Microsoft.

My experience is that the WSL 1 approach is actually slower than running Linux in a VM. If WSL 2 is indeed faster and everything else works the same then good for them.

WSL 2 requires Hyper-V. I wouldn't enable that even if you pay me. Windows already crashes too much, when you add Hyper-V to the mix it's a nightmare. I don't know how what or why it just screwed any PC I enabled it. I could swear my PC also became slower but I don't have any data to back that claim.

WSL 2 is, sure, more technically interesting then WSL 1.

That doesn't mean it's more useful for most real world tasks. A first iteration that is more technically novel followed by a second that is both more pedestrian and more functional is not an uncommon pattern.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact