开源软件简史(三)


一铭云社区www.emindos.org作为开源技术性社区的讨论研发项目之一,为更多开源爱好提供一个探索、使用、交流的技术型平台。还有安卓技术QQ讨论组612724733,更多技术大咖期待你的参与!


微软与开源的攻守战

微软和开源社区的恩怨由来已久,最早可以追溯到家用计算机俱乐部的公开信那时,之后双方陆陆续续发生过几次擦枪走火的事件。

开源软件简史(三)1.jpg
开源软件简史(三)2.jpg
Windows 退款日上的游行者

1999年2月15日是一个特殊的日子,它被开源软件者们称为“ Windows 退款日”。这一天几百名来自硅谷 Linux 用户组、 FreeBSD 社区的开源软件爱好者们高举横幅游行到旧金山湾区的微软办事处,要求微软为他们未使用的机器上的 Windows 操作系统退款。事情的起因源于一名澳大利亚的用户在新购置了一台电脑后仔细地阅读了几乎不会有人看的 Windows 操作系统用户协议,发现其中包含了“如果软件未被使用,你可以得到退款”的条款,于是他便带着他未使用的机器成功拿到了退款。与今天一样,当时微软的垄断地位已足以使它把 Windows 预装在其他厂商生产的每一台计算设备上,我们在购买它们的时候也间接地向微软支付了操作系统的授权费。开源社区的人们认为,预装的行为实际上剥夺了人们自由选择操作系统的权利,因为即使你购买电脑时就打算换上别的系统,你依然向微软支付了授权费。微软的代表早早准备好出来与他们交涉,当然没有取得很多进展,于是大家打算继续前进,直接上到他们的办公楼里,只不过害怕被乱搞一番的微软方面早已经把通往他们所在的九楼的楼梯通道和电梯都封闭起来了。尽管这一天结束之时,微软的工作人员并没有掏出支票簿兑现他们的退款,但他们的努力依然取得了一些成效——设备生产商开始提供未预装系统的计算机。

面对开源软件的汹汹来袭,微软开始了它的反击。2001年其推出了一项“共享源代码”计划,依据这项计划,独立开发者在开发系统级的软件时可以申请查看他们所需的源代码,政府和单位出于信息安全的考虑也可以要求审查源代码,而教育研究机构在进行科研时亦可以申请获得源代码的支持。在外界看来,这也许是微软向开源模式低头的表现,但微软内部依然是抗拒开源模式的,微软高管 Craig Mundie 在纽约大学商学院的一次演讲上提到:“共享源代码计划仅仅是吸收了开源模式的优点,例如提供有效反馈以及 Bug 修复、可定制等。实际上,(开源模式)要求开发者把他们辛勤工作产出的最具价值的结果无偿提供给人们,转而希望他们能通过提供一些诸如技术支持之类的其他东西来养活他们自己,这是对独立软件的持续发展的最大扼杀。” 虽然受到不少批评,但“共享源代码”计划时下依旧在运作着,其还推出过获得 OSI 认证的 Ms-PL 授权许可。

两年后,为了推广精简版的 Windows XP ,比尔盖茨多次访华,同时与中国政府签署了“政府源代码备案计划协议”,盖茨还亲自向江泽民汇报。从微软的资料来看,政府源代码备案是一项全球性的计划,旨在让政府和其关联的备案单位通过可控的方式查看微软的源代码和相关的技术信息,使政府部门能对 Windows 的安全性做一个全面的评估,强化双方的合作。只不过,微软方面并没有对“可控的”一词做出进一步解释。

尽管微软多管齐下,出于降低成本和对安全问题的考虑,尤其是棱镜门事件曝光之后,多国政府也开始对开源软件给予支持。法国近年来一直在大力发展开源软件,曾向高校学生免费派发了 175000 份装有开源软件的 U 盘,并不断釆取优惠的措施扶持开源软件厂商。德国外交部将它的11000台电脑全部换成 GNU/Linux 和其它开源软件,这一举措使外交部相比其它部门大幅减少维护费用。美国纽约州立法院则修改当地税法,对开源软件开发者进行个人所得税补贴(减免20 %)。中国政府在《软件和信息技术服务业“十二五”发展规划》中亦提出要把开源软件作为扶持发展的对象。同时,中央采购中心在14年发函通知,禁止采购安装 Windows 8 的计算设备,中国邮政随后采购了上万套定制版的国产红旗 Linux 操作系统用于门店收银的电脑上,用于取代老旧的 Windows XP 。

