带你详细了解,开源软件的前世今生

当人们购买手机时,首先考虑的便是相机、屏幕尺寸或其存储功能,很容易忽略这些时尚消费产品的最核心的东西之一:它们的操作系统。世界上最受欢迎的手机操作系统当属谷歌的Android。据统计,全球超过86%的智能手机都使用了Android操作系统。而Android系统是基于开源的Linux操作系统,这意味着任何人都可以查看、修改和分享绝大多数智能手机的核心代码,正是这种开放性,极大的促进了Android系统的协作和发展。

这与微软的Windows系统(微软独自开发与维护)有极大的不同, Linux由全球超过15,000名程序员共同开发和维护。这些程序员来自不同的公司 、不同的地域,他们有可能为竞争对手的公司工作,也有可能只是出于爱好或者自愿创建新的东西,然后免费分享。

开源的现状

现如今,开源软件正在被一些传统的科技公司所接受和推崇。IBM以340亿美元的高价,收购了Linux开源软件公司Red Hat;微软以75亿美元收购了代码托管和协作平台GitHub;甚至连零售巨头沃尔玛,也发布了自己的开源软件……

开源软件在时下流行的人工智能(AI)领域,亦有很多经典的案例。Google 于2015年便开放了其人工智能引擎TensorFlow,使其他公司和研究人员能够使用其搜索引擎用来创建搜索照片,进行语音识别和机器翻译等。从那以后,Dropbox使用TensorFlow识别扫描文件和照片中的文字,Airbnb用它来帮助对其列表中的照片进行分类,一家名为Connecterra的公司用它来帮助奶农分析奶牛的健康状况。

谷歌为什么要放弃对其业务至关重要的东西?因为它希望外部开发人员能够根据自己的需求调整软件。Google表示已有超过1,300名外部人员参与了TensorFlow的开发和贡献。通过将其作为开源,Google帮助TensorFlow成为开发AI应用程序的标准框架之一,这可以支持其云托管的AI服务。除了获得项目的外部帮助外,开源还可以提供有价值的营销,帮助公司吸引和留住技术人才。

值得注意的是,Google并没有泄露为其AI应用程序提供支持的核心数据。这也避免了使用TensorFlow就去构建可与Google竞争的搜索引擎和广告业务。因此,Google依旧是受益者,为什么有很多人会对TensorFlow做出改进呢?这是因为,如果有些公司只是使用一些特定的版本来定制自己的TensorFlow版本,而不是将这些东西分享,随着时间的推移和Google对TensorFlow进行了的迭代,这个公司便很容易错过一些重要的功能,其它人也无法从你的定制版中获得收益。相反,如果每个使用者都能讲自己的好东西拿出来分享,那么受益的也会是所有人。简而言之,开源为公司提供了一种互惠互利的技术合作方式。

开源的兴起

开源源自于一项独立的“自由软件”运动。1983年,麻省理工学院人工智能实验室的一名程序员理查德·斯托曼(Richard Stallman),创建了一个免费的Unix操作系统替代品GNU(GNU’s Not Unix! 的递归缩写)。

对于Richard Stallman来说,“免费”软件的概念不仅仅是提供软件。它是关于确保用户可以随意使用他们认为合适的软件,免费研究其源代码,可以根据自己的目的自由修改,并可以自由地与他人共享。Richard Stallman在一个名为GNU公共许可证(GPL)的许可证下发布了他的代码,该许可证保证了用户这四种软件自由。GPL是一种“病毒性质”的许可证,这意味着任何根据GPL许可的代码创建软件的人也必须在GPL许可下发布该衍生代码。

重要的是,许可证不禁止公司销售GNU软件的副本。只要您允许客户共享您的代码,您就可以根据需要为软件收取费用。“free as in free speech, not free as in free beer”。

后来,有很多程序员也加入了“自由”软件的行列。其中最著名的就是是Linus Torvalds,他是1991年创建了Linux操作系统的芬兰程序员,后来被称为“Linux之父”。Linux是一个“内核”,是操作系统的核心,它与硬件对话并翻译键盘、鼠标的基本输入,或触摸屏软件可以理解的东西。GNU当时缺少一个完整的内核,因此许多GNU用户将GNU和Linux结合到一个功能操作系统中。GNU操作系统,Linux内核和其他工具的捆绑被称为GNU / Linux发行版; 一些纯粹主义者仍将基于Linux的操作系统称为“GNU / Linux”。不久,像Red Hat这样的公司便依靠出售对Linux这样的开源软件的技术支持而赚钱。

Linux或GNU / Linux在运行Web服务器时特别受欢迎,现在运行69.4%的Web服务器。随着Linux和 络的兴起,还有其他一些免费工具,包括Apache Web服务器,MySQL数据库以及Perl和PHP等编程语言。许多人使用GPL许可证,但其他许可证采用了更宽松的许可证,与GPL不同,它允许公司使用他们的代码创建专有产品。

