我的理解是,Windows上的Docker目前在引擎盖下使用“常规VM”。WSL2 (和码头)将切换到使用轻量级VM。但这究竟意味着什么:它只是使用一个更小的初始内存脚印,并带有一些内存通过技术,还是还有更多的技术呢?
发布于 2019-06-20 18:56:34
TL;DR
最大的变化是从WSL中用于Windows内核的虚拟化Linux解释器转变为WSL2提供的一个完整的Linux内核。这一举措大大降低了虚拟化开销。
多汁的细节
微软将发布带有Windows的Linux内核..。这个内核针对WSL 2进行了特别的优化,它的大小和性能都经过了优化,从而在Windows上提供了令人惊叹的Linux体验。
这与当前(编写时) WSL的方式不同,WSL没有使用适当的Linux内核,在自2016年起原始WSL概览中演示了这一点。
WSL通过虚拟化Windows内核之上的Linux内核接口来执行未经修改的Linux ELF64二进制文件。
WSL LXCore服务为本地Linux系统调用运行某种类型的解释器,并运行自己的VolFs和DriveFs操作,以在WSL和Windows 10之间提供文件访问,这实际上是执行传统VM的转换层(如VirtualBox )的作用。

引文:https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/
到目前为止,对于WSL2所使用的确切系统还知之甚少,我们所知道的是来自Build2019 WSL2 talk。要帮助回答有关文件系统更改和轻量VM的问题:

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

这样就可以窥探到互操作性层的内部工作情况。在Build2019会话中,这两个内核通过本机托管的文件服务器(WSL2以外的其他方式无法被Windows访问)相互提供文件。
同样,由于我们在撰写本报告时可用的细节有限,从用户的角度来看,仍然存在很多问题。
https://stackoverflow.com/questions/56674916
复制相似问题