.:. 草榴社區 » 技術討論區 » 澄清“自由软件、开源软件”相关概念及许可证的误解
--> 本頁主題: 澄清“自由软件、开源软件”相关概念及许可证的误解 字體大小 寬屏顯示 只看樓主 最新點評 熱門評論 時間順序
次次換床單


級別:精靈王 ( 12 )
發帖:2982
威望:311 點
金錢:268782429 USD
貢獻:60564 點
註冊:2015-08-10


澄清“自由软件、开源软件”相关概念及许可证的误解




文章目录★引子
★误解1——“提供源代码的软件”就是“开源软件”
★误解2——把“开源软件”等同于“自由软件”(混淆这两者)
★误解3——以为“自由软件”排斥商业公司
★误解4——以为“自由软件 or 开源软件”必定是免费的
★误解5——以为“自由软件 or 开源软件”的开发人员都是“义务的/无报酬的”
★误解6——以为“自由软件 or 开源软件”就没有版权
★误解7——把“自由软件 or 开源软件”视作某种“共产主义”
★误解8——认为“自由软件 or 开源软件”的质量不如“闭源商业软件”
★误解9——把“自由软件”等同于“GPL 协议”(混淆这两者)
★误解10——把“自由软件”等同于“与 GPL 兼容的协议”(混淆这两者)
★误解11——认为“开源软件许可证”的范畴包含了“自由软件许可证”(以为后者是前者的【真子集】)
★结尾
★引子

  长期以来,一直有很多读者不太明白“自由软件”与“开源软件”的差异。除此之外,还经常会有其它的一些误解。
  昨天正好在俺的网盘上分享了《若为自由故——自由软件之父理查德·斯托曼传》一书的中文版,所以顺便来聊聊相关的话题。


★误解1——“提供源代码的软件”就是“开源软件”

  这可能是最常见的误解,所以俺把这条放在本文第一条。
  “提供源代码”只是“开源软件”的【必要条件】,但【不是】充分条件。换句话说:不提供源码的一定不是开源软件,提供源码的不一定是开源软件(有点像绕口令)
  所谓的“开源软件”,是有严格定义滴!目前业界的共识是采用“开放源代码促进会”(洋文叫“Open Source Initiative”,缩写是 OSI)给出的定义。
  其定义很长,包含很多项,俺就不全文列出啦。想看的同学,请猛击 OSI【官网】的“这个链接”。不懂洋文的同学,请看中文维基百科的“这个页面”。

  为了让大伙儿加深印象,举 UNIX 的例子。
  说到 UNIX,在计算机史上那可是大名鼎鼎滴。其背景,俺就不多说啦。当年(上世纪70年代)UNIX 隶属于商业公司 AT&T。那年头,AT&T 销售 UNIX 的时候都会附送【全部源代码】。但即使这样,(以如今的标准来看)UNIX 也【不能】算是开源软件。因为用户拿到源代码之后,受限于保密条款,【无法】随意分发源代码。


★误解2——把“开源软件”等同于“自由软件”(混淆这两者)

  “开源软件”与“自由软件”这两个概念有很大的重叠,导致很多人混淆这两者(误以为这俩概念可以互换)。
  但其实这两者在理念上有【很大】差异。考虑到本文是面向普通读者,俺尽可能用通俗的大白话来说一下两者的共性和差异。

◇“开源软件”与“自由软件”的【共性】

  共性大致有如下几条:
1. 两者都要求——源代码要【公开】
2. 两者都要求——公开的源代码必须具备【完整性】(换句话说,用公开的源码必须能重新生成该软件)
3. 两者都要求——公开的源代码要允许【随意分发】
4. 两者都要求——公开的源代码要允许【随意修改】
5. 两者都要求——【不能】限制商业使用
......
(还有其它一些共同点,考虑到篇幅,就不再列举啦)

◇“开源软件”与“自由软件”在【理念】方面的【差异】

  “开源软件”的立足点更加侧重于——源代码的【开放性】。
  “自由软件”的立足点更加侧重于——软件用户的【自由度】。

  考虑到很多人不太清楚“用户的自由”,俺来介绍一下——
  FSF 的创始人 理查德·斯托曼(Richard Matthew Stallman,人称 RMS)给出了【用户的四大自由】:
