用了这么久开源社区,还搞不明白免费/自由/开源软件?

在开源社区中,有很多人经常把免费软件、自由软件、开源软件这三个概念混淆在一起。

今天就来和大家谈谈这三个软件到底有什么不一样。


免费软件


用户可以免费使用该软件,但通常会有其他权限的限制:

1.源码不一定会公开/不能修改软件源码;

2.限制拷贝的代码数量和段落;

3.不得用于商业用途、不能以该软件牟利、仅供个人使用、仅供学习交流使用等等,如果有人未经作者允许则随意散布、传播,作者有权进行追责;

4.限制使用者研究、修改和再散布的权利;

在这里插入图片描述

免费软件免费的目的无非出于:

先提供免费版本软件扩大市场占有率,当用户多了,免费软件再采用一些其他的增值服务等等手段来收费。


自由软件


“自由软件”并不意味着售价为0,它更多地关乎自由的问题,软件如何定价并不影响它是否被归类为自由软件。

来自自由软件基金会(FSF)对自由软件的判断标准,如果程序的用户具有以下四项基本自由,才能被称为“自由软件”:

自由度0:可以按照用户意愿,自由地运行该软件。

自由度1:用户可以自由地学习并修改该软件。

自由度2:用户可以自由地分发该软件,让他人进行拷贝。

自由度3:用户把改进后的软件分享给整个社区令他人也从中受益。

其中自由度2、3的前提是,用户必须可以访问到该软件的源代码。

在这里插入图片描述

自由软件更像是一种观念,一开始是由支持自由软件的人士所发起的运动。

他们反对软件和数据私有化,认为这种知识产品应该共享,从而避免程序员们开发相似的系统造成重复浪费,让程序员们有时间和精力去开发更高效的东西。

这种过于理想化的思想在商业化社会中是很难行得通的。

在商业软件和自由软件的拉锯战中,开源软件就此诞生,它既满足了“知识共享”的理念,又允许人们加以修改从中谋利,进而促进人们创造知识产品的积极性。

开源软件

经过上面的解释不难看出:开源软件是指软件发行的时候附上源代码,授权用户可以修改、自由散布、衍生产品的权力。

●开源带给我们的好处是什么?

第一,软件本身得到了最大范围的使用。

开源一个软件之后可以让更多人根据自己的实际需求进行改写。

第二,软件开发程度可以不断迭代。

从软件本身的角度,开源,让更多的人参与,集思广益有助于软件的完善,开发出更优秀的软件。
第三,社会财富充分流动。

从软件行业的角度,极大的提高软件开发的生产力,我们能够自由的复用别人的开发成果,而避免重复劳动。通过开发的源代码,让软件开发者更好的学习。

在这里插入图片描述

●有哪些开源协议,他们有什么异同?

1.GPL:

该协议就是GNU运动发布的协议,GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用。

但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。

这也是 GPL代表的自由软件和普通开源软件的最大区别所在。

GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。我们熟知的Linux就是在GPL下发布的。

2.BSD协议:

BSD开源协议是一个给予用户自由度很高的协议,在该协议下,用户可以自由的使用、修改源代码,也可以将修改后的源代码作为开源软件或者私有软件发布。

BSD是对商业集成很友好的协议,BSD协议鼓励代码的共享、重用,但是要求尊重作者的著作权。

3.Apache Licence 2.0:

Apache Licence 2.0 是著名的开源组织Apache所采用的协议,和BSD很类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。

我们熟知的Tomcat、Apache、Hadoop等等都是在Apache协议下发布的。

在这里插入图片描述

●开软是否暴露缺点,带来安全隐患?

既然已经开源了,说明软件的缺点和安全问题都暴露在大众面前了,这样是不是会带来一定的安全隐患呢?

事实上并非如此,一个软件即便不开源,只要一个黑客的技术足够,他想找也一定能找到漏洞从而攻破它。

但是通过开源,这么多的开发者总会有人发现漏洞的,开发者们有源代码,也发现了漏洞,就可以及时对软件作出改进。

所以想要真正的安全,开源是一个不错的选择。过去20多年来已经证实,“越开放,越安全”。

Guess you like

Origin blog.csdn.net/wolfcode_cn/article/details/109454355