自由软件VS开源软件

“自由软件运动”是一项倡导软件这种知识产品应该免费共享的社会运动,它主要是从社会伦理学,道德的高度,强调我们每个人都有自由使用软件的权利。这种权利不应该被软件私有所破坏。

反对软件私有,首先反对的就是软件的知识产权、版权,所以自由软件运动明确反对以申请专利的形式将软件产品据为私有。为了表达对Copyright(知识产权)的憎恶,斯托尔曼甚至生造了一个单词Copyleft。

自由软件运动者还创造出GPL(通用公众许可协议)这一许可协议来保证和保护同道中人彼此共享软件产品。GPL的基本原则就是:你可以“自由”地运行、拷贝、修改和再发行使用GPL授权的软件,但你也必须允许别人也能“自由”地运行、拷贝、修改和再发行该软件以及你在该软件的基础上加以修改而形成的衍生软件产品。

我们不难发行,自由软件运动有点太极端、太理想化了,生活在这么一个商品化社会,要完全如此的反商业,还是很有难度的。

于是,发展到了后面,一中“自由软件”和“商业软件”之间的折中------“开源软件”就此诞生了,它既继承了“自由软件”所提倡的知识共享的理念,同时又允许人们以专利的形式从知识产品中谋取利益,从而保护了人们生产、创造知识产品的积极性。

所以,我们可以认为:自由软件是开源软件的一个子集,自由软件的定义比开源软件的更加严格,自由软件是一种道德精神层面的维护用户使用的自由。

开源软件和自由软件一样,具备一可以免费使用二是公布源代码的主要特征,所以在不刻意追究微小差异的情况下,我们可以认为开源软件和自由软件是两个等价的概念。

免费软件就是免费提供给用户使用的软件,但是其免费的时候,通常都会有其他的限制,比如其源码不一定会公开,而且使用者也并没有使用、复制、研究、修改和再散布的权利.

共享软件是以“先使用后付费”的方式销售的享有版权的软件。根据共享软件作者的授权,用户可以从各种渠道免费得到它的拷贝,也可以自由传播它。用户总是可以先使用或试用共享软件,认为满意后再向作者付费;如果你认为它不值得你花钱买,可以停止使用

共享软件最明显的优点是免费试用期。通常,当你用一个共享软件30天后(不同的共享软件都有不同的试用期限),你应该送给作者一定的费用才可以继续使用该软件。不需要任何费用的叫免费软件。

开源软件与自由软件[编辑]

形式上的差异[编辑]

开源软件与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开源软件。而自由软件有比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。但一般,绝大多数开源软件也都符合自由软件的定义。

开放源代码的规定较宽松,而自由软件的规定较严苛。很多的开放源代码所认可的授权根本不算是自由软件,所以自由软件不得不和开放源代码划清界线。

两者内涵的差异[编辑]

开放源代码作用是,使用开放的开发方式,尽可能的使软件最优化,而自由软件则将尊重用户自由作为道德标准。

如果说“自由软件”会引起误解,(因为英文“Free”一词有“自由”、“免费”的双重含意),那么“开放源代码”的名字则会引起的误解则更多。“开源”很容易让人认为是只要把源代码“公开”出来就算是开源了,即“你可以看到源代码”。但是如果用户的自由仍然得不到尊重,那么即使公开源代码也没有意义。有的软件公司只是为了想找用户帮它除错、吸收社区贡献的功能,这样子会破坏了自由软件的原意。一个例子是Tivo公司生产的机顶盒。虽然它基于GNU/Linux,TiVo公司也按照许可证发布了源代码,但是却禁止用户在机顶盒上运行自己的程序,或重新安装系统。[9]

自由软件的原意就是要给予用户运用软件的自由,这个‘自由’就是自由软件的精神所在。但是一些商业化开放的源代码却故意忽略了这个最重要的精神,反而无法让用户体认到‘自由’的真意,那么开源这一个替代自由软件的辞句反而把自由的原意除去了。

自由软件VS开源软件的更多相关文章

  1. [转帖]GNU, Free Software and Open Source 自由软件与开源软件

    GNU, Free Software and Open Source 自由软件与开源软件 https://blog.csdn.net/icycolawater/article/details/7792 ...

  2. 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...

  3. 2014 年最热门的国人开发开源软件TOP 100

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外认可.中国是开 ...

  4. 2014年国人开发的最热门的开源软件TOP 100

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...

  5. GIS开源软件大全

    3 - F 3map:行星地球项目由3map驱动,这是一个自由软件,由Telstra宽带基金会创建并支持,提供客户端与服务器的能力以在线再现虚拟地球. Amein!:其界面介于ArcMap和UMN M ...

  6. 痞子衡嵌入式:开源软件协议(MIT/BSD/Apache/LGPL/MPL/GPL)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是关于开源软件协议基本知识. 牛顿曾说过:"如果我比别人看得更远,那是因为我站在巨人的肩上".在软件开发中如果说也存在巨 ...

  7. GitHub贡献第一的公司是谁?微软开源软件列表

    参考:http://www.infoq.com/cn/news/2017/03/GitHub-first-Microsoft-open-sour 提起微软公司,不少人第一反应是老牌巨头专注于私有化软件 ...

  8. 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)

    GPL GPL授予程序接受人以下权利,或称“自由”: * 以任何目的运行此程序的自由 * 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提) * 再发行复制件的自由 * 改进此程序, ...

  9. 开源软件License汇总

    用到的open source code越多,遇到的开源License协议就越多.License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的 ...

随机推荐

  1. 将inline、template声明和定义在头文件中

    如果要在要在源文件(a.cpp)中内联的展开一个函数(fun),则该源文件(a.cpp)中必须包含此函数(fun)的定义.如果要在多个文件中内联的展开fun,则在所有的源文件中都必须包含fun的定义. ...

  2. android 开发Parcelable 怎么传值ArrayList

    public class TradeEntity implements Parcelable{ public String id; //有关进度条的参数 ArrayList<TradeState ...

  3. VIMTUTOR《VIM教程》

    =============================================================================== =      欢     迎     阅 ...

  4. IDEA for Mac 解决控制台乱码问题

    近期发现 idea for mac 版本中 tomcat 控制台有中文的地方出现乱码问题,其实很简单就可以解决. 这里做个笔记,以后可以方便不会的人来解决 ---------------------- ...

  5. C#异常处理策略

    1.如果某些异常,本组件无法处理,不要捕获,但要声明有这个异常.例如SecurityException. 2.如果某些异常,本组件可以处理,捕获并处理它,不再声明此异常.例如DirectoryNotF ...

  6. matrix_last_acm_4

    2013 ACM-ICPC吉林通化全国邀请赛 A http://acm.hust.edu.cn/vjudge/contest/view.action?cid=97654#problem/A 题意:输入 ...

  7. Asp.net 导入Excel(服务器不带Office)

    #region 把excel文件转换为DataSet. /// <summary> /// 把excel文件转换为DataSet. /// </summary> /// < ...

  8. 为现代JavaScript开发做好准备

    今天无论是在浏览器中还是在浏览器外,JavaScript世界正在经历翻天覆地地变化.如果我们谈论脚本加载.客户端的MVC框架.压缩器.AMD.Common.js还有Coffeescript……只会让你 ...

  9. HDOJ 2181 哈密顿绕行世界问题

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  10. MariaDB Galera Cluster集群

    一.MariaDB Galera Cluster概要: 1.简述: MariaDB Galera Cluster 是一套在mysql innodb存储引擎上面实现multi-master及数据实时同步 ...