3 ms·
Also Microsoft already gave up on WSL1's subsystem approach and just made the VM-based WSL2, focused on fixing the UX issues with VMs.
by rrdharan 7y ago
Also Microsoft already gave up on WSL1's subsystem approach and just made the VM-based WSL2, focused on fixing the UX issues with VMs.
- WorldMaker 7y agoWSL2 is certainly doing fewer kernel interactions as a subsystem than WSL1, but my impression is that it is still classified as a subsystem in the way that it launches and manages its more VM-like approach. The comparison/analogy I've heard, and I'm not sure it is apocryphal but it certainly makes sense to me, is to the Xbox One's game subsystems, which while rarely described in great detail from an NT Kernel engineering standpoint, when they are briefly described as such they are often described as subsystems and that they are "VM-like" in operation.
- rrdharan 7y agoThe point is in WSL2 rather than emulating the Linux kernel, they just run it: https://en.m.wikipedia.org/wiki/Windows_Subsystem_for_Linux https://en.m.wikipedia.org/wiki/Windows_Subsystem_for_Linux https://github.com/microsoft/WSL2-Linux-Kernel https://github.com/microsoft/WSL2-Linux-Kernel The Xbox One also uses a hypervisor to run multiple OSes, one of which was Windows 8: https://en.m.wikipedia.org/wiki/Xbox_One_system_software https://en.m.wikipedia.org/wiki/Xbox_One_system_software https://wccftech.com/xbox-one-architecture-explained-runs-windows-8-virtually-indistinguishable/ https://wccftech.com/xbox-one-architecture-explained-runs-wi... They started doing that with the Xbox 360.
- WorldMaker 7y agoYes, I mentioned all of that. All I was saying is that WSL2 is still technically a subsystem by name, even if it is "just running the Linux kernel". NT Subsystems have always varied in nature of how they operate. Yes, it's disappointing that WSL2 is "less cool" or "less proper" a subsystem, but they still call it a "subsystem for Linux", not a "Windows VM Host for Linux" or anything like that. (It might be less confusing between WSL1 and WSL2 if they had had chosen a name like "Windows VM Host for Linux" for WSL2.) To the NT Kernel naming perspective these "micro-VM hosts" still appear to be called "subsystem", even if they are doing so much directly less Kernel work than a "proper" subsystem in the Win16/Win32/Classic POSIX/OS/2 1.x or even WSL1 sense. Though this is getting into semantic weeds and drifting away from the original point that more subsystems, especially retro-computing inspired ones would be fun to see, even if they are more just "micro VM hosts" than full NT Kernel "flavors". (ETA: Also, it's a small stretch that Microsoft "gave up" on the WSL1 approach. They will still be supporting WSL1 side-by-side WSL2. The numbered name approach makes it seem that it is a strict "upgrade", but it's more a side-by-side trade-off option than the numbers imply.)
- rrdharan 7y agoYes, they kept the name. "NT Subsystems have always varied in nature of how they operate." Not sure what you mean here. There were classically three environment subsystems and they all fit in to the architecture in a consistent manner: https://upload.wikimedia.org/wikipedia/commons/5/5d/Windows_2000_architecture.svg https://upload.wikimedia.org/wikipedia/commons/5/5d/Windows_... The fact that if you look at the full callstack and address space of a regular Linux process running in WSL2 you won't see the "classic" NT Kernel anywhere feels like a pretty big difference to me. Yes they are still supporting WSL1. Microsoft's support policies are generally excellent. But it seems very unlikely there will be an interest in providing OS emulation or compatibility at the userspace/OS kernel boundary using the classic subsystem architecture, as a technical direction for the Windows team to invest in going forward. It's an architectural dead-end.