微软和 Linux:真心喜欢还是虚情假意?

2015-12-08 10:16


你时不时会看到给咖啡呛住或者将热牛奶咖啡喷溅到显示器上的新闻故事。微软最近宣称爱慕Linux无疑是这样一则故事的绝佳例子。

按常理来说,微软和自由开源软件(FOSS)潮流应该是永久的敌人。在许多人看来,微软就是贪婪过度的化身,而自由软件运动对此说不。此外,微软之前曾抨击Linux是癌症,抨击FOSS社区是“一伙盗贼”。

我们可以理解为什么微软一直害怕自由操作系统。倘若结合挑战微软核心产品线的开源应用程序,这威胁到了微软在台式机/笔记本电脑市场的霸主地位。

尽管微软担心其在台式机市场的霸主地位难保,Web服务器市场却是Linux已经带来最大影响的领域之一。如今,大多数Web服务器是Linux系统。这包括大多数世界上最繁忙的网站。对微软来说,看到这么多无人认领的许可收入准是无比痛苦。

手持设备是微软在自由软件面前节节败退的另一个领域。曾几何时,微软的Windows CE和Pocket PC两大操作系统处在移动计算的最前沿。想当初,基于Windows的个人数字助理(PDA)设备也算是市面上风光无限的设备。而这一切随着苹果发布iPhone后戛然而止。自那以后,安卓备受瞩目,而Windows Mobile基本上遭到了忽视和遗忘。安卓平台正是立足于自由开源组件。

安卓市场份额迅速扩大是由于这个平台具有开放性。不像iOS,任何手机制造商都可以发布安卓手机。而且不像Windows Mobile,安卓没有许可费。这对广大消费者来说确实是好消息。这导致全球各地的制造商纷纷推出众多功能强大、价格低廉的手机。这明确无误地证明了FOSS软件的价值。

输掉Web和移动计算这场战争对微软来说是惨痛的损失。如果你考虑一下这两个市场加起来的规模,台式机市场简直如同一潭死水。没人喜欢输,尤其是关系到钱的时候。而微软确实输得一败涂地。你可能会觉得微软对此很是愤懑。在过去,微软确实这样。

微软反击Linux和FOSS时派得上用场的每件武器都用上了,从宣传到专利威胁,不一而足;虽然这些攻击减慢了大众采用Linux的节奏,但微软还是未能阻止Linux的步伐。

于是,当微软开始在各种开源会议和活动上派发印有“微软喜欢Linux”的T恤和徽章时,也就不难理解了。问题是,微软果真钟爱Linux呢?

当然,公关口号和免费T恤并不与真相划等号。行动比话语更有说服力。如果你考虑一下微软的种种行动,就会发现微软的立场多了几分暧昧。

一方面,微软在招募数百名Linux开发员和系统管理员。它将其.NET Core框架作为跨平台支持的开源项目来发布(那样.NET应用程序可以在OS X和Linux上运行)。另外,它在与诸多Linux公司合作,将流行的发行版引入到其Azure平台上。实际上,微软甚至为其Azure数据中心开发了自己的Linux发行版。

另一方面,微软继续直接或通过傀儡公司,对开源项目发动法律攻击。很显然,对于专有软件与自由软件,微软内心深处并没有发生重大变化,那么为何公开宣布爱慕开源呢?

不言自明,微软是一家营利性公司。它对股东们来说是一个投资工具,对员工们来说是收入来源。它所做的一切只有一个终极目标:营业收入。微软的行动并不出于爱慕或者甚至出于讨厌(不过讨厌开源是常见的​​指责)。

所以,问题不应该是“微软是否真的爱慕Linux?”恰恰相反,我们应该问微软准备如何从这一切中获利。

我们不妨以.NET Core的开源版本为例。此举让人们很容易将.NET运行时环境移植到任何平台。这扩大了微软的.NET框架的覆盖范围,而不仅仅囿于Windows平台。

开放.NET Core最终有望让广大.NET开发员可以针对OS X、Linux、iOS,甚至针对安卓开发跨平台的应用程序,完全借助单一的代码库。

从开发员的角度看,这使得.NET框架比以前更具有吸引力。能够通过单一的代码库覆盖许多平台,显著扩大了使用.NET框架开发的任何应用程序的潜在目标市场。

此外,一个强大的开源社区将为开发员提供可以在自己的项目中重复使用的众多代码。因此,众多开源项目的存在将造就.NET框架。

从好的方面来看,开放.NET Core减少了跨不同平台的碎片化现象,意味着对消费者来说应用程序方面的选择更广泛。这意味着更多的选择,无论在开源软件,还是在专有应用程序方面。

从微软的角度来看,这将获得一大批开发员。微软可通过众多途径来获得利润:销售培训、认证、技术支持、开发工具(包括Visual Studio)以及专有扩展件。

我们应该问自己的一个问题是,这对自由软件社区有益还是有害?

.NET框架广泛采用可能意味着与之竞争的开源项目最终消亡,迫使我们都跟着微软的指挥棒转。

除了.NET外,微软在其Azure云计算平台上支持Linux备受关注。请记住,Azure原本是Windows Azure。那是由于Windows Server曾是唯一得到支持的操作系统。而如今,Azure还支持许多Linux发行版。

有一个原因可以解释这点:为了获得需要和想要Linux服务的付费客户。如果微软不提供Linux虚拟机,那些客户就会选择其他厂商。

看来微软清醒地意识到了这个事实:Linux已得到了人们的接受。既然微软无法彻底消灭它,那就只好拥抱它。

这让我们回到了这个问题:为何有那么大的动静是关于微软和Linux的。我们都在谈论它,因为微软希望我们想到它。毕竟,所有这些故事都可以追溯到微软,无论通过新闻稿、博客文章还是会议上的公开声明。这家公司正在不遗余力地让大家注意它在Linux方面的专长。

微软首席架构师Kamala Subramaniam宣布Azure云交换机Azure Cloud Switch的博文背后可能还有什么目的?ACS是一种自定义的Linux发行版,微软用它来自动配置其Azure数据中心的交换机硬件。

ACS并非对外公开发布。它用于在Azure数据中心内部使用,别人也不太可能找到使用它的场合。实际上,Subramaniam在博客中声明了同样的这一点。

所以,微软不会通过销售ACS赚到任何钱,也不会通过赠送ACS来吸引用户群。相反,微软在想方设法让人们注意Linux和Azure,加强其作为Linux云计算平台的地位。

微软最近喜欢上Linux对开源社区来说是好消息吗?

我们不应该忘了微软的口头禅:拥抱、扩展和消灭Embrace,Extend and Exterminate。眼下,微软正处于拥抱Linux的早期阶段。微软会不会通过自定义扩展件和专有“标准”来竭力分裂开源社区呢?让时间来给出答案吧!