2008年 Google 发布基于 Linux 内核的开源安卓系统,随着 HTC 推出第一台安卓智能手机,其开放的生态吸引了许许多多优秀的开发者,可定制性也成为许多厂商选择其的原因,市场的选择使安卓系统接二连三地打败了曾经流行的塞班、黑莓等对手,逐步成为最流行的操作系统,时至今日安卓已经拿下了智能手机操作系统份额的70%。而微软由于战略失误,在移动平台反应一直比别人满半拍,当全触屏智能手机已经成为市场主流时,才匆匆地推出了自家的 Windows Phone 操作系统。只是,由于应用稀少,功能不完善, WP 目前只在不到3%的智能手机上运行着。开源社区在这次竞争中大获全胜。

不过,微软在桌面系统领域的霸主地位却一直是无人能撼动的, Windows 操作系统在统计数据中一直占据着桌面系统90%以上的份额,而 Linux 只被2%左右的桌面用户所接受。2013年微软推出 Windows 8.1 系统更新,紧接着的是搭载了该系统的 Surface Pro 3 这款重新定义移动生产力的产品,同时微软还宣布取消小于9英寸屏幕的 Windows 平板的授权费,于是大量搭配英特尔低功耗处理器的 Windows 平板上市,也因为其相对低廉的价格和 Windows 平台多年累积的丰富应用给安卓平板和 iPad 造成有力的冲击。2015年7月,微软开始了为期一年的免费升级正版 Windows 10 的服务,抢占了更多市场份额。 Linux 则在其他的领域发力:目前世界上97%的超级计算机跑在 Linux 上,包括天河二号、 IBM 蓝色基因等;60%的网站,包括 Google 、 Facebook 等最流行的网站选择 LAMP 组合的服务器;机器人、物联网、无线电……

开源软件在这些年的发展中一路高歌猛进,取得了不小的成就。但也不能因此而沾沾自喜,毕竟桌面系统这块兵家必争之地依然受到微软垄断阴霾的重重笼罩,而 Linux 系统给人的印象也依旧离不开“程序猿专用”、“命令行”、“复杂难用”等,在桌面版本上, Linux 依然还有很长的路要走。

微软拥抱开源

开源软件简史(三)3.jpg

微软在2014年的云策略发布会上大胆喊出了“微软爱 Linux ”的口号,这在鲍尔默掌权微软的时代是难以想象的,在他口中“开源就是一个毒瘤,谁碰上了都要倒霉。”那么这对昔日的仇家如今怎么走向合作了呢?新任 CEO 纳德拉的上台及其提出的新的发展战略是一个关键的转折。

在盖茨、鲍尔默时代, Windows 被视为微软的业务核心,他们要做的就是如何让客户更多地购买他们的光盘和授权,而在他们的思维中互联网是次要的,IE浏览器糟糕的体验就一直被人吐槽。一晃二十多年过去了,微软赢得了桌面操作系统的胜利, Windows 操作系统依然运行在数以万计的 PC 设备上。但今天是一个移动互联网的时代, PC 市场正在不断地萎缩,与此同时,苹果和 Google 这样的竞争对手逐渐崛起,他们在互联网、移动互联网、云服务甚至物联网构筑起成熟的生态,而 Linux 则在服务器及超级计算等高精尖领域把微软打得落花流水。醒悟过来的微软亡羊补牢,可惜为时已晚,移动端的 WP 只取得3%的惨淡份额就是最好的证明。

也许是在互联网和移动计算时代输得太惨,纳德拉接替鲍尔默执掌微软后,微软的战略从模仿苹果的“设备和服务”变成了“平台和效率、移动优先云为先”。

原云服务部门的纳德拉,担任 CEO 之后的第一个举动,就是将微软云计算服务 Azure 之前的“ Windows ”字样果断取掉,在此之前 Azure 平台只能运行在自家的 Windows Server 操作系统上。在他看来,无处不在的“ Windows ”印记,是 PC 时代思维的遗留,在云计算和移动互联网时代,微软的云服务不应该在束缚在 Windows 的“高墙”之内。随后,微软陆陆续续地与相关公司开展合作,将 Debian Linux 、 Red Hat Linux 和 Ubuntu Linux 一批最先进的 Linux 发行版本带到 Azure 平台上。目前,在 Azure 云平台上已有50%以上的虚拟机运行着 Linux ,用他们的话来说,“识时务者为俊杰”,这些举动让有特殊需求和喜好的客户在选择产品时留有更大的余地,对提高微软自身的竞争力无疑是有帮助的。

