基础知识普及:什么是Copyleft?

如果你在开源项目中花费了很多时间的话,你可能会看到使用的术语 “copyleft”(GNU 官方网站上的释义:中文,英文)。虽然这个术语使用比较普遍,但是很多人却不理解它。软件许可是一个至少不亚于文件编辑器和打包格式的激烈辩论的主题。专家们对 copyleft 的理解可能会充斥在好多书中,但是这篇文章可以作为你理解 copyleft 启蒙之路的起点。

什么是 copyright?

在我们可以理解 copyleft 之前,我们必须先介绍一下 copyright 的概念。copyleft 并不是一个脱离于 copyright 的法律框架,copyleft 存在于 copyright 规则中。那么,什么是 copyright?

它的准确定义随着司法权的不同而不同,但是其本质就是:作品的作者对于作品的复制(copying)(因此这个术语称之为 “copyright”:copy 's right)、表现等有一定的垄断性。在美国,其宪法明确地阐述了美国国会的任务就是制定版权法律来“促进科学和实用艺术的进步”。

不同于以往,版权会立刻附加到作品上——而且不需要注册。默认情况下,所有的权力都是保留的。也就是说,没有经过作者的允许,没有人可以重新出版、表现或者修改作品。这种“允许”就是一种许可,可能还会附加有一定的条件。

如果希望得到对于 copyright 更彻底的介绍,Coursera 上的教育工作者和图书管理员的著作权是一个非常优秀的课程。

什么是 copyleft?

先不要着急,在我们讨论 copyleft 是什么之前,还有一步。首先,让我们解释一下开源(open source)意味着什么。所有的开源许可协议,按照开源倡议的定义(Open Source Inititative's definition)(规定),除其他形式外,必须以源码的形式发放。获得开源软件的任何人都有权利查看并修改源码。

copyleft 许可和所谓的 “自由(permissive)” 许可不同的地方在于,其衍生的作品中,也需要相同的 copyleft 许可。我倾向于通过这种方式来区分两者不同: 自由(permissive)许可向直接下游的开发者提供了最大的自由(包括能够在闭源项目中使用开源代码的权力),而 copyleft 许可则向最终用户提供最大的自由。

GNU 项目为 copyleft 提供了这个简单的定义(中文,英文):“规则就是当重新分发该程序时,你不可以添加限制来否认其他人对于[自由软件]的自由。(the rule that when redistributing the program, you cannot add restrictions to deny other people the central freedoms [of free software].)”这可以被认为权威的定义,因为 GNU 通用许可证(GNU General Public License,GPL)的各种版本的依然是最广泛使用的 copyleft 许可。

软件中的 copyleft

GPL 家族是最出名的 copyleft 许可,但是它们并不是唯一的。Mozilla 公共许可协议(Mozilla Public License,MPL)和 Eclipse 公共许可协议( Eclipse Public License,EPL)也很出名。很多其它的 copyleft 许可 也有较少的采用。

就像之前章节介绍的那样,一个 copyleft 许可意味着下游的项目不可以在软件的使用上添加额外的限制。这最好用一个例子来说明。如果我写了一个名为 MyCoolProgram 的程序,并且使用 copyleft 许可来发布,你将有使用和修改它的自由。你可以发布你修改后的版本,但是你必须让你的用户拥有我给你的同样的自由。(但)如果我使用 “自由(permissive)” 许可,你将可以将它自由地合并到一个不提供源码的闭源软件中。

对于我的 MyCoolProgram 程序,和你必须能做什么同样重要的是你必须不能做什么。你不必用和我完全一样的许可协议,只要它们相互兼容就行(但一般的为了简单起见,下游的项目也使用相同的许可)。你不必向我贡献出你的修改,但是你这么做的话,通常被认为一个很好的形式,尤其是这些修改是 bug 修复的话。

非软件中的 copyleft

虽然,copyleft 的概念起始于软件世界,但是它也存在于之外的世界。“做你想做的,只要你保留其他人也有做同样的事的权力”的概念是应用于文字创作、视觉艺术等方面的知识共享署名许可(中文,英文)的一个显著的特点(CC BY-SA 4.0 是贡献于 Opensource.com 默认的许可,也是很多开源网站,包括 Linux.cn 在内所采用的内容许可协议)。GNU 自由文档许可证是另一个非软件协议中 copyleft 的例子。在非软件中使用软件协议通常不被建议。

我是否需要选择一种 copyleft 许可?

关于项目应该使用哪一种许可,可以用(已经有了)成篇累牍的文章在阐述。我的建议是首先将许可列表缩小,以满足你的哲学信条和项目目标。GitHub 的 choosealicense.com 是一种查找满足你的需求的许可协议的好方法。tl;drLegal 使用平实的语言来解释了许多常见和不常见的软件许可。而且也要考虑你的项目所在的生态系统,围绕一种特定语言和技术的项目经常使用相同或者相似的许可。如果你希望你的项目可以运行的更出色,你可能需要确保你选择的许可是兼容的。

作者:Ben Cotton

来源:51CTO

时间: 2024-07-28 23:36:55

基础知识普及:什么是Copyleft?的相关文章

完整的seo基础知识普及

百度权重查询 站长交易 友情链接交换 网站监控 服务器监控 SEO监控 站长最长说的一句口头禅就是:不懂搜索引擎原理的seoer就是在裸奔! 根据上图解释的搜索引擎工作原理,笔者要一步一步为大家解释,讲解.进行完整的seo基础知识普及. 1.www:我们的互联网,一个巨大的.复杂的体系; 2.搜集器:这个我们站长们就都熟悉了,我们对它的俗称也就是蜘蛛,爬虫,而他的工作任务就是访问页面,抓取页面,并下载页面; 3.控制器:蜘蛛下载下来的传给控制器,功能就是调度,比如公交集团的调度室,来控制发车时间

邮件营销基础知识普及

中介交易 SEO诊断 淘宝客 云主机 技术大厅 随着互联网的普及,越来越多的企业选用邮件营销作为自己的营销工具,今天全球装备网(www.zhuangbei.net)跟大家分享一下邮件营销的相关基础知识. 邮件营销的起源 Email营销的起源还得追溯到1994年4月12日,一对从事移民业务的夫妇坎特和西格尔,把一封"绿卡抽奖"的广告信发到他们可以发现的6500个新闻组,在当时引起疯狂的下载与转发.他们的"邮件炸弹"使很多服务商的服务出于瘫痪状态.后来者两位律师在199

Google搜索优化基础知识普及

Google公司(Google Inc.,NASDAQ:GOOG),是一家美国的上市公司(公有股份公司),于1998年9月7日以私有股份公司的型式创立,以设计并管理一个http://www.aliyun.com/zixun/aggregation/6300.html">互联网搜索引擎:Google公司总部位于加利福尼亚山景城,在全球各地都设有销售和工程办事处.Google网站于1999年下半年启动:2004年8月19日,Google公司的股票在纳斯达克(Nasdaq)上市,成为公有股份公司

Zigbee联盟基础知识普及

做智能家居,还要了解ZigBee联盟,不是做好产品就好吗,与ZigBee联盟有什么关系?在具体说明这个问题之前,我们不妨先来了解一下ZigBee. ZigBee实际是一种短距离.低功耗的无线通信技术,名称来源于 ZigZag--一种蜜蜂的肢体语言.当蜜蜂新发现一片花丛后会用特殊舞蹈来告知同伴发现的食物种类及位置等信息,是蜜蜂群体间一种简单.高效的传递信息方式,因此ZigBee 也被成为"紫蜂协议". 这样解释可能还是难以让人明白.简单说,ZigBee是一种类似于WiFi和蓝牙的通信协议

Fireworks 基础知识

作为第一款专门为设计主页图形而开发出来的软件,Fireworks确实做得非常出色,虽然Fireworks在某些方面仍有欠缺,仍有待提高,但她确确实实地给WEB设计带来了革命性的变化,给WEB图形设计者在设计网页图形时带来了前所未有的方便和快捷,给其它的图象处理软件带来了极大的冲击与推动.Fireworks的功能的确是强大,在这里先给大家说说它的一些基础知识,以便让大家很好的掌握. PNG文件格式 很多人预测PNG(Portable Network Graphics可移植的网络图形)将以其在WEB

无线上网基础知识浅述

无线上网基础知识是我们本文的重点.那么对于它的一些基础的标准参数我们都有做了详细的介绍.如果你最近去过机场.咖啡店.图书馆或旅馆,则你一定有过使用无线网络的机会.许多人还使用无线网络(也称为WiFi或802.11网络)来连接位于家中的计算机,越来越多的城市使用这种技术向居民提供免费或低成本的互联网接入.在不久的未来,无线网络可能会变得非常普及,你甚至可以在任何时间.任何地点访问互联网,而无需使用电线. 无线上网具有很多优点.无线网络易于建立且价格便宜.它们也不太显眼,除非你要特意寻找一个地方来使

网络知识普及:双网卡下知识知多少,路由表及网关那点事

重要提示: 做为一名开发人员,整天和网络打交道,学习一些网络的基础知识,有益于提升个人专业技能. 另外本文仅介绍网络知识,和番墙无关,请圣上明查,下面为正文内容.   五一快来了: 原来是打算发布 CYQ.Data 的V5版本或者写爱说说的相关技术文章, 后来想了想,也不和大伙纠结专业技术性问题. 今天就把一篇封存多年的草稿文章给写完了,和大伙说点不太技术的事情.   如果你有两个网卡,一个本地网卡一个无线网卡,两个都拔号上网了,那你知道你上网是通过哪个网卡上的不? 如果你有一个本网卡,又拔了V

补补嵌入式系统基础知识

(本文的大部分内容总结自网络,感谢作者的贡献!) 在物联网技术如火如荼的今天,嵌入式开发重新得到了广大IT从业人员的关注.那么,什么是嵌入式系统?嵌入式系统由哪几部分组成?嵌入式系统的特点都有哪些?嵌入式系统的开发流程是怎样的?本文将带领大家重温这些基础知识. 嵌入式系统简介 嵌入式系统是指以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗等严格要求的专用计算机系统.嵌入式系统一般应用于消费电子.智能家电.网络设备.医疗仪器.航天设备.工业控制等行业中.

《ADOBE PREMIERE PRO CS4标准培训教材》——第1章 数字视频基础知识 1.1 数字视频的基本概念

第1章 数字视频基础知识 学习要点 掌握数字视频的基本概念(包括帧速率.像素宽高比和色彩模式等) 掌握世界上通用的电视制式(包括NTSC和PAL),以及标清(SD)和高清(HD)的定义 掌握数字视频技术实际应用领域的相关知识(包括DVD和流媒体),及其发展方向 了解数字影视剪辑的基本理论,深入体会蒙太奇与剪辑的关系 1.1 数字视频的基本概念 从动画诞生的那时起,人们就不断探求一种能够存储.表现和传播动态画面信息的方式.在经历了电影和模拟信号电视之后,数字视频技术迅速发展起来,伴随着不断扩展的应