在2000年代,开源成为真正的主流。2004年,程序员David Heinemeier Hansson发布了他的Web应用程序编程框架Ruby on Rails,它迅速成为世界上最重要的Web开发工具之一,也是TwitterKickstarter等服务的基础。与此同时,雅虎也资助开源数据处理系统Hadoop的开发。自2006年发布以来,包括FacebookTwittereBay在内的其他公司开始为该项目做出贡献,帮助展示了公司间合作的价值。Sun Microsystems在2008年以10亿美元收购MySQL,证明开源可能是一件大事。同年谷歌发布了第一款Android手机,将开源从服务器转移到了大家的口袋里。

现在开源几乎无处不在。沃尔玛使用开源平台Node等开源软件,并开辟了云管理工具OneOps及其开发平台Electrode的代码。摩根大通开放了其区块链平台Quorum,其员工与隐私权比特币替代Zcash的创建者合作。即便是微软,其前首席执行官曾称 Linux为“癌症”,现在也使用和发布开源软件,如其流行的.NET编程框架。它甚至使用Linux来运行部分云服务Azure,并共享了自己的Linux工具 与 区。


词汇表

  • 源代码 将人工可读的代码翻译或“编译”到机器可以读取的二进制代码中。当您购买Microsoft Office等软件时,通常只会获得二进制代码,这使得难以理解或修改软件。
  • 开源软件 随开源许可证分发的软件,允许任何人使用,查看,修改和共享软件的源代码。
  • GPL GNU公共许可证,允许任何人使用,查看,修改和共享项目源代码的软件许可证; 但是,使用代码创建衍生作品的任何人也必须在GPL下提供该作品的源代码。
  • Apache 一种开源Web服务器,一种软件基础和一种许可许可,与GPL不同,它允许将源代码混合到非开源的商业代码中。
  • 开放核心软件 基于开源软件构建的商业软件,其中还包括非开源代码。
  • 通常是较小的代码集合,可以用作大型项目的构建块,从而使开发人员不必从头开始编写常用功能,例如密码验证。
  • Fork 代码库的副本,用作不同版本软件的基础。个人或公司经常使用叉子来定制软件以满足他们自己的需要。其他时候,它们成为单独项目的基础。例如,Libre Office是Open Office的一个分支。
  • GitHub 微软现在拥有的一项流行服务,用于托管代码。提供只需单击即可分叉代码库的功能。
  • 时间轴

  • 1969年8月 Ken Thompson和Dennis Ritchie 在AT&T的贝尔实验室创建了Unix操作系统。它不是开源的,但它们使源代码可用。
  • 1983年9月 Richard Stallman 宣布他正在开发一种名为GNU的Unix免费替代品,它不需要AT&T的许可。
  • 1991年8月 Linus Torvalds 宣布他“正在做一个(免费)操作系统(只是一个爱好,不会像gnu那样大而专业)。” 该操作系统将被称为Linux。
  • 1995年4月 前WIRED 站开发人员Brian Behlendorf和另外8人发布了第一版Apache Web服务器 – 带宽由WIRED 赞助。该项目的许可许可帮助大公司赢得了开源。Apache 仍然是当今最受欢迎的Web服务器。
  • 1998年2月 Christine Peterson 在峰会上介绍了“开源”一词,以促进代码共享和协作
  • 1999年8月 红帽,其售价为Linux支持的公司,上市后有一个成功的IPO。它将继续成为第一家年收入达10亿美元的开源公司。但其巨大的发薪日尚未到来。
  • 2001年6月微软首席执行官史蒂夫鲍尔默在接受芝加哥太阳 采访时称Linux为“癌症” 。
  • 2004年7月 Ruby on Rails 的第一个版本,这是开源开发平台,无数初创公司使用它,包括早期的Twitter。
  • 2008年1月 Sun 以10亿美元收购开源数据库制造商MySQL。
  • 2008年10月的第一款Android手机,T-Mobile的G-1,上市销售,使Linux操作系统群众。
  • 2012年6月作为恢复与开源世界关系的长期努力的一部分,微软宣布在其云服务Azure上支持Linux。
  • 2014年11月 微软宣布其.NET编程框架的开源版本。
  • 2018年10月 数据库公司MongoDB 采用新的许可证,限制云服务如何使用其软件,因为开源软件商业许可的争议越来越大。
  • IBM 2018年10月宣布计划以340亿美元收购 Red Hat。

  • 开源的未来

    尽管企业界对开源软件的支持,但许多独立或基于开源的项目仍然没有找到如何赚钱的方法。即使是主要公司广泛使用的软件开发商也很难筹集资金来支付他们的费用或雇佣他人。这可能会产生严重后果。

    与此同时,初创公司正在研究利用开源获利的新方法。Red Hat通过出售对其开源产品的支持来赚钱,但这并不是对每个开源项目都可行的。一家名为Tidelift的公司甚至通过提供开源项目的技术支持的订阅来赚钱,可以把它想象成“Netflix for open source”。

    还有一些问题,便是备受瞩目的Linux之父Linus Torvalds公开道歉的那样,他倾向于指责其他Linux贡献者,喊他们为名字或辱骂他们。因为创造了“有毒”的开发环境并使该项目不受女性,少数民族或其他代表性不足的群体的欢迎而受到批评。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年3月20日
    下一篇 2019年3月20日

    相关推荐