自由度0:
无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。

自由度1:
用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。
(作为前提,用户必须可以访问到该软件的源代码)

自由度2:
用户可以自由地分发该软件的拷贝,这样就可以助人。

自由度3:
用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。
(作为前提,用户必须可以访问到该软件的源代码)

  更详细的介绍可以参见 FSF(自由软件基金会)【官网】的文章(如下):
What is free software?》(原文)
什么是自由软件?》(上述的中文翻译)

  引申阅读:
  俺的网盘上分享了【自由软件运动创始人】理查德·斯托曼(RMS)的“选集”和“传记”,分别如下:
自由软件,自由社会——理查德·斯托曼选集
若为自由故——自由软件之父理查德·斯托曼传

◇“开源软件”与“自由软件”在【许可证】方面的【差异】

  (注:本文后续部分提到的“许可证、许可协议、license”三者指同一个东东)
  刚才俺聊到了“自由软件”与“开源软件”在理念上的差异。这些差异自然也会反应到 license 的条款上。比如有些 license 立足于“开源”,还有些 license 立足于“自由”。
  为了方便大伙儿,给出一个维基百科链接(在“这里”)。该页面对比了各种不同的软件许可协议。在【第二个】表格中,有一栏是“FSF 认可”——凡是被 FSF 认可的,都可以算是【自由软件】许可证;另外还有一栏是“OSI 认证”——凡是被 OSI 认证的,都可以算是【开源软件】许可证


★误解3——以为“自由软件”排斥商业公司

  长期以来,很多商业公司对“自由软件”进行【污名化/妖魔化】。比如微软前任 CEO 巴尔默曾经污蔑说——Linux 以及相关的(GPL)许可证是“癌症”(以下是他原话):
Linux is a cancer that attaches itself in an intellectual property sense to everything it touches.
That's the way that the license works.
  长期的妖魔化,让很多人【误以为】“自由软件与商业公司水火不容”。但其实不然!
  商业公司也能基于“自由软件许可协议”去开发“自由软件”并提供给用户。该过程可以是“免费的”,也可以是“付费的”。
  所谓的“付费”,也就是说——商业公司也可以通过“销售自由软件”来获得利润(关于这点,下一条会详细介绍)。


★误解4——以为“自由软件 or 开源软件”必定是免费的

  (注:为了打字省力,本文以下部分以 FOSS 作为“自由软件 or 开源软件”的总称)
  关于这个误解,俺把“自由软件”和“开源软件”分开来阐述。

◇对于“自由软件”

  在前一条,俺提到:(从理论上讲)商业公司也可以销售自由软件(拿自由软件卖钱)。
  说到这,可能很多人还不信。下面俺给出 FSF(自由软件基金会)【官网】的文章。
Selling Free Software》(原文)
销售自由软件》(上述的中文翻译)

◇对于“开源软件”

  如果你理解了“为啥商业公司也允许销售自由软件”,也就比较能理解“为啥商业公司允许销售开源软件”了。
  OSI(开放源代码促进会)对“开源软件”的定义(前面已经提到),并【没有】对“销售或付费”做任何限制。
  也就是说,如果你开发了一套“开源软件”,并拿去卖,并且有人愿意买。这个(销售/购买)行为并【不】违背 OSI 的精神和条款。

◇实际案例

  不要以为俺在本章节提到的只是【理论上的可能性】。在现实生活中已经有商业公司(在遵守 FOSS 许可的前提下)利用自由软件盈利,甚至还上市了——这就是大名鼎鼎的【红帽公司】(洋文是:Red Hat)。该公司发布的“Red Hat Enterprise Linux”(简称 RHEL),在 Linux 社区很有影响。
  关于“红帽公司”的规模,以下摘自维基百科的介绍:
Red Hat于1999年8月11日在纳斯达克上市,2005年12月19日纳入纳斯达克100指数,2006年12月12日转到纽约证券交易所挂牌。
2018年10月28日,IBM 将以每股190美元的现金收购 Red Hat 所有已发行股份,总价值约为340亿美元。


