互联网、移动互联网、云计算、人工智能、大数据、区块链、虚拟现实、无人机,所有这些热门方向都离不开同一个名字:开源软件。
开源软件是近二十年来推动科技产业进步的极其重要的推动力。

开源软件允许公众使用、复制和修改源代码。开放共享的灵魂核心类似于互联网。
与传统的闭源商业软件相比,开源软件集合了更多的集体智慧,具有更新快、扩展性强的优点,大大降低了软件企业的开发成本和客户的购买成本。
目前,开源软件已经广泛应用于许多领域。
很难想象如果没有开源软件,当前的IT行业会如何停滞不前。
本文综述了开源软件的概念、发展历史、应用领域、商业模式、典型公司、未来趋势和影响。希望能从另一个角度帮助你梳理整个IT行业的格局和趋势。
开源软件的基本概念
开源代码是开源软件的主要特征。
开源软件在网站上发布源代码,让公众可以下载、使用、复制和修改源代码,然后基于源代码发布软件。
开源软件对应的是商业闭源软件。这类软件的源代码往往不公开,用户只能在许可证允许的范围内使用软件。
根据OSI对开源软件的定义,开源软件应该满足十个条件:
自由再释放;源代码;衍生作品;源代码的完整性;不能歧视任何个人或群体;不能歧视任何领域许可证的发布许可证,不能只针对某个产品;许可证不能限制其他软件;许可证必须与技术无关。
开源许可证是开源软件分发的授权条款。如果软件被重新分发,不同开源许可的强弱决定了用户是否需要承认发起者的版权和所有参与者的贡献。
软件作品的权利包括署名权、修改权、复制权和发表权。对于大多数商业软件来说,软件的版权许可协议规定,用户只能安装和使用软件,不能任意修改、复制或向他人分发软件。这种版权叫做版权著作权版权。
对于开源软件来说,需要设立一个许可协议来保护任何可以免费获得软件源代码的人,并对其进行修改和分发。这个许可协议叫做Copyleft,也就是开源许可。
Copyleft也是对开源软件的限制,规定了源代码用户在修改和再分发时的责任。
目前世界上有很多开源许可。OSI网站上有50多个开源许可证。最受欢迎的是GPL,MPL,LGPL,麻省理工,BSD和APL。根据许可证的约束条件,授权可以分为三个层次:强约束、弱约束和无约束。
开源软件的优势
开源软件具有非常好的开放性,是集体智慧的结晶。与商业软件的盈利动机不同,开源软件的初心是解决问题。
为了解决一个软件开发问题,开源软件的源代码会发布在开源社区。开发者可以从开源社区下载开源软件,获取源代码,在开源社区发布之前进行复制、修改和完善。

开源社区的集体智慧给开源运动带来了蓬勃发展,并在开源发展过程中发挥了极其重要的作用。
典型的开源社区有GitHub、SourceForge、Stackoverflow等。
使开放和开源软件具有更好的安全性、扩展性和更快的更新速度。
因为任何人都可以在开源社区频繁修改和讨论软件的源代码,所以开源软件的漏洞修复能力和安全性比商业软件更强,而商业软件的强弱取决于开发企业技术团队的能力。
历史-从舞台的边缘到中心
开源软件起源于上世纪八十年代的软件商业化浪潮,在本世纪取得了巨大的发展。
在计算机出现的早期,几乎所有的软件都是开源的,包括最早的操作系统之一Unix。
当时的计算机企业主要销售的是整体产品,并没有具体区分硬件和软件。作为硬件的一部分,软件是被捆绑的,向用户提供源代码也可以缓解电脑企业的售后服务压力。
后来,当计算机公司开始只提供纯软件产品出售而不提供源代码时,引起了许多编程爱好者的强烈不满。传说中的“最后一个黑客”理查德·斯托尔曼就是代表人物之一。他推崇自由的黑客文化,极度厌恶软件的封闭性。1985年,他发表了著名的GNU宣言,成立了自由软件基金会,拉开了轰轰烈烈的开源运动的序幕。
1990年,Linus Torvalds模仿Unix开发Linux操作系统内核,开源软件逐渐开始兴起。由于其免费和免费,更好的竞争特性,比专有软件更容易部署,以及源代码提供的最大的可扩展性,吸引了许多大型企业的关注和应用。21世纪,云计算、大数据等高科技领域的发展,使得开源软件成为企业部署中不可或缺的一部分,达到了前所未有的高度。
前20年,传统软件企业压着它,发展缓慢。
开源软件前期发展缓慢的原因主要有两个:一是前期开发的开源软件还处于不断完善的过程中,客户对开源软件的性能、安全性和后续维护成本存在疑虑,因此采用开源软件的客户比例不高;第二,开源软件是由于对商业软件的不满,它的崛起会威胁到传统软件公司的利益,所以受到传统软件公司的挤压。
本世纪以来,特别是随着互联网的发展,开源软件的发展速度加快。
随着开源软件技术和产品的成熟,客户逐渐意识到开源软件在成本和性能方面的优势,接受度逐渐提高。同时,互联网的兴起使得开发者有了更快捷的在线交流平台,开源软件的开发进程大大加快。而且互联网时代的特点是场景更多、变化更快,这就需要大量易于扩展、成本较低的开源软件。
近年来,开源软件已经成为推动新兴领域技术发展的核心驱动力。
云计算、大数据等新兴领域近年来正处于高速发展阶段,开源软件发挥的作用已经明显被闭源软件碾压。Open stack、Hadoop等开源技术对行业的发展起到了技术推动作用。越来越多的企业使用开源软件搭建自己的云计算、大数据等技术框架,大大加快了行业的进步。传统的以盈利为目的的闭源商业软件很难承担类似的角色。
目前,开源模式在技术、产品和商业模式上已经成熟,并得到了众多企业的广泛关注和认可。越来越多的大型IT企业加入开源社区。调查显示,80%的软件开发人员正在使用开源工具。
在一项调查中,超过66%的受访者表示他们将优先考虑开源软件而不是专有商业软件,64%的受访者表示他们目前正在参与开源项目,87%的受访者预计未来三年将增加开源项目。据Gartner称,到2015年,85%的商业软件将使用开源技术。据预测,到2016年,至少95%的主流IT企业和组织将在其关键任务解决方案中直接或间接使用开源软件。在欧美等发达国家,很多企业使用开源软件,形成了独特的商业模式。比如谷歌的Android操作系统,从2007年第一次开源发布以来,就占据了智能移动操作系统的大部分市场份额,谷歌也通过Android操作系统在移动互联网这个新兴行业占据了领先和领先的地位。在实际应用中,开源软件的应用越来越广泛,逐渐渗透到各类软件中。在操作系统、数据库、Web应用开发、开发工具、手机开发、服务器软件、浏览器、游戏娱乐等领域,我们都能看到层出不穷的开源软件。
开源软件吞噬了传统软件业的商业市场。

