wsl升级wsl2_WSL 2简介

wsl升级wsl2

在最近的Build大会上,Microsoft推出了Linux的Windows子系统的第二版。 这是对原始WSL概念的重大改造,从将Linux系统调用转换为Windows到交付与Windows自己的内核一起运行的完整Linux内核。

这样做的原因很多,但最主要的原因很简单:对于一年交付两次的仿真器来说,要跟上Linux内核的变化(Linux二进制文件所依赖的变化)是不可能的。 如果Windows要支持开发人员为云构建Linux应用程序,则它不仅需要一致性,还需要兼容。

[紧跟InfoWorld为软件开发人员,分析师,数据库程序员和数据科学家提供的新闻通讯 。 | 从我们仅限会员的内幕文章中获取专家见解 。 ]

WSL 2简介

WSL 2有两个重大发展。第一个是Microsoft致力于将Hyper-V虚拟化工具用作Windows中的隔离层,从而将其转变为通用的虚拟机管理程序服务。 第二个是与Docker紧密相关的合作, Windows上的Linux容器 ,即LCOW。

LCOW是一切的起点,它使用Hyper-V托管瘦Linux内核,以在Windows服务器上运行带有Linux应用程序的Docker容器。 使LCOW成为Windows开发工具(尤其是Visual Studio Code的新的远程开发功能)可以访问的无缝环境的大量工作,以使容器仍然像本地Windows代码一样运行的方式运行容器。

这种近乎原生的性能来自于Microsoft对Hyper-V所做的更改,以支持其作为Windows 10中的关键安全功能的新角色。Hyper-V承载着新的隔离登录屏幕进程或运行仅支持Windows内核的具有Windows Defender Application Guard中浏览器所需的功能。 它也是最近引入的Windows Sandbox (可抛弃的Windows实例)之下的一层,可用于调试或检查可疑代码。

Hyper-V及其在这些新方案中如何托管代码的最大变化是与Windows调度程序的集成。 Windows现在可以管理虚拟机监控程序平台托管的所有进程,而无需像管理程序及其所有托管代码的进程那样,使其像标准Windows应用程序一样自由运行。

以此为基础,不难看出LCOW如何成为WSL新方法的基础,该方法托管了Microsoft维护的完整Linux内核,并支持与旧WSL相同的Linux发行版。 Windows Insider版本的20H1系列中有一个预览版本,可通过Fast Ring渠道获得。

WSL 2现在拥有自己的文件系统。 使用9P协议 ,WSL的虚拟硬盘存储(使用Linux原生的ext4文件系统)可以与Windows共享(以及Windows与Linux一起使用CIFS)。 这使您可以将Visual Studio Code的远程开发和调试功能与Windows UI一起使用,但可以将Linux上运行的代码作为Linux工具链的一部分使用。

WSL的两个发行版之间有很多更改。 对于开发人员而言,最值得注意的是WSL 2现在拥有自己的根文件系统。 现在,您所有Linux文件都需要存储在其自己的根目录中,从而使它们的文件访问速度大大提高。 得益于Windows的9P支持,Windows可以直接访问新的Linux文件系统。 您可以从Linux Shell启动Windows Explorer或Visual Studio Code之类的工具,从而直接访问Linux文件。

WSL 2入门

您不需要新的WSL Linux发行版即可开始使用WSL 2 。 首先,从PowerShell或Windows功能控制面板启用20H1 Windows Insider版本随附的新虚拟机平台功能。 安装到位后,使用相同的工具启用WSL。 这将设置WSL 1和WSL 2支持。

从Windows应用商店下载您选择的WSL Linux发行版。 设置,解压缩发行版并添加用户帐户后,可以将其转换为可与WSL 2一起使用。Microsoft已向Windows添加了一组新的wsl命令以帮助管理发行版。 wsl -l -v开始,以获得已安装发行版及其WSL版本的列表。 要将命令从WSL 1转换为WSL 2,请使用命令wsl –set-version 2.要返回,请使用相同的命令,将版本号更改为1。

在WSL 2下启动Linux发行版与在WSL 1下启动一个Linux发行版相同。 在命令行中输入其名称,或从开始菜单中启动它。 有趣的是,Microsoft如何将WSL 2与新的开源Windows Terminal集成在一起,当前可以从Windows Store获得Beta版。

WSL网络的更改

向在Windows上使用Linux的基于虚拟化的方法的转变已经改变了您访问基于Linux的网络应用程序的方式。 在WSL 1下,一切都属于同一网络; 使用WSL 2,Linux环境可以获得自己的动态IP地址。 在初始版本中,这意味着您必须使用VM的IP地址才能连接到服务。

微软已经表示,它正在努力简化这一过程,并已开始在WSL 2初始版本的最新更新中解决它。 这增加了对从Windows到WSL的基于本地主机的网络的支持,从而简化了对容器托管的应用程序和其他Linux服务的访问。 但是,它仍然只是一种方法,因此,如果不使用脚本来动态设置DISPLAY变量 ,就无法使用基于X的应用程序。

带上自己的Linux内核

最新版本中最大的变化可能是使用您自己的Linux内核作为Microsoft内核的替代品的能力。 .wslconfig文件中的内核选项用于设置将在启动时加载的内核的路径。 这将允许您使用自己的自定义内核,从而使您可以选择使用WSL开发嵌入式系统应用程序以及更熟悉的云托管代码。 这里有很多开发和测试的灵活性。 可以使用长期支持内核来开发代码,并可以使用例如在云提供商的Kubernetes环境中使用的内核进行测试。

这种新方法存在一个重要问题,它可能会影响现有的开发环境。 Hyper-V是一种非常底层的工具,位于Windows之下。 除非您使用的任何其他虚拟化工具支持新的Hyper-V API,否则它们将不会在托管WSL 2的系统上运行。对于无法切换到可与Hyper-V一起使用的管理程序的用户,例如最新的VirtualBox版本或Google的Android模拟器,微软曾表示不会撤回原始的WSL。 相反,新的WSL命令行工具将允许您管理特定发行版本运行的版本。 例如,使用WSL 2,您可以拥有在WSL 2上运行的Pengwin Linux副本和在WSL 1上运行的Ubuntu版本。

使用WSL 2进行试验已经经历了有趣的几周。Microsoft简化了在Linux平台之间的切换过程,并且由于具有完整的Linux内核,因此无需担心兼容性。 额外的好处是真正的本机Linux容器,不需要额外的管理程序层。 Visual Studio Code中的新功能在这里效果很好,可以将您的开发环境扩展到WSL虚拟机中。

唯一真正的问题? 随着WSL 2作为20H1 Windows 10版本的一部分进行开发,我们将不得不等到2020年5月才能在生产中使用它。 但是现在,我们终于在台式机上确定了Linux年。

翻译自: https://www.infoworld.com/article/3412063/an-introduction-to-wsl-2.html

wsl升级wsl2

你可能感兴趣的:(内核,数据库,docker,linux,java)