★误解5——以为“自由软件 or 开源软件”的开发人员都是“义务的/无报酬的”

  互联网时代之前和初期,情况确实如此。
  但如今 FOSS(Free and Open-Source Software)已经改变了全球软件行业的生态环境。
  举个例子:由于 Linux 内核已经被大量/广泛地适用于各个领域,很多【大型】商业会让自己的程序员参与 Linux 社区的开发;同时,这些程序员拿的是商业公司的工资。


★误解6——以为“自由软件 or 开源软件”就没有版权

  虽然 FOSS(Free and Open-Source Software)允许用户获得源代码,允许用户自由地分发软件(包括源代码),但某些 FOSS 的 license 依然会有版权相关的条款(比如:有的会强调“署名权”,有的会强调“修改权”)。
  引申阅读:
对版权的误解 @ FSF 官网


★误解7——把“自由软件 or 开源软件”视作某种“共产主义”

  坦率地说,犯这种错误的人,既没有理解 FOSS(Free and Open-Source Software),也没有理解共产主义。
  FOSS 与“共产主义”在本质上简直是【截然相反】滴。

◇开放性 VS 封闭性

  前面俺已经说了:“开源软件”不光强调公开源码,而且强调【开放性】;相比之下,共产运动必将导致社会的【封闭性】。
  为啥共产运动必将导致“封闭性”?
  有耐心的同学可以去看卡尔·波普尔的代表作《开放社会及其敌人》(提醒一下:这是大部头的政治理论著作)

◇自由 VS 奴役

  前面俺还说了:“自由软件”尽可能确保用户的【自由】;相比之下,共产运动必将导致对自由的【剥夺】(奴役)。
  为啥共产运动必将导致“对自由的剥夺和奴役”?
  对此感兴趣的同学可以去看一下弗里德里希·哈耶克的代表作《通往奴役之路》。

◇引申阅读

  批判“共产主义”和“马列主义”的博文,俺已经写过很多。具体参见博客上的 政治.共产运动 标签。


★误解8——认为“自由软件 or 开源软件”的质量不如“闭源商业软件”

  在20年前,很多人持有这种观点。如今越来越多的人开始意识到——FOSS 也可以打造出非常优秀的软件。
  比如说大伙儿平时都在用的浏览器。IE 是完全闭源的商业软件,如今远远比不上 Chrome 和 Firefox。Firefox 是正宗的开源软件;Chrome 虽然不是开源软件,但它是在开源软件 Chromium 的基础上二次开发而成。
  再比如 Web 服务器软件,长期占据三甲的,有两个(Apache、Nginx)是 FOSS,一个是闭源的(IIS)。而且 Apache + Nginx 的市场份额会明显高于 IIS。
  (类似的例子还能举出很多)
  另外,还有很多优秀的闭源商业软件在其内部使用了开源的库(library)。这些商业软件的成功,其内部使用的开源库功不可没。
  引申阅读:
俺整理的“C/C++/Python 开源库清单


★误解9——把“自由软件”等同于“GPL 协议”(混淆这两者)

  (注:GPL 的全称是“GNU General Public License”,维基百科链接在“这里”)
  这个错误连某些 FOSS 社区的人都会犯。
  “使用 GPL 协议”的软件,必定是“自由软件”;但反过来就【不】成立。换句话说,除了 GPL 协议,还有很多其它协议,也可以确保其所属的软件是“自由软件”。
  刚才提到了维基百科上有一个 license 对比清单,再次丢出来给列位看官参考(链接在“这里”)。清单中(第2个表格)有很多【非】GPL 的协议,也得到了 FSF 的认可(可以算是“自由的协议”)


★误解10——把“自由软件”等同于“与 GPL 兼容的协议”(混淆这两者)

  这条与前一条有点类似,也属于——连 FOSS 社区的人都会犯的错误。
  “兼容 GPL 的协议”,其所属的软件必定是“自由软件”;但反过来就【不】成立。换句话说,还有很多【自由软件】的许可协议,与 GPL 是【不】兼容滴!
  在 FSF(自由软件基金会)官网上有一个清单(链接在“这里”),对各种许可协议进行分类,其中有一类是【GPL-Incompatible Free Software Licenses】。这一类协议,数量还不少。


