不,微软没有将windows改用linux。

2020-10-12 21:42:25

已经有一连串的文章在想,微软未来是否会在Linux内核上重新建立Windows的基础。

我对微软参与Linux有一个独特的看法。我在Canonical的工作是帮助在Windows Subsystem for Linux上交付Ubuntu。我经常与许多从事Linux和各种开源项目的微软员工交谈。作为MVP,我还会听取有关微软产品和战略的简报。但请注意,这些是我个人的想法,我不会在这里分享任何非公开的东西。

我在某种程度上已经成为微软和Linux社区之间的中间人。这是我很乐意做的事。这两个社区都有富有创造力、善良和迷人的人。当它们之间的界限模糊时,有趣的事情就会发生。促进异花授粉将使计算对每个人都更好。

由于产品和工程方面的原因,我非常怀疑微软会在短期内将Windows操作系统的核心转移到Linux内核。让我解释一下原因。

首先,我认为这个幻想不断出现在Slashdot和Hacker News上的原因。

在这个驱动设备的操作系统蛋糕现在与Android、iOS、MacOS、Chrome OS和Ubuntu共享的世界里,Windows的角色正在发生变化。

随着Azure和WSL上Linux的使用,这类事情的可信度正在增加。Overton窗口已移动。

我认为Windows不会改用Linux内核的原因如下:

Windows中的NT内核提供了Linux刚刚接近的向后兼容性、长期支持和驱动程序可用性。在Linux中复制这些将花费数百万美元。微软拥有大量付费客户,可以继续支持Windows原样,有些客户甚至会支持几十年。正如雷蒙德所说,Windows并不是微软的累赘,这不会证明为了节省成本而改用Linux的费用是合理的。许多盈利公司的存在完全是为了服务现有的操作系统。即使归结为重新基于Linux,也可能导致不受欢迎的内核单一文化。与Windows和MacOS的竞争使Linux成为更好的操作系统。更理想的结果是开放源码创新继续在所有操作系统之间传播。Windows和Linux开源贡献者共享这两个生态系统中最好的。

目前还不清楚Windows用户空间是否可以从NT重定位到Linux内核,并保持Windows众所周知的兼容性,特别是具有任务关键型应用程序的企业客户端付费获得的是什么。Windows不像Linux那样严格划分内核空间和用户空间。NT内核有大约400个有文档记录的syscall加上大约1700个有文档记录的Win32API调用。这将是大量的重新实现,以确保Windows开发人员及其工具期望的精确兼容性。它不仅仅是为Wine提供了一些修复。Linux在AMD64上只有313个syscall,即使那样,微软从WSL1的syscall转换层切换到WSL2的虚拟化内核的部分原因是因为重新实现开发人员利用Linux ABI的几十种非标准方式是一件令人头疼的事情。为微软拥有的Linux上的SQL Server提供与NT相关的兼容层是一回事,为数百万其他开发者的应用程序保证它是另一回事。

近年来,微软在Windows上加倍下注。微软在Windows10的可用性、新功能和性能改进方面进行了投资,并取得了回报。这些改进,与原始设备制造商和Surface的合作,帮助重振了个人电脑市场,这个市场一度看起来有被iPad和Chromebook取代的危险。微软一直在努力使Windows成为一个优秀的开发平台,推出了Windows终端、PowerToys、Windows Subsystem for Linux和Visual Studio 2019等项目。“局内人”计划非常成功。Windows为Surface设备系列的大部分提供动力,这是微软目前的一个主要关注点。2018年和2020年的内部重组表明,Surface和Windows的未来现在密不可分。Windows为Xbox提供动力,我们正处于主要基于Windows的PC游戏的复兴之中。微软也有Windows10X的想法,这是继Windows10之后的下一个操作系统概念(我认为我们将逐步推出),考虑到像Surface Neo这样的未来硬件。

微软并不一定要改用Linux才能保持相关性。微软在移动领域输给了Windows之后,意识到了设备格局的变化。他们认识到,一套更加多样化的操作系统和平台正在驱动我们使用的计算设备,现在包括Android、Ubuntu、iOS、MacOS、Alexa、Chrome OS,而不仅仅是x86,还有ARM。微软已经表明,他们能够通过在这些其他平台上提供相关产品和服务来适应形势,同时保持自己的平台Windows在传统立足点上的竞争力。微软现在正在推动Android在移动领域的创新,不仅是通过移植的Office应用程序,还包括一个主屏启动器,现在是Surface Duo。在Ubuntu上,他们提供了对Linux工作站有意义的工具,比如Code、.NET、Azure Tools、Teams、PowerShell、Sysinterals for Linux,以及即将推出的Edge,这些工具都附带了微软的定制web开发工具。你想在Azure上运行Ubuntu吗?微软为您服务,并与Canonical密切合作,使之成为一种美妙的体验。

更有趣的问题不是微软是否计划将Windows重新定位到Linux,而是Windows在开源方面会走多远。我们已经看到像Windows终端、PowerToys和其他Windows组件这样的组件要么开始使用,要么开源。这里更符合逻辑和现实的目标是继续开放Windows组件和Windows开发过程,甚至超越Insiers计划,以使其他操作系统受益的方式。

毕竟,Windows已经采用了Ubuntu的发布节奏,即在4月和10月发布6个月的版本,SET版本得到了更广泛的支持。Windows2004和Ubuntu20.04在几天内相继登陆。我开玩笑的。

雷蒙德在他的博客的一个关键部分是正确的。我确实认为桌面操作系统大战的时代即将结束。我们正在进入一个新的时代,在这个时代,你的高端工人

请查看我们关于将Linux GUI应用程序支持添加到WSL的工作的预览版!Pic.twitter.com/lcx4WWwxTo。

--Craig Loewen(@Craigaloewen)2020年9月22日。

不过,关键的收获是开源赢得了胜利。当Raymond这样做时,他可以为帮助阐明开放源码开发模型的理由而感到自豪。

Windows和Ubuntu都不会去任何地方,它们只会通过开源不断变得更好,现在甚至比以前想象的更紧密地结合在一起。