WSL2是在虚拟机中还是与Windows内核一起运行Linux?


16

我一直想在Windows中使用Linux终端,并得到WSL 1的支持。但是(由于我猜)它是Hyper-V管理的虚拟机,所以运行起来很慢。使用WSL 2,它相对来说要快得多,但是我不明白微软是如何做到的。

他们是在改进Hyper-V还是停止使用虚拟机并创建魔术来并行运行Linux内核?


3
它仍然是虚拟的,但是WSL2使用linux(4.9)内核,而不是更改对Windows API的调用并以此方式进行处理。
guiverc

9
@Sachin WSL 1通过将Linux系统调用转换为Windows系统调用而在Windows上运行ELF二进制文件,这正是它的名称所描述的,“ Linux的Windows子系统”
wjandrea

6
WSL 1不是虚拟的@guiverc
Adrian

3
@ Sachin.Verma:“骗局”是什么意思?WSL 1是Linux内核API和ABI的实现,就像Linux内核是Linux内核API和ABI的实现一样。实际上,这就是大多数Linux兼容层的工作方式,例如FreeBSD,HP-UX,AIX,Solaris等上的层大多数也是Linux内核ABI和API的独立重新实现,而不是Linux内核的端口。它还以相反的方式起作用:Linux上商业Unices的所有兼容性层都是对其API和ABI的独立重新实现。
约尔格W¯¯米塔格

4
WinE也以相同的方式工作。它实现Windows API和ABI,而不是移植Windows以使其在Linux上运行(这在法律上是不可能的)。
约尔格W¯¯米塔格

Answers:


17

关于 Microsoft Docs WSL 2的文章中:

WSL 2体系结构的简要概述

WSL 2使用最新最先进的虚拟化技术在轻量级实用程序虚拟机(VM)中运行其Linux内核。但是,WSL 2将不是传统的VM体验。传统的VM体验启动速度慢,与外界隔离,消耗大量资源并需要您花时间进行管理。WSL 2没有这些属性。它仍将提供WSL 1的显着优势:Windows和Linux之间的高度集成,极快的启动时间,较小的资源占用以及最重要的是,不需要VM配置或管理。虽然WSL 2确实使用了VM,但是它将在后台进行管理和运行,从而为您提供与WSL 1相同的用户体验。

正如我们在以下文章(以及它们下面的讨论)中所看到的,WLS 2使用Hyper-V功能:


根据我到目前为止所读的内容:它将被隔离,将消耗额外的资源,将具有专用的虚拟磁盘。
LatinSuD
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.