开放原始码软体与自由软件

形式上的差异

开放原始码(open source)软 体与自由软体是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件。自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的源软件都能被称为“自由”。但在现实上,绝大多数开源软件也都符合自由软件的定义。比如,遵守GPL和BSD许可的软件都是开放的 并且是自由的。

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

两者内涵的差异

  1. 开放原始码作用是尽可能的使软件最优化;自由软件则将自由作为道德标准。
  1. 如果说“自由软体”会引起误解,(因为英文“Free”一词有“自 由”、“免费”的双重含意),那么“开放原始码”的名字会引起的误解则更多。zh-hant:开放原始码很容易让人以为只要把原始码“公开”出来就算是开 放原始码了,但是如果使用者无法自由运用这些原始码,那么即使公开原始码也没有意义。有的软体公司只是为了想找使用者帮它debug、吸收社区贡献的功 能,这样子会破坏了自由软体的原意。
  1. 自由软体的原意就是要给予使用者运用软体的自由,这个‘自由’就是自由软体的精神所在。但是为了商业化开放原始码却故意忽略了这个最重要的精神,反而无法让使用者体认到‘自由’的真意,那么开放原始码这一个替代自由软体的辞句反而把自由的原意除去了。

而自由软体的精神领袖理查德·马修·斯托曼也很反对人们把开放原始码和自由软体混为一谈。(请参见:《Why “Open Source” misses the point of Free Software》一文)。

自由软体的精神领袖

自由软体的精神领袖是理查德·马修·斯托曼。他被人称为‘最后的真正骇客’,他认为一个好的软体,应该自由自在地让人取用。软体不应该拿来做为相互倾轧、剥削的工具。所以他起草GNU通用公共许可证 来保障自由软体的自由,并创办了自由软体基金会来贯彻他的理念。领袖们有时被称作“Benevolent Dictators”。

自由软件(Free Software,根据自由软体基金会的定义,是一种可以不受限制地自由使用、复制、研究、修改和分发的软体。这方面的不受限制正是自由软体最重要的本质,与自由软体相对的是闭源软体(Proprietary Software)非自由软体,也常被称为私有软体、封闭软体(其定义与是否收取费用无关)。自由软体受到选定的“自由软体授权协议”保护而发布(或是放置在公共领域),其发布以原始码为主,二进制档可有可无。自由软体的许可证类型主要有GPL许可证和BSD许可证两种。另外,自由软件也可以看作开源软件的一个子集。

开源软件

开放原始码(英文:Open Source)指一种软体散布模式。一般的软体仅可取得已经过编译的二进位可执行档,通常只有软体的作者或著作权所有者等拥有程式的原始码。

须注的是有些软体的作者只是将原始码公开,却不符合“开放原始码”的定义及条件,因为作者可能设定公开原始码的条件限制,诸如限制可阅读原始码的对象、限制衍生产品等,此称之为“公开原始码”软体(例如知名的模拟器软体 MAME),因此公开原始码的软体并不一定可称之为“开放原始码”软体。

开放原始码的定义由Bruce Perens(曾是Debian的创始人之一)定义如下:

  • 自由再散布(Free Distribution):允许获得原始码的人可自由再将此原始码散布。
  • 原始码(Source Code):程式的可执行档在散布时,必需以随附完整原始码或是可让人方便的事后取得原始码。
  • 衍生著作(Derived Works):让人可依此原始码修改后,在依照同一授权条款的情形下再散布。
  • 原创作者程式原始码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的程式码做分别,保障原始的程式码完整性。
  • 不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放原始码软体不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软体的出口)。
  • 对程式在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。
  • 散布授权条款(Distribution of License):若软体再散布,必需以同一条款散布之。
  • 授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程式组合成一套软体,则当某一开放原始码的程式单独散布时,也必需要符合开放原始码的条件。
  • 授权条款不得限制其他软体(License Must Not Restrict Other Software):当某一开放原始码软体与其他非开放原始码软体一起散布时(例如放在同一光碟片),不得限制其他软体的授权条件也要遵照开放原始码的授权。
  • 授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。

OSI官方网站,http://opensource.org/

