GNU (GNU is Not Unix 的递归缩写)计划,又称革奴计划,是由 Richard Stallman 在 1983 年 9 月 27 日公开发起的。它的目标是建立一套彻底自由的操做系统。Richard Stallman 最先是在 net.unix-wizards 新闻组上公布该消息,并附带《GNU 宣言》等解释为什么发起该计划的文章,其中一个理由就是要“重现当年软件界合做互助的团结精神”。程序员
为保证 GNU 软件能够自由地“使用、复制、修改和发布”,全部 GNU 软件都有一份在禁止其余人添加任何限制的状况下受权全部权利给任何人的协议条款,GNU 通用公共许可证(GNU General Public License,GPL)。即“反版权”(或称 Copyleft)概念。编程
1985 年 Richard Stallman 又创立了自由软件基金会(Free Software Foundation)来为 GNU 计划提供技术、法律以及财政支持。尽管 GNU 计划大部分时候是由我的自愿无偿贡献,但 FSF 有时仍是会聘请程序员帮助编写。当 GNU 计划开始逐渐得到成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是以后被 Red Hat 兼并的 Cygnus Solutions。网络
1991年 Linus Torvalds 编写出了与 UNIX 兼容的 Linux 操做系统内核并在 GPL 条款下发布。Linux以后在网上普遍流传,许多程序员参与了开发与修改。1992 年 Linux 与其余 GNU 软件结合,彻底自由的操做系统正式诞生。该操做系统每每被称为“GNU/Linux”或简称 Linux。(尽管如此 GNU 计划本身的内核 Hurd 依然在开发中,已经发布 Beta 版本。)编程语言
GNU 包含3个协议条款,编辑器
这里指的自由,并非价格免费,这和价格无关而是使用软件对全部的用户来讲是自由的。GPL 经过以下途径实现这一目标:函数
GPL 只是规定用户在获取你的程序的时候必须能够得到源代码,但并无规定必须免费(GPL 能够免费,也能够收费),所以理论上说,你仍然能够收取费用。不过,因为 GPL 规定你不得阻止用户再分发,所以用户彻底能够从你这里买来代码以后再免费送给全部其它人,所以对于 GPL 代码想要收费发布难度是很大的,目前比较可行的办法是像 Redhat 那样,经过提供订阅和服务的方式来收费,提供一些额外的增值服务吸引用户交费。工具
固然,若是你的程序只是本身内部使用,并无分发给用户的话,那就不存在必须开源的问题了。程序的生成物是不被看做程序的一部分的,所以你使用一个开源的库搭建了一个网站,若是仅仅将生成物,也就是生成的 HTML 页面,展现给用户,而不出售网站自己的代码的话,是不须要开源的。网站
若是你的确须要发布你的程序,但又不想开源,规避 GPL 的方法是经过 LPC 或者 RPC 间接调用库里的接口。只要库和你的程序不运行在同一进程下,就不须要开源。操作系统
另外,你须要区分 GPL 和 LGPL。LGPL 的要求比 GPL 低,你能够动态连接一个 LGPL 的库而不须要开源你本身的程序,而 GPL 是不行的。 开放源代码
GPL,是 General Public License 的缩写,是一份 GNU 通用公共受权非正式的中文翻译。它并不是由自由软件基金会所发表,亦非使用GNU通用公共受权的软件的法定发布条款─直有GNU通用公共受权英文原文的版本始具备此等效力。
AGPL(The GNU Affero General Public License),AGPL是GPL的一个补充, 在GPL的基础上加了一些限制。原有的GPL协议,因为如今网络服务公司兴起(如:Google)产生了必定的漏洞,好比使用GPL的自由软件,可是并不发布与网络之中,则能够自由的使用GPL协议却不开源本身私有的解决方案。AGPL则增长了对此作法的约束。