目录
- 一、开源软件
- 开源领域的两大组织:FSF和OSI
- 二、开源许可证
- 开源意味着免费吗?
- 三、开源技术应用领域
- 四、总结
一、开源软件
开源即开放源代码,他的核心是源代码公开,任何人都可以查看、使用、修改和分发。与之相对的是闭源,闭源代码就是普通的商业版权软件,代码是封闭的,只有作者才能看到,出了问题也只有自己能修改。
举个栗子:
某一天你在一家餐馆吃到了一道超级好吃的美食,这份食谱是由餐馆大厨秘制的,你想要学习这道美食,但你无法获得这份食谱。这就是闭源。突然又一天,这位大厨将这份食谱进行公开,允许任何人查看、学习、修改并分享这份食谱。这样,你可以轻松地获取这份食谱,根据自己的口味进行修改,并与其他人分享你的改进。这就是开源。
类比到软件领域,如果一款软件是闭源的,那么它的源代码是由软件公司或者开发者所拥有,用户无法查看、修改和分享源代码。而如果一款软件是开源的,那么它的源代码是公开的,任何人都可以查看、学习、修改和分享源代码。
闭源软件:Windows、Microsoft Office、IOS等
开源软件:安卓系统、Linux操作系统等
开源领域的两大组织:FSF和OSI
在开源发展历程有,有一些公益组织在推广和发展开源软件方面发挥着重要作用。其中具有代表性的2个组织是FSF和OSI。
FSF即自由软件基金会(Free Software Foundation),1985年由GNU计划的创建者Richard Stallman创立,FSF主张自由软件是必须100%提供源码,但是“自由软件”并不是完全免费,发布“自由软件”的作者可以选择适当的收费(收费价格需合理),也可以免费。
OSI即开放源代码促进会(Open Source Initiative,开放源代码促进会),1998年创立,OSI认为“自由软件”对于个人开发者来说很喜欢,但是对于企业来说想继承发展“自由软件”会有一些顾忌,因为使用了“自由软件”的源码,新的项目的源码也需要公开,许多商业公司是不愿意的。OSI目的是在原教旨主义开源与软件工业/商业之间激烈矛盾中,寻求更平衡的体系和治理机制。OSI通过制定不同的开源许可标准,让商业公司也可使用开源软件,而不必公开其源代码,从而推动开源软件的发展。OSI认证的开源软件许可证已经成为开源软件界的标准,目前OSI 组织批准过的许可大概有 90 种,包括 Apache License v2、GPL v2、MIT/BSD 等。
二、开源许可证
在说开源许可证前,我们先来学习学习关于版权的一些专业名词
● Copyright:著作权,指软件的著作权(也称版权)和其它一切权利归软件作者所私有,用户只有使用权,没有其它如复制、重新修改发布等权利。
● Copyleft:著佐权,指仅有著作权归原作者所有,其他一切权利可以与任何人共享。即通过许可证的形式,补足、辅佐著作权(Copyright)不足的版权授权,相当于一种权利与义务的契约。
● Permissive(宽松自由软件许可证):是一种对软件的使用、修改、传播等方式采用最低限制的自由软件许可协议条款类型。这种类型的软件许可协议将不保证原作品的派生作品会继续保持与原作品完全相同的相关限制条件
Copyleft与Permissive最大的区别在于:在软件被修改并再发行时, Copyleft许可协议要求软件不得用于商业性质的活动,且不得闭源(后续的衍生子软件也得遵循该条款),而 Permissive许可协议不要求公开源代码(衍生软件可以变为专有软件)。
● Creative Commons(CC:知识共享协议):是一种开放式版权许可协议,旨在让创作者能够授权其他人在特定条件下使用他们的作品,通常用于数字内容,如文章、图片、音乐等。CC有多个版本,每个版本包含一些了授权条款,这些条款包括以下4个方面:BY(署名)、NC(非商业性使用)、ND(禁止演绎)、SA(相同方式共享),创作者可以自由选择和组合。
说回到开源许可证,开源许可证是规定开源软件如何使用和分发的法律条款。开源许可证通常包括一些基本条款,如允许复制、分发、修改和使用源代码等。常见的开源许可证可以分为两类:著佐权许可证和宽松自由软件许可证。
最常见的开源许可证包括以下几种:
-
GNU通用公共许可证(GPL):这是最广泛使用的开源许可证之一,也是最为严格的许可证之一。GPL要求使用和分发该软件的任何衍生品必须遵循相同的GPL协议,同时公开源代码。
-
MIT许可证:是一种较为宽松的开源许可证,允许用户修改和使用软件的源代码,而且可以把软件用于商业用途。MIT许可证规定必须在软件中包含版权和许可证声明。
-
Apache许可证:Apache许可证是一个由 Apache软件基金会发布的自由软件许可证,是一种常见的开源许可证,它允许用户修改和使用软件的源代码,并且可以用于商业用途。Apache许可证还规定必须在软件中包含版权和许可证声明。
-
BSD许可证:这是另一种宽松的开源许可证,它允许用户自由地使用和修改软件的源代码,并且可以用于商业用途。BSD许可证没有要求衍生产品必须使用相同的许可证,也没有要求公开源代码。
以上介绍的4中许可证,其中GPL属于典型的著佐权许可证,MIT、Apache、BSD 都是宽松许可证。
除了以上这些许可证,还有其他的开源许可证,如Mozilla公共许可证、Eclipse公共许可证等。每种许可证都有其独特的条款和规定,使用者在使用开源软件时必须熟悉和遵守相应的许可证。
开源意味着免费吗?
虽然开源软件可以免费下载和使用,但并不是所有的开源软件都是免费的。有些开源软件的许可证允许商业使用和分发,而且可以收费。比如,Red Hat企业版Linux是一款开源操作系统,但它的商业版本需要收取许可费用。还有一些开源软件的许可证规定,使用该软件的衍生品或修改版本必须遵循同样的开源协议,必须在源代码的基础上继续开放源代码。
三、开源技术应用领域
-
云原生技术:随着云计算的普及,云原生技术已成为了当前开源软件发展的重要趋势。Kubernetes、Docker等开源项目已成为云原生技术的代表。
-
人工智能:开源软件在人工智能领域的应用也越来越广泛,例如TensorFlow、PyTorch、Keras等项目已成为人工智能领域的重要组成部分。
-
区块链:区块链技术的出现推动了开源软件在分布式系统和密码学领域的发展,例如Hyperledger、Ethereum等项目已成为区块链技术的代表。
-
开放数据和开放科学:随着数据和科学的开放性要求越来越高,开源软件在数据处理、科学研究等领域的应用也越来越重要。
-
安全性和隐私保护:随着网络攻击和隐私泄露事件的不断发生,开源软件在安全性和隐私保护方面的应用也越来越重要。例如,开源的安全软件、加密技术等已经成为了当前安全性和隐私保护领域的重要组成部分。
-
开源硬件:除了软件,开源硬件也越来越受到关注,例如Arduino、Raspberry Pi等已成为了开源硬件的代表。
四、总结
发展至今,开源早已不再局限于软件领域,它已经涵盖了开源硬件、开源数据、开放科学、开放设计等领域。开源也不再只是一个技术概念,它已经成为了一种文化和价值观,在这种文化和价值观的推动下,越来越多的组织和社区采用开源的方式来开展业务和合作;开源更是一种生态系统,在开源社区和组织推动下和更多开源社区人员的参与下,这个生态系统不断地自我调整和进化,以适应不断变化的需求和挑战。
参考文章:开源运动发展史与开源许可证(BSD、GPL、Apache、MIT、木兰(中国))的那些事儿 - 知乎、ChatGPT
版权申明:文章由神州数码武汉云基地团队实践整理输出,转载请注明出处。
微信公众号后台回复“技术合集”,可获得文章大礼包!