为什么微软不基于Linux内核重构Windows几周前,开源软件爱好者EricSRaymond提出微软应该基于Linux内核重构Windows,引发热议。他认为,当前个人电脑业务持续下滑,Windows不再是微软的支柱业务,可以通过重组实现利润最大化。不过,曾参与过WindowsSubsystemforLinux的Ubuntuport开发的HaydenBarnes对此不以为然,认为微软不会基于Linux重构Windows。HaydenBarnes是在Microsoft和Linux社区工作的知名开发人员,帮助推进Ubuntu在WindowsLinux子系统(WSL)上的开发。因此,他能够与许多Linux开发人员、开源项目人员、社区成员和微软员工进行交流。此外,他还作为MVP(Microsoft最有价值专家)参加了有关Microsoft产品和战略的各种简报会。对于最近流行的“微软应该将Windows系统的核心迁移到Linux内核”的说法,他表示,从产品和工程的角度来看,微软在任何情况下都不可能这样做。在进入细节之前,Barnes列举了这个想法不断出现在Slashdot和HackerNews上的原因: 能够让用户点击 ●它是开源的老前辈,Linux提倡幻想。 ●目前,Windows的角色正在发生变化。尤其是在Android、iOS、macOS、ChromeOS、Ubuntu都基于Linux的当今世界 ●随着Linux在Azure和WSL中的使用率越来越高,可信度越来越高。欧弗顿之窗已经移动。对此,巴恩斯认为,微软不会基于Linux内核重构Windows,原因如下:1.内核Windows系统中的NT内核提供了一定程度的向后兼容性、长期支持和驱动程序可用性,而Linux仍在改进中。如果要基于Linux进行重构,那肯定要花费数百万美元。Microsoft有许多付费客户继续按原样支持Windows,有些甚至支持了几十年。正如雷蒙德所说,基于Linux重构Windows并不能帮助微软省钱。许多盈利的公司的存在是为了服务于现有的操作系??统。即使它最终基于Linux,也可能导致糟糕的内核简化。Windows和macOS之间的竞争可以使Linux成为更好的操作系统。更理想的结果是让开源创新传播到所有操作系统,Windows和Linux开源贡献者共享两个生态系统的精华。2.兼容性目前还不清楚如果Windows用户空间从NT迁移到Linux内核,是否能保持良好的兼容性,尤其是那些有关键任务的应用程序和付费的东西。Windows并没有像Linux那样严格区分内核空间和用户空间。NT内核有大约400个记录的系统调用和大约1700个记录的Win32API调用。重新部署以确保Windows开发人员和他们的工作按预期兼容需要进行大量工作,并且它完全超过了Wine提供的修复贡献。Linux在arm64上只有313个系统调用,另一个原因是微软从WSL1中的系统调用转换层切换到WSL2中的虚拟化内核,从而重新实现LinuxABI的数十个非标准漏洞利用方式非常痛苦。在Linux上为Microsoft拥有的SQLServer提供与NT相关的兼容层是一回事,而为数百万其他开发人员的应用程序提供保证则是另一回事。3、微软投入巨资近年来,微软为Windows倾注的人力、物力已经无法计算。Microsoft在优化Windows10可用性、新功能、性能改进等方面进行了投资,并获得了回报。在这些改进的基础上,与OEM的合作伙伴关系以及Surface品牌的推出帮助重振了PC市场。微软一直在努力使Windows成为一个伟大的开发平台,其项目包括WindowsTerminal、PowerToys、WindowsSubsystemforLinux和VisualStudio2019。WindowsInsider计划也非常成功。目前,Windows是包括Surface在内的众多产品的重要承载系统,这也是微软正在重点发力的业务。2018年和2020年的内部重组表明,Surface和Windows的未来现在密不可分。Windows为Xbox提供了动力,我们正处于主要基于Windows的PC游戏的复苏之中。微软也有Windows10X的想法,Windows10之后的下一个操作系统概念(我认为我们会逐渐得到),以及像SurfaceNeo这样的未来硬件也在考虑之中。4.微软无需基于Linux重构Windows以保持相关性。放弃移动市场后,微软意识到设备格局已经改变。微软认识到当今社会的人类使用各种系统和各种平台。系统上有Android、Ubuntu、iOS、macOS、ChromeOS等,除了x86还有ARM。微软已经表明他们可以适应这个多样化的世界,在这些平台上推出相关产品和服务,同时确保Windows在传统领域的竞争力。目前,微软正在推进基于Android和iOS的移动领域创新。它不仅移植了微软Office,还移植了包括MicrosoftLauncher在内的众多优秀应用,最近还推出了搭载安卓系统的SurfaceDuo手机。在Ubuntu系统上,微软推出了很多Linux工作站的工具,比如Code、.NET、Azuretools、Teams、PowerShell、SysinternalsforLinux,以及即将推出的Edge浏览器。你想在Azure上运行Ubuntu吗?Microsoft已经为您提供了保障,并与Canonical密切合作,为您提供绝佳的体验。与其关心微软是否基于Linux重构Windows,更有趣的问题是微软在开源上能走多远?我们已经看到WindowsTerminal、PowerToys和其他已经开源的Windows组件。一个更合乎逻辑和现实的目标是,微软将继续开放Windows组件和Windows开发过程,甚至超越WindowsInsider项目的范围,为其他系统提供好处。