从传统软件到开源软件的转变代表了当前软件行业的新趋势。传统软件业在过去的20年里没有取得突破性的进展,微软、IBM、甲骨文、SAP等商业软件巨头受到了日益壮大的开源软件的围攻和冲击。一直在开源软件上苦苦挣扎的微软,因为无法快速推出适应市场的Windows Phone操作系统,在移动互联网的竞争中处于劣势。Gartner的分析师认为,开源软件将成为各领域软件的主流,这将使整个软件行业摆脱困境。
在开源软件的冲击下,为了顺应潮流,一些闭源巨头也开始试水开源软件。一直反对开源的微软在2007年警告开源软件供应商起诉Linux用户侵犯其专利。短短几年,微软就走上了开放的道路,比如,向Samba项目捐赠代码,放弃自己多年的大数据项目,选择Hadoop作为自己大数据的核心。2014年被迫开源编程框架。网。GitHub 2016年9月的最新报告显示,微软在过去12个月中已经超过谷歌和脸书,成为开源代码库GitHub的最大开源贡献者,贡献了16419个开源项目。随着对Azure和云计算业务的重视,曾经的开源大敌微软对开源越来越青睐,包括与Canonical合作推出Ubuntu Windows 10。就连一向拒绝开源的苹果也在2015年底宣布自己的编程语言Swift code正式开源,并放在代码托管网站GitHub供更多开发者共同开发。如今开源已经到了空之前的盛况,因为对于企业来说,免费共享不仅会推动整个科技行业的发展,还会进步。这种双赢的模式很快就会成为科技产业发展的基本方式。
与此同时,开源也受到资本市场的关注,投资数量持续增长。一些开源公司筹集了大量资金,甚至许多超过1亿美元。从图8可以看到,2014年融资金额排名前十的开源公司名单,前三名依次是数据巨头Cloudera、Hortonworks和MapR,它们都是文件系统公司,通过商业Hadoop软件框架以分布式的方式处理大量数据。还有两家数据库公司,MongoDB是高性能、开源、无模式的文档数据库,DataStax是知名开源软件公司。MuleSoft主要提供连接SaaS和企业应用云解决方案的集成平台。
图9在十大开源MA案例中,安全厂商Sourcefire、基础设施软件提供商Novell和小型关系数据库管理系统MySQL的估值都超过了900万美元。
没有互联网时代,开源技术不可能得到这么好的发展。开源软件自1980年诞生以来,近20年的发展并不顺利。但2000年以后,互联网时代的开放共享与开源软件的开放、免费、共享特性不谋而合,为开源软件的发展提供了一个极好的平台。在互联网上,借助在线开源社区平台,全球开源爱好者开发出了许多优秀、成熟的开源软件,它们并不逊色于传统的商业软件,甚至在某些方面已经超越了商业软件,成功地在市场上占据了自己的一席之地。反过来,开源技术的发展给互联网公司带来了巨大的利益。借助开源技术,企业支持互联网网站,以极低的成本自主控制互联网的运行,培养自己的技术团队。比如LAMP已经成为web架构中的主流平台,Android推动了全球移动互联网的快速发展。这些开源软件的成熟发展成功推动了整体IT技术的发展,给软件行业带来了更丰富、更开放、更元的革命。


