在今天的 Build 2019 开发者大会上,微软发布了 WSL 的第二个大版本。
当前用于Linux的Windows子系统,使用的是Microsoft编写的内核组件,该组件提供了与Linux内核相同的内核API。本质上,它将Linux API转换为Windows NT内核API。
该组件现在运行得很好,但是当前的子系统也有一些缺点,例如,不能使用Linux驱动程序,特别是文件系统驱动程序。
它的文件系统性能在Windows的NTFS之上分层,通常比真正的Linux内核慢20倍。它也是内核一个相对较老的版本。
它提供给了Linux 4.4大约一组API,并于2016年发布。但是一些API根本没有实现,而另一些API只是部分实现,以满足特定应用程序的需求。
所有这些都随着Linux 2的Windows子系统而改变。WSL2将在轻量级虚拟机中运行完整的Linux内核,而不是在NT内核上模拟Linux内核API。
公司将要精简这个内核,并根据这个特殊的情况进行定制,提供精简的硬件支持。因为它将遵从主机Windows OS的要求并启动地更快。
Linux内核是GPled开源的。GPL许可证要求,对代码所做的任何修改都必须在GPL许可证下发布。
微软将适时遵守这一规定,发布补丁和对内核的修改。WSL 2也将使用与当前WSL类似的分割。将随Windows一起提供内核组件,而由Linux提供的其他“个性化”版本可以从Microsoft Store上安装。
通过使用Linux内核,微软免费获得了Linux的所有性能。这就是WSL 2将支持Docker容器的原因。
所有底层基础设施都已经在Linux内核中,而且微软不需要自己去实现这些性能。嵌入式内核将由Windows Update提供服务并进行更新。
这同样也大大提高了性能。如提取tarball,速度可高达20倍。在Git中拷贝源代码存储库可能要快5倍。
WSL已经受到开发人员的热烈欢迎,因为它提供了一个可靠的类linux开发环境。WSL 2将把这一问题提升到一个新的水平,几乎消除了WSL 1的兼容性问题。
据悉,WSL 2的第一个预览版将于6月发布。