实际上,早在2009年微软就曾向 Linux 内核贡献了超过两万行代码,这些代码大大增强了在 Windows Server 2008 Hyper-V 上运行 Linux 操作系统的虚拟机的性能,甚至让微软在一段时间内在 Linux 内核贡献数量榜单上排名第一。

除此之外,微软还在开源这条路上走得更远。微软为开源的开发者提供基于开源、免费的代码编辑器 Visual Studio Code ,支持主流的30几种编程语言,任何人可下载其源代码依个人喜好进行定制,并可在 Windows 、 Linux 与 Mac 环境上运行;微软也将Windows下广受开发者喜爱的应用框架.NET Framework的核心部分开源,称为.NET Core,支持 Windows、Linux与iOS不同的操作系统,既开源也跨平台,已经成为GitHub上最受欢迎的开源项目;在收购了Xamarin 后,微软宣布将这一移动跨平台开发技术免费开放给开发者使用,这将实现“一次开发,多平台部署”的美景,单一开发者就能够开发 iOS 、 Android 与 Windows Phone 的原生 App ,企业不再需要为一个 App 养着3个开发团队了;另外,微软具有核心竞争力的数据库产品也将推出 SQL Server 2016 For Linux 版本,尽管目前该产品依然处于测试阶段,是否收费也尚不清楚,但这对于推动服务器间建立持续一致的数据平台来说是利大于弊的; Ubuntu Bash on Windows 项目则将 Linux 上最重要的命令行组件带到了最新的 Windows 10 上,这意味着大量 Linux 上的开源开发工具可以直接运行在 Windows 上面了。

在跨平台上也可以看得出微软所投入的心血。 Office 原本是作为 Windows 的杀手锏之一,而在最近我们看到 iOS 版本 Office 推出,同时安卓版的 Office 也实现了免费。甚至,在 iPad Pro 的发布会上,微软的高管还应邀为对手站台,现场演示 iPad 版 Office 应用。 Cortana 智能语音助手, Outlook 邮箱,必应输入法也纷纷登陆了对手的平台上,使更多用户能在不同的平台上享受微软服务的一致体验。

2014年9月,微软预览体验项目( Insider Program )随着 Windows 10 的第一个技术预览版本一起面世,致力于为喜欢尝鲜的用户迭代推送包含最新功能、处于测试阶段的微软产品,并通过一个“反馈中心”的程序让用户提交他们的使用体验及错误报告。对于微软的转变,内部高管 Terry Myerson 表示:“这样做可以带来更开放的开发模式,社区中的每个人都可以参与其中,并通过提出建议、提交代码、修正错误、开发新功能等方式来提交反馈,我们认真听取这些反馈,并有可能采纳建议或合并代码到我们未来的产品中。”

开源软件简史(三)4.jpg
萨蒂亚·纳德拉

纳德拉则说:“营收属于落后指标,而使用率才是领先指标。”在这一指标的引导下,微软大力拥抱开源,培养多元化的生态系统,从微软云 Azure 到 Windows ,从开发工具到数据库平台,这些举动表明其不再死守 Windows 不放而选择开放性。当然,这也给它带来了新的机遇。开源意味着它能够收到来自社区的反馈和改进,而跨平台则使其能够向更多的用户兜售其服务,以 Office 为例,其收费模式已经从传统的“一次购买,终生使用”,转向“包月、包年购买使用权”了,从长期看这无疑有益于推动其营收。

对于微软此番大胆秀恩爱的举动,开源社区的人有话要说。首先,这显示出开源的力量,开源社区一直引领网络服务平台最先进的技术,需要和想要使用 Linux 服务的付费客户占市场大多数,微软意识到如果他们不能提供 Linux 虚拟机,那些客户就会转而选择其他厂商。正如美国的一句俗语说的,“如果无法战胜你的敌人,那么就拥抱他吧”。说到底,微软还是那家商业至上的公司。这次的行动也引发了一些担忧:“ .NET Framework 确实是一个优秀的框架,在跨平台、开源模式的加持下将帮助其更加完善,因而吸引越来越多的开发者使用它。但是,开源社区的一个很明显的问题是,很多项目都活不长,开发者在丢出最初几个版本后就弃坑的项目比比皆是。 .NET 的广泛采用可能意味着与之竞争的开源项目会走向消亡,最终迫使我们都跟着微软的指挥棒转。”从这个方面来看,微软的开源对于开源社区来讲也许不是什么好消息。

