为了操作系统的市场占有率。
从未有一家公司像微软在十多年的时间里在公司战略上发生了如此激烈而颠覆式的变化。
微软官方明确自己的开源战略是“聚焦于帮助消费者和合作伙伴在多样化的技术世界里取得成功”。
开源计算器,微软除了发布源代码外,还公开了构建系统、单元测试和产品路线图。
开源了其 90 年代的原始文件管理器,允许它再次在Windows10上运行。
相信很多人都知道 Windows 的命令行工具(cmd.exe)依赖于一个名为 conhost.exe 的程序,它在系统中被称为“控制台窗口主机”,是命令行程序的宿主进程。
conhost.exe 实现了 Windows 命令行工具的基础架构,同时提供 Windows Console API、输入引擎、渲染引擎和用户配置信息,在系统中是一个十分重要且核心的程序。
作为 Windows Terminal 项目的一部分,微软采用 MIT 许可证将 conhost.exe 一同开源出去。这绝对称得上是史无前例的操作,虽然微软此前也曾将 Windows 系统里面的项目进行开源,但都是一些不太重要的工具,如计算器,或是其他已不再更新的程序。
这次将 conhost.exe 开源,不但是微软首次开源核心的 Windows 系统代码,更重要的是,如果 Windows Terminal 稳定后并被集成到 Windows 系统中,那么它将是首个以开源方式进行开发的 Windows 核心组件。
微软表示 WSL 2 会在轻量级的虚拟机里运行真正的 Linux 内核。通过运行完整的内核,WSL 2 不仅大幅度提升了文件系统性能,也提供了完整的系统调用兼容性。
更重要的是,WSL 2 这次不再“畏惧” Linux 内核所采用的 GPLv2 许可证,因为微软宣布它将根据许可证要求完全开源 WSL 2 的内核补丁和修改。
基于 GPL 许可证的项目构成了 Windows 系统的一部分,这意味着它骨子里已经拥有开源的“基因”,身上某处流淌的是开源的“血液”。
2014年,纳德拉上任后不久就将 Windows Azure 易名为 Microsoft Azure,仅仅半年以后,他就在旧金山的一个云计算活动上喊出了那句著名的“微软爱 Linux”(Microsoft Loves Linux)。
在微软公司里,开源技术正得到前所未有的广泛应用。
Azure对Linux发行版的支持
在微软2008 财年中,总营收为604.2亿美元,其中商务部门的收入高达189.37亿美元,客户端部门收入为164.72亿美元,服务器及工具营收则为131.89亿美元,在线服务部门的收入只有32.14亿美元(连娱乐和设备部门营收的四成都不到),是当时微软五大业务中营收最低的。
六年之后,到了 2014 财年,微软总营收达到了868.33亿美元,设备及消费者部门营收为376.74亿美元,商务部门收入则高达495.74亿美元,其中,包括企业服务、Office 365及 Microsoft Azure 等商业云服务在内的商务其他部门的收入则达到了75.47亿美元。
在2017财年,微软公司的收入为899.5亿美元,更个性化的计算业务(More Personal Computing)收入为387.73亿美元,生产力及业务流程部门(Productivity and Business Processes)的营收达到了304.44亿美元,而已经将 SQL Server、Windows Server、Visual Studio 和 Azure等服务器产品及云服务还有企业服务整合起来的智能云业务收入则达到了274.4亿美元,其中 Azure 的同比增幅高达99%。
而就在2008年 GitHub 刚问世的时候,微软其实就已经开始转变自己对开源软件的态度。时任公司平台技术战略和开源软件实验室总监的山姆·拉姆齐(Sam Ramji)——现在,他在 Google Cloud Platform 担任执行副总裁——一直在微软内部大力呼吁增强开源软件和闭源软件互操作性。
拉姆齐关注的是在 Windows 系统的基础上完善开源软件生态,鼓励包括 Windows 操作系统、SQL Server 及.Net 在内的 Windows 栈和免费 Linux-free 或 Windows 系统为中心的 LAMP (Linux、Apache、MySQL、PHP)栈的共存。实际上,微软将开源软件同独立软件开发商软件等量齐观,吸引前者为 Windows 系统开发软件。
就在2014年,纳德拉正式接替他成为微软公司历史上的第三任 CEO。此时,运行在 Azure 上的操作系统中有1/5是 Linux。
事实上,在2011年时,微软甚至一度跻身Linux 3.0五大公司贡献者之列,上溯到2009年时,微软就因为向 Linux 贡献了20000行设备驱动代码而震惊了整个开源社区,到2017年时,微软已经是 GitHub 上贡献代码最多的公司。
在2016年,微软推出了兼容 Linux 的 SQL 服务器数据库软件。
真相就是,云服务正成为微软未来战略发展的核心和关键。而现在,仅仅只有微软和苹果两家公司在硬件、软件和云的连通和生态建设上取得了领先优势。
微软正全力投入到云计算业务上,而在云计算环境中最炙手可热的即是开源系统和软件。Azure 业务 CTO 马克·拉西诺维(Mark Russinovich)对此评价道,如果我们不支持 Linux,那我们就成了 Windows Only,而这没有任何用。
在十年时间里,微软已经从 2008 年时一家以 Office 业务(商务部门)和操作系统(客户端部门)为主要营收来源的以授权模式为核心的公司,实现了逐渐转型。在今天,尽管 Windows 系统相关授权依然时微软公司最重要的营收来源和商业模式,但是,云服务在整个公司营收中的比重已经超过了前者(2019年),而在纳德拉上任前,这块业务在微软收入中的比重只有约3%。
使命的变化
种一棵树最好的时间是十年前,其次是现在
开源已经形成潮流,一家软件公司的竞争对手可能是同行企业,还可能是开源项目。
不过开源可不是公益,公司还是以赢利为导向的,那么开源对公司而言利益是什么呢?
首先,企业级版本的使用往往并不免费,并且相关的技术支持、安装、系统整合、认证和培训等服务也是收取费用的。
其次,项目开源之后,可以吸引社区中对此热情的开发者们。传统模式下,软件巨头公司需要雇佣大量工程师进行开发、测试和本地化等。但是,开源相当于把一部分工作“外包”给社区。此外,如果开源项目代码优质,则会很好地塑造技术形象并在开源圈产生影响力,从而起到推广公司品牌的作用。
更重要的是,公司可以接触到社区中的高尖专家程序员,增加了对他们的吸引力也就增加了更多招纳贤士的可能性,他们有可能会以兼职或者全职的形式加入公司。单纯对项目本身而言,如果被其他公司采用、再回馈到社区,这是优化项目和丰富使用场景的良性循环。
计算机巨人聚焦开源后造成了巨大的影响力,是它实力的体现。
开源不是虚伪的“让我们围着篝火唱歌,使这个世界变得更美好”。如果每人都能为他们“自私”的原因而作出贡献,开源才能成功。
林纳斯以自己来举例,他热爱编程并希望学习如何控制硬件,而这就是他的“自私”目的。
这里的“自私”并非是指利益回报,并且很多人都有这种想法,担心自己的努力白白被他人利用。
所以林纳斯使用 GPLv2 许可证解决了这一问题,这种类似“一报还一报”的模式,在享受别人成果的同时,也承诺回报成果。
林纳斯认为 GPL 是一种公平的许可证。