为什么 Windows 发布 Linux 内核会改变一切

微软正在改变。 曾经是一个封闭的、单一的组织,对开源软件怀有公开的敌意,现在他们似乎正在接受它。

随着最近态度的一些变化,包括开源 Visual Studio Code,Windows 开始接受 Linux。 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 中 Linux 的集成虚拟版本。

新版本的 WSL 即将推出,对于某些人来说,它将改变一切!

为什么我想要 Linux?

乍一看,Windows 操作系统中的 Linux 内核似乎并不重要。 毕竟,如果您已经使用 Windows,为什么还要使用 Linux?

事实证明,您可能想使用 Linux 的原因有很多。 它的稳定性和可定制性使其广泛用于所有形式的软件开发。 几乎你在网上看到的所有东西和你使用的每个应用程序都有一个 Linux 服务器作为其主干。

如果您对开源项目和软件感兴趣,Linux 作为操作系统就充分体现了这一理念。 大多数软件都有免费的 Linux 等价物。 如果你对开发感兴趣,开源项目总是在寻找更多的贡献者。

某个特定的软件是否无法按照您希望的方式运行? 然后为项目做出贡献,使其变得更好!

Windows 不是已经有 Linux 了吗?

微软在 2018 年 Windows 10 周年更新中引入了适用于 Linux 的 Windows 子系统 (WSL),作为在 Windows 操作系统中运行 Linux 软件的一种方式。

从那时起,安装 Linux 发行版就变得很简单。 只需前往 Microsoft Store,然后从一系列发行版中进行选择。

安装后,您可以直接从开始菜单运行 Linux 命令行。 第一次迭代现在称为 WSL 1。

为什么不使用虚拟机?

在 Windows 中运行其他操作系统并不是什么新鲜事。 您几乎可以使用虚拟机 (VM) 运行任何操作系统,那么为什么还要使用 WSL?

集成系统的不同之处在于速度和便利性。 VM 的运行速度通常比本机操作系统慢。

由于 Linux 在 Windows 中本地运行,因此您可以从开始菜单启动 Bash 终端,并立即访问您的 Linux 子系统。

将此与启动 VM 或 Linux 和 Windows 双启动所需的时间进行比较,您会发现真正的不同。

尽管如此,WSL 1 还是有一些警告。 尽管工作速度比典型的 VM 快,但它仍然是一个虚拟操作系统。 WSL 2 改变了这一点。

WSL 2 有何不同?

适用于 Linux 2 (WSL 2) 的 Windows 子系统带有一个实际的 Linux 内核。 以前,Windows 创建了内核功能的模拟,虽然它经过了高度优化,但仍然不如真实的。

内核将产生的差异将是巨大的。 根据微软的说法,WSL 1 和 2 之间的速度提高了 20 倍。即使这被证明有些夸张,但仍然是一个令人难以置信的差异。

Windows 提供 Linux 内核以在 Windows 操作系统中运行的想法很重要。 它标志着微软对开源软件和操作系统的态度正在发生变化。

为什么内核很重要?

内核是操作系统上最低级别的软件。 它负责您与计算机交互的几乎所有方式。 为了 example,每次您在计算机上使用该软件时,内核都会将您的输入转换为 CPU 可以理解的数据,并将输出反馈给您。

发布 Linux 内核会改变一切,因为这意味着您正在执行的任何 Linux 特定任务都将与 Linux 内核交互。 这种级别的兼容性使 WSL 2 脱离了典型 VM 的概念。

解释内核是什么以及它能做什么都很好,但它仍然没有回答这个问题:为什么这会改变游戏规则?

以前不能用内核做的事情

任何文件密集型操作都是 WSL 1 的瓶颈,因为 Windows 和 Linux 运行不同的文件系统。

WSL 1 必须将这些调用转换为 Windows 可以理解的数据,而不是直接进行系统调用。

使用 Linux 内核后,启动 WSL 2 的速度明显更快(演示显示它在两秒内启动)。 所有前面提到的速度问题都消失了,因为操作系统直接在内核上运行。

这方面的实际应用包括在原生 Linux 环境中运行像 Docker 这样的服务器解决方案。 在为远程 Linux 服务器进行开发时,这是一个很大的好处。

此外,您通常使用完整的 Linux 系统进行的任何操作都可以在 WSL 2 中以接近本机的速度实现。

Windows 终端

WSL 2 将与另一个备受期待的微软项目携手合作:新的 Windows 终端。

作为在 Windows 上使用命令行的完全重新启动,Terminal 的设计本质上是跨平台的。

除了在单个终端窗口中运行混合任务外,在同一终端窗口的不同选项卡中使用 Powershell for Windows 和 Bash for Linux 的能力将改变跨平台开发人员的一切。

我应该切换到 Windows 吗?

到目前为止,我们已经从 Windows 的角度来看待这个问题,但是如果您已经在运行 Linux 怎么办? 你应该做开关吗?

很可能,答案是否定的。 如果您已经在运行 Linux,那么您现在不会看到切换的任何好处。 许多 Linux 用户更喜欢操作系统的完全开放性。

从历史上看,微软对开源项目并不友好,而这段历史被许多人铭记。

如果您同时使用这两种操作系统,WSL 2 将成为您日常使用的 Windows 方面的一个很好的补充,并且对于每天使用这两种平台的开发人员来说,它将改变您组织工作空间的方式。

操作系统

WSL 并不是什么新鲜事,但这些变化足以引起一些人的注意。 可以在 WSL 1 中加载 Linux 桌面,因此在 WSL 2 中似乎也很有可能。

也就是说,如果您不喜欢 Microsoft 并希望保持开源,那么这不适合您。 这是可以理解的,还有很多其他的好方法可以保持开源!