首页 运维杂谈华为开源能力中心杜玉杰——开源纵横谈:微软开源那些事儿

华为开源能力中心杜玉杰——开源纵横谈:微软开源那些事儿

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

在“开源纵横谈”的上一篇文章“谷歌开源那些事儿”中我们可以学习到分析企业开源战略可以从两方面入手:首先要看什么是不能开源的,其次是要考虑能否帮助扩张业务和赚取收入。这次我们通过聊聊微软开源那些事儿来看看微软开源战略转型对于制定企业开源战略又会带来哪些启示。

“事实标准常常通过经济机制在市场上发生演变,这种经济机制与推动商业成功的正向螺旋的概念十分相似,它使一个成功推动另一个成功,这一概念叫做正反馈,它说明事实标准之所以常常出现在人们寻求兼容性的时候的原因。” ——《未来之路》比尔•盖茨 1995年出版[注1]

2017年1月底,微软公布了公司第二财季财报,财报显示由于云计算业务增长迅速,微软第二财季调整后每股收益和营收均超出华尔街分析师预期,公司市值17年之后重回5000亿美元。上次市值超过5000亿美元还是在2000年3月份,美国司法部判决裁定微软的垄断行为违反了发垄断法,当天微软股票狂跌一半,市值从5000亿美金缩水到不到3000亿美金,当时正值.com泡沫破灭前夕。

而业界也曾有这样一种讲法,如果以公元2000年作为科技史的一个分水岭,那么公元2000年之前可以称之为“PC”(Personal Computer)时代;而公元2000年之后则被称为“后PC”(Post-Personal Computer)时代。

在前一篇文章“谷歌开源哪些事儿”中也曾经提到过微软的成功很大程度上得益于尔•盖茨对于个人PC发展方向的把握,从而建立了WinTel联盟,那么我们先穿越回“过去美好的时光[注2]。

PC时代的兼容之路

比尔•盖茨在《未来之路》中详细的介绍了微软如何利用兼容性打败所有的其他操作系统而成为PC行业标准,我们不妨把PC时代微软在开源方面的战略大致概括为几个事件:

首先是Bill Gates在1976年写的一封《致爱好者的公开信》,谴责盗版BASIC[注3]软件的“业余爱好者”,并说他们是在“偷窃”,比尔·盖茨随后离开校园,一手创办了世界上最成功的企业之一——微软公司,并逐渐将软件产业化。

但实际上, Stallman 在最初的 GNU 宣言里列出了几种可行的营利模式,例如:以光盘或磁盘的形式销售自由软件包拷贝;自由发布软件,但可以提供捐款的途径给使用满意的客户;提供手把手的安装、培训和指导服务;针对厂商新机器架构的软件移植;软件的定制化等。

而DOS的诞生源于IBM计划进入个人PC市场,并与1981年正式推出个人电脑,而微软则又在未告知自己正在与IBM谈判的情况下,靠关系找到了西雅图电脑公司,以据说是5万美元的价格向该公司购买了他们所开发的操作系统史称“世纪性的交易”,随后微软将该软件更名为PC-DOS,再授权IBM使用该操作系统。

据报道事后西雅图电脑控告微软在未告知事实的情况下以极低的价格购买该公司的产品,但是双方最终达成庭外和解。 无独有偶,微软发布Windows 1.0时,苹果电脑认为与其产品有相似的GUI,但两者达成一项许可,最终苹果授权给微软使用和再许可Windows 1.0派生作品的权利[注4]。

另一个标志性事件是1993年Windows NT3.1的发布,Pascal Zachary在《观止:微软创建NT和未来的夺命狂奔》一书中写道:“这个软件定义了未来软件的样子”。比尔•盖茨曾有句名言:“微软永远离破产只有18个月”,而NT内核的开发从1988年开始酝酿,1989年正式启动,最初的开发计划其实也是18个月,最终确历时将近五年时间,延迟了这么久还没有胎死腹中注定有着不同寻常的原因。

当时“史上最好的操作系统”VMS的负责人,后来NT内核负责人Dave Cutler曾说:“UNIX就是个由一帮博士设计的垃圾OS,整个系统背后的设计思想从来就没统一过,而且裸露在外”。而之所以会诞生NT内核,又与著名物理学家Stephen Hawking的得意门生,已经加入微软的Nathan Myrhvold一系列关于软件产业发展趋势的备忘录密不可分。

这份备忘录最终引起了盖茨的注意力,并下定决心要开始研发“UNIX杀手”,Myrhvold在这份备忘录中提出威胁微软印钞机DOS系统的两个致命毒药:新型芯片(RISC)和UNIX系统,同时也提出UNIX有个致命的弱点:没有通用版本存在。而这个问题某种程度上和Cutler的观点“简直是惊人的巧合”,后来正如大家所猜测的盖茨正式邀请46岁的 Cutler加入微软负责NT内核的研发。后来面向企业级市场的Windows NT和面向消费者市场的Windows 3.1(后来是Windows XP,包括IE团队)合二为一。