开源软件与自由软件的区别相关推荐

  1. 开源软件与自由软件的区别——个人体会

    如今,计算机开源软件项目如潮水般涌来,各个领域都有着出色的表现.这就让我对开源的含义产生了兴趣. 于是花了一些时间在网络上搜索相关的信息.在此过程中,还发现了与之相似的--自由软件的定义.不过国内很多 ...

  2. 开源软件和自由软件_自由和开源软件的经济学

    开源软件和自由软件 零边际成本 (Zero Marginal Cost) At the core of the financial aspects of Free and Open Source is ...

  3. 商业软件、开源软件与自由软件开发模式的区别

    程序代码一般情况下有两种形式:目标代码和源代码.人们根据开发公司对源代码的"态度"(是否公开)将软件分为商业软件和开源软件.现在我们来看看各种软件的开发模式有何不同. ○1商业软件 ...

  4. 开源软件能够赚到钱吗

    中科红旗的总裁赵晓亮曾经用一个关于饮水的比喻来解释开源软件企业是如何赚钱的,大意是人每天都要喝大量的水,但饮水是在不同的环境下.不同的条件下进行的.虽然原料都是水,但性质已经发生了改变.而且水的加工程 ...

  5. 软件协会发布开源软件与商业软件知识产权报告

        日前,中国软件行业协会发布了<有关开放源代码软件与商业软件知识产权的研究报告>(以下简称<研究报告>),明确提出"反对政府直接支持或干预任何形式的软件商业模式 ...

  6. 开源软件及国内发展趋势

    源是大势所趋 随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统.编译工具链.数据库.WEB服务器.移动操作系统等各个方面已经成为主流.而且许多企业利用开源软件形成了独特的商业 ...

  7. 开源软件及国内发展现状

    1 开源是大势所趋 随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统.编译工具链.数据库.WEB服务器.移动操作系统等各个方面已经成 为主流.而且许多企业利用开源软件形成了独 ...

  8. 涂抹MySQL--第1章 开源运动与开源软件MySQL - 1.1开源软件的故事(3)

    1.1.4 GPL 说,持证上岗光荣 GPL 全称为GNU General Public License,即GNU 通用公共许可证.协议的具体条款这里就不列出了,条款不算太长,如果有兴趣,大家可以到G ...

  9. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 1

    前言 以互联网为代表的信息技术的迅猛发展对整个经济体系产生了巨大的影响.信息技术的发展一方面使知识的积累和传播更加迅速,知识爆炸性的增长:另一方面,使信息的获取变得越来越容易,信息交流的强度逐渐增加, ...

  10. 开源软件运动为什么流行起来?

    作者 | 周荔人       责编 | 欧阳姝黎 1998年1月23日,美国网景公司做了一个决定,宣布将会开放下一代网景通讯家套件的所有源代码.网景通讯家套件后面就是 Mozilia 项目,下文均使用 ...

最新文章

  1. EntityFramework SaveChange()方法不能更新的问题
  2. TSP问题由标准格式转成简单格式(我的实验代码需要的格式)
  3. Vuejs自定义全局组件--loading
  4. CTO俱乐部下午茶:技术团队管理中的那些事儿
  5. 通用客户端表单验证函数修正版
  6. linux0775权限,Linux权限管理
  7. java三角形剪角_大班数学:拼角剪角
  8. Spring Cloud Feign设计原理
  9. Linux Centos7网络属性配置
  10. python安装pyinstaller库_python pyinstaller安装
  11. java包名和类名可以一样吗_Java入门第三课:Java基本语法
  12. 送书 | 人类细胞图谱计划发起人Aviv Regev博士讲单细胞基因组学
  13. Python消息队列
  14. servlet精华讲解
  15. 产品经理技能树之 需求规范
  16. Clean-Code: 有意义的名字
  17. 华为设备MSTP配置命令
  18. 高压加工食品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 阿里云视觉智能API,核心技术一站共享!
  20. 山东大学 计算机人工智能2019级 认知科学与类脑计算 期末考试

热门文章

  1. vmware 14 激活码
  2. 饿了么UI框架表单验证
  3. 爬虫小白第一篇 西刺代理
  4. python 软件包 petri_常用Petri网模拟软件工具简介
  5. 虚拟服务器不识别网银盾,建行u盾插电脑没反应网页不自动跳出 3步教你快速解决...
  6. Matlab中句柄类
  7. MFC通过CImage绘制透明图层的png图片
  8. 利用74HC138译码器实现数码管显示
  9. RFID的无线通信原理
  10. 如何自主搭建信息管理系统