★误解11——认为“开源软件许可证”的范畴包含了“自由软件许可证”(以为后者是前者的【真子集】)

  首先要承认一下:有段时间,俺也犯了这个错误。
  如今要澄清的是:绝大部分“自由软件许可证”同时也算是“开源软件许可证”。但有少数【例外】

  举个例子(例外):WTFPL
  有一个比较鲜为人知的 license 叫做“WTFPL”,洋文全称是“Do What The Fuck You Want To Public License”。中文翻译成“你他妈的想干嘛就干嘛公共许可证”。
  猛一看这名称,可能很多人以为这是个“恶搞的协议”(恶作剧)。但这个协议还是有点来头滴,其 2.0 版本的作者 Sam Hocevar 曾经担任过 Debian 社区的负责人。
  这个协议就属于刚才提到的【极少数例外】——它获得了 FSF 的认可,但没有获得 OSI 的认证。


★结尾

  俺写的这篇,难免会有遗漏。欢迎大伙儿补充 FOSS 相关的其它误解。


俺博客上,和本文相关的帖子(需翻墙)
如何选择开源项目?
GitHub 通告:整理了一个 C 和 C++ 开源库的清单(含示例代码)
为啥俺推荐 Python[5]:作为瑞士军刀的 Python——顺便分享俺整理的 Python 开源库

版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者[url=mailto:program.think@gmail.com]编程随想[/url]和本文原始地址:
https://program-think.blogspot.com/2019/03/Misunderstand-Free-and-Open-Source-Software.html

赞(2)
TOP Posted:2021-04-02 15:21 樓主 引用 | 發表評論
GunSmith


級別:騎士 ( 10 )
發帖:3549
威望:357 點
金錢:182 USD
貢獻:0 點
註冊:2016-05-19


谢谢分享
TOP Posted:2021-04-02 15:48 #1樓 引用 | 點評
青松岭的鞭子


級別:騎士 ( 10 )
發帖:4297
威望:400 點
金錢:2037802 USD
貢獻:275 點
註冊:2015-06-27

谢谢分享
TOP Posted:2021-04-02 15:56 #2樓 引用 | 點評
比樂師憂


級別:精靈王 ( 12 )
發帖:5007
威望:2108 點
金錢:3921 USD
貢獻:11111 點
註冊:2021-02-21

感谢分享
TOP Posted:2021-04-02 16:02 #3樓 引用 | 點評
闲云不负


級別:光明使者 ( 14 )
發帖:10266
威望:6455 點
金錢:92970951 USD
貢獻:648095 點
註冊:2014-10-14

技术贴,支持。
------------------------
H
TOP Posted:2021-04-02 16:03 #4樓 引用 | 點評
love草


級別:俠客 ( 9 )
發帖:1007
威望:101 點
金錢:6 USD
貢獻:61 點
註冊:2013-04-30

1024
TOP Posted:2021-04-02 16:03 #5樓 引用 | 點評
evenss


級別:聖騎士 ( 11 )
發帖:1493
威望:150 點
金錢:1010324 USD
貢獻:24850 點
註冊:2020-11-11

干货支持一下
TOP Posted:2021-04-02 16:08 #6樓 引用 | 點評
佛魔一念间


級別:精靈王 ( 12 )
發帖:13819
威望:1505 點
金錢:15846 USD
貢獻:80 點
註冊:2020-04-24

补补这方面的知识,感谢分享
TOP Posted:2021-04-02 17:16 #7樓 引用 | 點評
布鲁先生


級別:精靈王 ( 12 )
發帖:9990
威望:1000 點
金錢:1 USD
貢獻:77 點
註冊:2018-05-20

感谢分享
TOP Posted:2021-04-02 17:27 #8樓 引用 | 點評
雨中小老虎


級別:精靈王 ( 12 )
發帖:14471
威望:1433 點
金錢:260712 USD
貢獻:107 點
註冊:2018-02-01

感谢分享
TOP Posted:2021-04-02 17:46 #9樓 引用 | 點評
真老毅丝


