今日,微软发布了一系列有关Linux的功能。首先, SQL Server支持Linux 了,一周之后,微软宣布 “原生的Linux二进制文件可以运行在Windows10上” ,并给出了一个基于win10的demo。
微软现在在Linux上支持SQL Server并不是关于技术的决策,而是关于市场策略。毫无疑问,现在人们对于云端系统的选择是Linux,而不是Windows,微软在很久之前就输了这场战争。不出意外的是,Azure走在支持Linux的前列,也为其他Linux相关开源产品做出了贡献,例如Docker,Kubernetes和很多NoSQL数据库等。
在Linux上支持SQL Server并不会降低收入。几乎所有SQL Server的对手都支持Linux,而SQL Server却不,这让微软损失了一些市场份额,和生态系统的完整性。微软的SQL Server是一个不错的数据库,事实上,他们应该早点进行跨平台的支持。现在的结果是,很多老版的Windows变成了Linux上的虚拟机跑着SQL Server,不过也好过变成跑Oracle或者DB2的虚拟机。
在window上运行Linux软件的宣布是最有趣的部分,不过真实性有待验证。这个功能并不是简单的Linux虚拟机,和Linux和Kernel无关,也不是模拟硬件。也不是像 Cygwin 那样,一个为了可以在Windows平台上运行而编译的Linux环境,也不是一个容器。在Windows 10上运行的Ubuntu环境和远程的Ubuntu环境包含了相同的字节码文件——可执行的ELF。
微软的方案是,做一个系统调用的翻译层。当Linux软件执行系统调用的时候,微软的Linux子系统将其翻译成Windows的系统调用来执行。类似于WINE在Linux上运行windows的道理。同样类似于WINE,这不是魔术,并不是所有的软件都支持Windows,微软还有很多工作要做。
微软迟到的故事数不胜数,从杜撰的故事 “640K对每个人来说都足够了” 起到忽略互联网的发展再到意识到VR的重要性。微软不是个革新者,每次它涉足一个领域,都会下大手笔发展,直到变成一个成熟的、有竞争力的产品或服务。
这次也是,微软又迟到了。但是他也正在尝试努力拯救自己。同时,开发者不会轻易转到不成熟的Windows平台使用Linux,现阶段,他们依然会选择MAC以及各种虚拟机。
原文: Microsoft embraces Linux – way too late (译者/赖信涛 责编/孙思)