Microsoft NT不仅改写网络工程师的使用方式,网络系统也可以用鼠标来管理了,同时也重新定义了服务器操作系统的角色和功能,硬是把网络操作系统的主战场从Novell所擅长的、具有优势的领域,转移到了一个全新的、从未曾设想过的竞技场。虽然当时Novell一再宣称NDS领先微软好几代,但显然市场已经不太听得进去了。

配合全新的程序开发技术Visual Baisic,图形化的开发工具(同样Delphi很优秀、Clipper很优秀,FoxPro很优秀,dBase很优秀,Pascal很优秀,最后这些优秀的语言与工具在市场上全都败给了Visual Basic+Windows NT组合),最终帮助微软达成了从桌面操作系统的霸主延续到了网络操作系统的使命,而NT内核的成功也完成了帮助微软从微软/IBM联姻走向微软/Intel联盟的华丽转身,开启了一个新的帝国时代。

1994年成立的网景随后和微软展开了另外一场没有硝烟的战争,虽然战争胜负已分,但这场战斗对于开源也还是产生了深远的影响[注5]。而在IE打败网景之后,由于Windows NT和Windows 3.1的合并导致IE从一个战略级业务降级成Windows的一个应用软件,最终导致相关负责人、公司副总裁Brad Silverberg的离职。

如果这几个开源事件还只能算是微软内部公开的“小秘密”的话,那么1998年十月份 Eric Raymond 披露微软内部机密备忘录《万圣节文件》,可以算做是微软第一次公开它的“开源战略”。万圣节文件中微软将开源描述成一种“长期可靠”、“对微软的直接、短期收入和平台构成威胁”的开发过程,它承认“工业品质可以通过开源软件项目达成甚至超越”,其中还提出了微软应该如何对抗开源软件的建议,包括在公司内部引入开源的模式、高薪挖走开源核心人员等。

在PC时代微软凭借一个正反馈的循环开始趋动个人计算机市场,通过三种方法来增加微软操作系统的市场份额[注6],借着IBM的成功,而使自己的操作系统迅速成为行业标准,借助“UNIX杀手”成功推出了第一个通用操作系统,从而通过兼容性打败所有其他的操作系统(苹果公司甚至连自己的系统都不兼容)。

后PC时代移动为先云为先

2000年1月13日,Steve Ballmer 成为微软首席运行官,而盖茨为自己创立一个新角色“首席软件架构师”(Chief Software Architect)。也许是1998年网景的开源刺激了Ballmer ,所以Ballmer 一上台就迫不及待的发布了“Linux是颗毒瘤”的言论,导致十多年来微软一直被视为是Linux和开源社区的头号敌人。这种敌对局面直到Satya Nadella 14年接任微软新任CEO 公开宣布微软爱Linux才有所扭转。所以后PC时代微软的开源战略调整重点在Nadella 新政之后,其中又以过渡期的微软开放技术公司的成立,以及微软新的全球战略“移动为先,云为先”为主要标志。

2012年,微软开源了用来强化JavaScript开发大型应用程序的工具语言TypeScript,后来更被Google用于打造自家维护的下一代JavaScript应用程序框架AngularJS。2014年微软云端和企业部门执行副总裁Scott Guthrie在Connect()会议上正式宣布.NET核心将开源,包括.NET Framework 4.6、.NET Core 5、还有Runtime和编译平台Roslyn等。这不是微软第一次宣布产品开源计划,但却是最让全球开发者震撼的一次宣布。

要知道2008年时,当时担任.NET Framework部门总经理的Scott Guthrie宣布开放.NET架构链接库,让开发者可以浏览,但仍然不被开源社区认可,甚至被批评微软只是一种“假”开源,因为程序代码只能看而不能修改,只是为了扩大影响力,假开放之名,而行拉拢用户之实。这些开源动作,尽管引起高度关注,但还是难以说服开源社区,微软是否真的愿意认真拥抱开源。

依稀记得14年1月受邀参加微软全资子公司——微软开放技术公司落地上海剪裁时还亲自问过蒋博励总裁一个关于微软是否会加入OpenStack的问题,当时他的回答是“会以用户需求为主”。但微软成立又关闭了微软开放技术公司[注7]绝对可以看作是微软开源战略逐步成熟的一个标志。

据官方解释,在微软“移动为先,云为先”的战略体系下openness有两层含义:一个是开放一个是开源。开放是Satya的业务策略,这两年我们可以看到微软确实开放了很多,例如office放到苹果上,还提供Android的支持,开发工具也提供对iOS、Android、Windowsphone等跨平台支持。

而伴随着云正式成为微软战略核心,原有的软件license模式逐步向云端迁移,对于微软来说软件的程序代码只是软件其中一小部分的价值,更大的价值要靠开放的服务来实现。