从目前来看,开源因其开放和协作而逐渐登上历史的舞台,微软也正顺应着潮流开发更多的开源软件。在开源软件的影响下,还出现了以 Ardunio 为代表的开源硬件、配方开源的饮料、开源设计、开源政府、开源医药、开源艺术、开源教育等等运动,未来究竟会是个什么样子还很难说,但以微软为代表的闭源软件目前还有着强大的生命力,人们喜欢闭源软件漂亮的 UI 及其易用性,企业青睐集成化、统一的解决方案,开发者在使用着最新的开源 Docker 、 Hadoop 等技术的同时,依然依赖着闭源的 Xcode 、 Slack 等,而开源也还存在着不够平易近人的问题。或许未来人人都会编程时,开源就真的成为了世界的唯一标准,不过读到这篇文章的人中估计也没有几个正打算去学编程的。所以说,开源和闭源其实没必要太过较真,双方各有其优点与不足,两者长期共存、互利共惠的局面还将持续下去。

现代企业需要充分拥抱两个世界。 Google 、 Facebook 和 IBM 用他们自身做了一个成功的示范:他们证明利用开放源码也可以让你的午餐留在盘子中。

小补丁:

  • BSD 模式 vs. Linux 模式:虽然 BSD 也会与外界互动,但 BSD 不过多依赖外界的代码,大部分的工作依然由核心团队完成;而 Linux 则是真正的大规模协作,参与人员可达几千、几万人。

  • BSD 授权 vs. GPL 授权: BSD 授权模式允许被授权的用户以源代码或者二进制的形式发布修改过的或未修改过的代码,也可以利用其营利,并且也不需要将代码回馈给社区,唯一要求是在源代码文件中原封不动的保留 Berkely 的版权声明,并且在含有以上代码的其他产品文档中声明其产品包括来自于加州大学和其他贡献者的代码。BSD 授权基于用户高度的自由,许多商业用户在选择开源软件时都首选 BSD 授权的软件,因为他们可以把这些代码集成到他们的闭源软件中。与之相比, GPL 的限制则多得多,使用 GPL 代码的软件也必须是开源的。

  • Unix 与 Unix-like (类 Unix ): The Open Group 在将 Unix 的商标收归旗下之后,为了解决市面上 Unix 和类 Unix 系统混杂的情况,基于 POSIX 标准制定了 Single Unix Specification (单一 Unix 规范),只有通过这一规范认证的系统才能使用 Unix 的商标。目前通过 Unix 认证的有: IBM 的 AIX 和 z/OS ,惠普的 HP-UX , Oracle 的 Solaris ,苹果的 OS X ,国内厂商浪潮的 K-UX 。除此之外的 Linux 、 FreeBSD 、 Minix 等在外观或功能上类似于 Unix 的系统皆可称为类 Unix 系统,需要注意的是,他们都不包含任何的 Unix 源代码。

  • Darwin / Mac OS X : 2001年发布的 Mac OS X 基于 Darwin 内核,而 Darwin 基于 FreeBSD 和 Mach 3 。与其他的 BSD 不同,虽然底层内核是开源代码,但 OS X 其他软件大部分是闭源的苹果代码, Aqua 图形用户界面是最突出和引人注目的项目。手机版的 iOS 亦是基于 Darwin 内核。苹果在 BSD 基础上开发了 Mac OS X 和 iOS,这样他们就不必写操作系统底层,就像 Google 在 Linux 基础上开发 Android 系统一样。

  • 商业软件、开源软件、共享软件:商业软件一般是闭源的,但也有部分开源,收费会相对高一些。开源软件则如其名字,开放源代码。共享软件则指虽然不收费,但是也不公开源代码的软件。


一铭云社区www.emindos.org作为开源技术性社区的讨论研发项目之一,为更多开源爱好提供一个探索、使用、交流的技术型平台。还有安卓技术QQ讨论组612724733,更多技术大咖期待你的参与!

注:本文转载自LinuxStory,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

评论



失眠的布谷鸟:03月21日 09:23
为什么感觉现在的社区死气沉沉的.....

分享

最新加入

最新评论

yesujiduaini020: 建议推出安装OPENTHOS台式机的组装方案 查看原文 10月13日 13:06
ymcsme: so easy 查看原文 06月29日 20:50
Mr.wang: 来关注下~~ 查看原文 06月06日 16:32
emindme: 赞赞赞~~~ 查看原文 06月06日 16:28
emindos: 这个不是早就签署了吗 查看原文 06月06日 11:30
返回顶部