級別:光明使者 ( 14 )
發帖:18854
威望:5868 點
金錢:2147483647 USD
貢獻:1829999 點
註冊:2014-06-15

感谢分享
TOP Posted:2021-04-02 18:11 #10樓 引用 | 點評
夜望城


級別:精靈王 ( 12 )
發帖:11551
威望:1233 點
金錢:1997 USD
貢獻:0 點
註冊:2020-11-15


学习知识。
TOP Posted:2021-04-02 20:21 #11樓 引用 | 點評
喝酒吃肉


級別:精靈王 ( 12 )
發帖:13768
威望:1222 點
金錢:2386895 USD
貢獻:0 點
註冊:2020-08-30

感谢分享
TOP Posted:2021-04-02 20:49 #12樓 引用 | 點評
火之歌


級別:禁止發言 ( 8 )
發帖:13600
威望:1356 點
金錢:2753 USD
貢獻:1 點
註冊:2019-05-23

涨知识了
TOP Posted:2021-04-02 21:09 #13樓 引用 | 點評
潘达达


級別:新手上路 ( 8 )
發帖:604
威望:62 點
金錢:799872 USD
貢獻:0 點
註冊:2021-03-23

只能感谢分享了
TOP Posted:2021-04-02 21:58 #14樓 引用 | 點評
心忆


級別:精靈王 ( 12 )
發帖:2883
威望:354 點
金錢:569711153 USD
貢獻:36916 點
註冊:2015-10-23

感谢分享
TOP Posted:2021-04-02 21:59 #15樓 引用 | 點評
降雪无声


級別:騎士 ( 10 )
發帖:4524
威望:490 點
金錢:1742971 USD
貢獻:1100 點
註冊:2019-04-10

感谢分享
TOP Posted:2021-04-03 00:21 #16樓 引用 | 點評
风吹蛋蛋热


級別:聖騎士 ( 11 )
發帖:3545
威望:355 點
金錢:1505098 USD
貢獻:21844 點
註冊:2020-01-31


多谢楼主分享
TOP Posted:2021-04-03 00:29 #17樓 引用 | 點評
honus


級別:聖騎士 ( 11 )
發帖:7639
威望:764 點
金錢:1801168 USD
貢獻:719 點
註冊:2020-08-05

涨知识了
TOP Posted:2021-04-03 01:21 #18樓 引用 | 點評
伦敦上空的鹰


級別:精靈王 ( 12 )
發帖:13438
威望:1352 點
金錢:2973 USD
貢獻:600 點
註冊:2020-11-29

我们每次要用新的开源软件/库,都会要求法务部门给出法律建议,否则真的不敢随便使用。
TOP Posted:2021-04-03 01:24 #19樓 引用 | 點評
石榴花


級別:風雲使者 ( 13 )
發帖:10352
威望:1067 點
金錢:144083839 USD
貢獻:542228 點
註冊:2012-12-06

谢谢分享
TOP Posted:2021-04-03 02:50 #20樓 引用 | 點評
风吹蛋蛋热


級別:聖騎士 ( 11 )
發帖:3545
威望:355 點
金錢:1505098 USD
貢獻:21844 點
註冊:2020-01-31

感谢你的分享
TOP Posted:2021-04-03 05:03 #21樓 引用 | 點評
以防万一


級別:俠客 ( 9 )
發帖:1126
威望:113 點
金錢:1126 USD
貢獻:1 點
註冊:2018-05-21

感谢你的分享
TOP Posted:2021-04-03 05:51 #22樓 引用 | 點評
iah0625


級別:精靈王 ( 12 )
發帖:12128
威望:1183 點
金錢:637095 USD
貢獻:0 點
註冊:2015-04-04


感谢分享
TOP Posted:2021-04-03 05:53 #23樓 引用 | 點評
crazycamel


級別:俠客 ( 9 )
發帖:1009
威望:102 點
金錢:34151 USD
貢獻:0 點
註冊:2008-11-22

内容精彩
TOP Posted:2021-04-03 08:23 #24樓 引用 | 點評

.:. 草榴社區 -> 技術討論區

快速回帖 頂端
內容
HTML 代碼不可用

使用簽名
Wind Code自動轉換

按 Ctrl+Enter 直接提交