4 ms·
WSL is definitely not a Virtual Machine, unless you're saying that WINE is also a VM, in which case you have a very broad definition of VM that's different from
by voltagex_ 10y ago
WSL is definitely not a Virtual Machine, unless you're saying that WINE is also a VM, in which case you have a very broad definition of VM that's different from most other people.
The way WSL is implemented is actually really interesting. Linux syscalls are translated by an NT kernel driver and some other shims handle the NTFS->POSIX transition on the filesystem side.
- flukus 10y ago> WSL is definitely not a Virtual Machine, unless you're saying that WINE is also a VM, in which case you have a very broad definition of VM that's different from most other people. Wine runs on the host OS, WSL runs apps from linux image. This image is self contained, just like a VM. Aside from that, I said it's practically a VM. There might be some different technical stuff going on underneath, but for a user there is very little difference between WSL and a VM.
- int_19h 10y agoIt's not truly contained, though. There is no security boundary between the host and the guest there - WSL can access your entire filesystem, for example (subject to usual ACL checks, of course). The reverse is also true, by the way - WSL portion of filesystem can be observed directly from Win32 (cd %USERPROFILE%\AppData\Local\lxss and look around, but don't touch - there's some magical pixie dust there that's easy to disturb and break things from the Linux side of things).
- flukus 10y agoCan't you make whole drives available to a true VM in the same way?
- int_19h 10y agoYou can, but in a VM, you still have two different and separate filesystems, and then some mechanism to provide a window into one from another (custom FS driver mounted in a directory, SMB share etc). In WSL, there is only one filesystem. And it's not just filesystems. We're also talking about potentially shared file descriptors/handles (where appropriate), access to processes in both directions etc. So from user's perspective, I would argue that it's actually more similar to Wine. Even if the implementation is more low-level (syscall emulation vs userspace API emulation).
- noinsight 10y ago> Wine runs on the host OS, WSL runs apps from linux image. This image is self contained, just like a VM. Actually (it's been a long time since I last used Wine though, so I might remember incorrectly), Wine is "self contained" as well and there's a "C: drive" directory structure with notepad.exe etc. too, just like the WSL system.
- flukus 10y agoI think your right, now that you've jogged my memory.
- tremon 10y agoThat's a very narrow definition of self-contained though. Wine does not implement its own filesystem operations, it uses the host's filesystem api to access host-native files. It doesn't even emulate a jail/chroot, because the host's / filesystem is by default accessible through Z:\