我们知道比尔·盖茨于2008年6月27日完全退出管理层让位给首席运行官史Steve Ballmer 全权控制微软,08年盖茨离开以后,Windows Azure Platform发布,09年Windows7发布,12年发布Windows8,Satya Nadella 被任命为新CEO之后,Windows Azure更名为Microsoft Azure。2015年微软通过与 credativ 合作,将最流行的 Linux 发行版之一的 Debian 搬到了 Azure 云上,2015年末,微软还与 Red Hat 达成合作,将 Red Hat 企业版 Linux(RHEL)也搬到了 Azure 。到2016年1月,微软和 Canonical 展示了在 Azure 上运行 Ubuntu Linux 的第一个技术预览版,至此微软Azure 已经实现了对主流的 Linux 发行版的“兼容性”要求。

从商业的角度可能更能体现这种“兼容性”的杀伤力。目前从云服务收入体量来看Azure收入仅次于AWS,稳居第二。2016年还发生了一个标志性事件:波音开始为航空公司提供云服务,其中的实时数据采集、监控等服务是由GE提供的,而波音和GE的IT基础设施服务都是由微软Azure云提供的,这表明云服务正从中小企业和Netflix这样的互联网公司开始进去大企业、大工业。

另外根据微软管理层在FY16Q4的沟通会上透露的信息来看,预计Azure在17财年能够实现盈利,而去年微软在全球SaaS收入的份额中约占15%,超过salesforce(14%)。

对企业来说开源作为一个武器,无论是进攻还是防御,首先要考虑的都应该是商业的利益。微软帝国从PC时代崛起,经历了互联网时代的短暂迷惘,新的君主能够领悟到了开源的价值,转变战略乘云之势重回宝座不得不说是企业开源战略转型的一个典范。

微软开源大事记:

  • 1976年《致爱好者的公开信》by Bill Gates
  • 1998年《万圣节文件》by Eric Raymond
  • 2000年 “Linux是颗毒瘤“ by CEO Steve Ballmer
  • 2007年微软的开源许可证得到了 OSI 认证
  • 2008年加入Apache基金会成为白金会员
  • 2012年微软成立“微软开放技术有限公司(Microsoft Open Technologies Inc.)”,其主要目标是“推动公司在开放性方面的投入,包括互操作性、开放标准和开源”
  • 2014年 “微软爱Linux“ by CEO Satya Nadella,在上海成立开放技术的全资子公司,加入了OCP(Open Compute Project),在微软Build大会上成立.NET基金会,全力支持.NET平台上的开源研发与合作
  • 2015年微软关闭微软开放技术子公司(MS Open Tech)
  • 2016年3月在EclipseCon大会上 宣布 加入 Eclipse 基金会,11 月在微软公司的 Connect开发者大会上微软公司加入 Linux 基金会成为第11位白金会员,取得董事会席位,同时也宣布Google加入微软.NET开源基金会。

备注:

注1: 1995年7月17日,盖茨荣登《福布斯》全球亿万富翁排行榜榜首,个人财富为129亿美元,盖茨时年39岁。

注2:在《观止:微软创建NT和未来的夺命狂奔》一书中,NT内核的负责人David N. Cutler曾用它来形容研发NT内核的那段难忘岁月。

注3:微软公司赖以发家的BASIC软件依托于微型电脑”牛郎星”,诞生于1975年前后,售价不到400美元,世界上第一台装配微处理器的微型计算机,采用的是英特尔公司研制的8080微处理器。

注4:后来微软发布了Windows 2.0和Windows 3.0,苹果电脑认为这些版本超出了那项许可,侵犯了它的版权,于是提起诉讼。地区法院裁决因缺乏实际一致性(virtual identity)而不构成侵权。苹果的上诉被第九巡回上诉庭驳回。

注5: 网景( Netscape )公司宣布开放其浏览器软件的源代码,这一事件的影响在于,它开了原本闭源的商业软件转向开源模式的先河,此后逐渐有其他软件开始效仿,例如, Sun 将 Star office 开源并建立 Open office 项目。

注6: 《未来之路》:“第一种就是要使MS-DOS成为最好的产品。第二种就是帮助别的公司编写以MS-DOS为基础的软件。第三种是要确保MS-DOS价格便宜。”

注7: 2015年微软关闭了已经成立3年的微软开放技术子公司(MS Open Tech),该公司最初用于“引导微软在开放性包括互操作性、开放标准和开源上的投资”,不过微软高管将此举定性为微软开放技术“重新加入”微软而非关闭。

作者:杜玉杰,华为开源能力中心主任工程师,2015年负责华为Docker生态项目,推动成立OCI和CNCF基金会,目前负责华为IoT开源项目Huawei LiteOS 生态,前OpenStack基金会董事。 联系方式:https://about.me/yujie.du

本文链接:http://www.yunweipai.com/13197.html

网友评论comments

发表评论

邮箱地址不会被公开。

暂无评论

Copyright © 2012-2021 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部