WSL2技术堆栈中讨论的“轻量级虚拟机”是什么意思?

时间:2019-06-19 19:50:27

标签: virtualization hyper-v windows-subsystem-for-linux

我的理解是Windows上的Docker当前在后台使用“常规VM”。 WSL2(and Docker)将切换为使用轻量级VM。但是,这实际上意味着什么?仅仅是使用较小的初始内存占用量和一些内存传递技术,还是更多呢?

1 个答案:

答案 0 :(得分:1)

TL; DR

最大的变化是从用于WSL中Windows内核的虚拟Linux系统调用解释器到WSL2中提供的完整Linux内核的转变。此举大大减少了虚拟化开销。

多汁的详细信息

直接来自DevBlogs Post on the announcement of WSL2

  

Microsoft将随Windows一起发布Linux内核...该内核已针对WSL 2进行了特别调整。它已针对大小和性能进行了优化,以在Windows上提供令人惊叹的Linux体验。

这与当前(撰写之时)WSL的使用方法有所不同,后者未使用original WSL overview from 2016中演示的适当的Linux内核。

  

WSL通过在Windows NT内核之上虚拟化Linux内核接口来执行未修改的Linux ELF64二进制文件。

WSL LXCore服务为本地Linux系统调用运行各种解释程序,并运行其自己的VolF和DriveFs操作以提供WSL和Windows 10之间的文件访问,这实际上起到了传统VM转换层等作用。的VirtualBox。

WSL components chart

引用:MSDN Blog

关于WSL2所使用的确切系统的信息鲜为人知,我们所知道的是来自Build2019 WSL2 talk。为了帮助回答有关文件系统更改和轻量虚拟机的问题:

Timestamp: 29:58

在这里,我们看到Linux内核与NT内核一起运行,而不是作为其之上的虚拟化环境运行。 (作为Windows服务)。轻量级VM可能在促进两个内核之间必要的交互方面发挥了作用。

Timestamp: 41:11

这可以窥视该互操作性层的内部工作原理。在Build2019演讲中进行了口头讨论,这两个内核通过本地托管的文件服务器(通过WSL2 以外的其他方式无法访问Windows用户空间)为其他文件提供服务。

由于撰写本文时我们目前所掌握的详细信息有限,因此从用户的角度来看,仍然有很多事情待解决。