学习Linux很久了,却对GUN,Linux,Linux发行版等无所了解,是不是觉得很对不起自己啊。呵呵,所以我就在网上找了些资料,总结在一起,还算是比较能说明问题的。

什么是Linux?
  也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。
  既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指 GNU/Linux ,即采用Linux内核的GNU操作系统。是的,操作系统的实际名称是GNU。什么是GNU?GNU代表GNU’s Not Unix。可以说是一个操作系统又可以说是一种规范。比如,众所周知的PHP,原名为Personal HomePage(个人主页),根据GNU的软件命名规则,PHP现已更名为PHP: Hypertext Preprocessor(超文本预处理程序)。

注释:什么是 GNU/Linux?

Linux 是一种计算机操作系统:一系列能让您与计算机进行交互操作并运行其它程序的程序。操作系统由多种基础程序构成。它们使计算机可以与用户进行交流并接受指令,读取数据或将其写入硬盘、磁带或打印机,控制内存的使用,以及运行其它软件。操作系统最重要的组成部分是内核。在 GNU/Linux 系统中,Linux 就是内核组件。而该系统的其余部分主要是由 GNU 工程编写和提供的程序组成。因为单独的 Linux 内核并不能成为一个可以正常工作的操作系统,所以我们更倾向使用 “GNU/Linux” 一词来表达人们通常所说的 “Linux”

Linux 是以 Unix 操作系统为原型创造的。自从诞生之日起,它就被设计成一种多任务、多用户的系统。这些特点使 Linux 完全不同于其它著名的操作系统。事实上,Linux 比您所能想象到更加特别。与其它操作系统绝然相反的是,没人真正拥有 Linux其大部分开发工作都是由无偿的志愿者完成的。

后来演变为 GNU/Linux 系统的开发工作开始于 1984 年。当时,自由软件基金会开始研发被称为 GNU 的自由的类 Unix 操作系统。

GNU 工程开发了大量用于 Unix的自由软件工具和类 Unix 操作系统,例如 Linux。这些工具使用户能执行从日常俗事(例如在系统中复制和删除文件) 到神秘操作(例如书写和编译程序或对多种文档格式进行熟练的编辑工作) 的各种任务。

虽然有许多组织和个人都对 Linux 的发展作出了帮助,但是自由软件基金会依然是最大的单个贡献者。他不仅仅创造了绝大部分在 Linux 中使用的工具,还为 Linux 的存在提供了理论和社会基础。

Linux 内核的首次面世是在 1991 年。当时,名为 Linus Torvalds 的芬兰计算机科学系学生在 Usenet 新闻组 comp.os.minix 上发布了一种 Minix 替代内核的早期版本。请看 Linux International Linux 历史。

在几个可信赖代理人的帮助下,Linus Torvalds 一直协调着数百位开发人员的工作。有关 linux-kernel 邮件列表上讨论内容的每周纪要在 Kernel Traffic上可以看到。更多有关 linux-kernel 邮件列表的信息请参考 linux-kernel 邮件列表问答。

Linux 用户在挑选软件方面有着极大的自由。例如,Linux 用户可以选择几十种不同的命令行外壳和多种图形桌面。这通常让其它操作系统的用户手足无措,他们甚至从来没想过命令行和桌面其实是可以更换的。

Linux 很少会崩溃、适合在同一时间运行多个程序,而且比大多数操作系统更为安全。有了这些优势,Linux 成为在服务器市场上增长最快的操作系统。近来,它还开始在家庭和商业用户中变得越来越流行。

 

谁编写/创造了Linux?
  Linux最早由Linus Torvalds在1991年开始编写。在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及GNU项目,并不断的编写创建GNU程序(程序的许可方式均为GPL: General Public License)。在不断的有程序员和开发者加入到GNU组织中后,变造就了今天我们所看到的Linux,或称GNU/Linux。

GNU是一个技术组织,发起者是一个叫Richard Stallman的人,他是Might and Magic时代的一个英雄(关于他的传说,请参考Eric Ramond的《黑客发展史》)。
这个组织中黑客云集,而且多是掌握核心技术的真正高手,他们的作品多是编译器、词法/语法分析器、底层函数库等大作。更重要的不是他们的技术,而是他们的哲学!他们的哲学就是技术上的“共产主义”——人人为我,我为人人。他们发布了一种版权许可协议——GPL——一个神圣的宣言。与中庸而谦和的BSD协议不同,它充满着革命的活力和斗争精神,它的出现标志着一个新世界——GPL世界——的诞生!
GNU本来向开发自己的操作系统——HURD,但是因为种种原因进度非常慢。这时候,一个荷兰黑客制作出了Linux,并宣布:遵循GPL版权可协议。Linux的发展非常快,他本身遵循GPL版权可协议,同时又把GNU的很多软件集成了进去(注意,Linux仅仅是一个内核,不包含外围的应用程序),所以现在我们使用的Linux系统,应该完整地称之为GNU/Linux才对。

什么是Linux发行版?
  正如之前所说的,Linux只是一个内核。然而,一个完整的操作系统不仅仅是内核而已。所以,许多个人、组织和企业,开发了基于GNU/Linux的Linux发行版。这其中最著名的便是Red Hat公司的Red Hat系列以及社区(community)组织的Debian系列。
  下面我就简单得介绍一下目前比较著名、流行的Linux发行版本。部分资料来源:DistroWatch.com
Mandriva

 

  Mandriva原名Mandrake,最早由Ga?l Duval创建并在1998年7月发布。记得前两年国内刚开始普及Linux时,Mandrake非常流行。说起Mandrake的历史,其实最早Mandrake的开发者是基于Redhat进行开发的。Redhat默认采用GNOME桌面系统,而Mandrake将之改为KDE。而由于当时的Linux普遍比较难安装,不适合第一次接触Linux的新手,所以Mandrake还简化了安装系统。我想这也是当时Mandrake在国内如此红火的原因之一。Mandrake在易用性方面的确是下了不少功夫,包括默认情况下的硬件检测等。
  Mandrake的开发完全透明化,包括“cooker”。当系统有了新的测试版本后,便可以在cooker上找到。之前Mandrake的新版本的发布速度很快,但从9.0之后便开始减缓。估计是希望能够延长版本的生命力以确保稳定和安全性。
  优点:友好的操作界面,图形配置工具,庞大的社区技术支持,NTFS分区大小变更
  缺点:部分版本bug较多,最新版本只先发布给Mandrake俱乐部的成员
  软件包管理系统:urpmi (RPM)
  免费下载:FTP即时发布下载,ISO在版本发布后数星期内提供
  官方主页:http://www.mandrivalinux.com/
  
Red Hat

 

  国内,乃至是全世界的Linux用户所最熟悉、最耳闻能详的发行版想必就是Red Hat了。Red Hat最早由Bob Young和Marc Ewing在1995年创建。而公司在最近才开始真正步入盈利时代,归功于收费的Red Hat Enterprise Linux(RHEL,Red Hat的企业版)。而正统的Red Hat版本早已停止技术支持,最后一版是Red Hat 9.0。于是,目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,以及由社区开发的免费的Fedora Core。Fedora Core 1发布于2003年年末,而FC的定位便是桌面用户。FC提供了最新的软件包,同时,它的版本更新周期也非常短,仅六个月。目前最新版本为FC 3,而FC4也预定将于今年6月发布。这也是为什么服务器上一般不推荐采用Fedora Core。
  适用于服务器的版本是Red Hat Enterprise Linux,而由于这是个收费的操作系统。于是,国内外许多企业或空间商选择CentOS。CentOS可以算是RHEL的克隆版,但它最大的好处是免费!菜鸟油目前的服务器便采用的CentOS 3.4。

   优点:拥有数量庞大的用户,优秀的社区技术支持,许多创新
  缺点:免费版(Fedora Core)版本生命周期太短,多媒体支持不佳
  软件包管理系统:up2date (RPM), YUM (RPM)
  免费下载:是
  官方主页:http://www.redhat.com/
  
SUSE
  

 

  SUSE是德国最著名的Linux发行版,在全世界范围中也享有较高的声誉。SUSE自主开发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购。
  
  SUSE之后的发布显得比较混乱,比如9.0版本是收费的,而10.0版本(也许由于各种压力)又免费发布。这使得一部分用户感到困惑,也转而使用其它发行版本。但是,瑕不掩瑜,SUSE仍然是一个非常专业、优秀的发行版。
  优点:专业,易用的YaST软件包管理系统
  缺点:FTP发布通常要比零售版晚1~3个月
  软件包管理系统:YaST (RPM), 第三方APT (RPM) 软件库(repository)
  免费下载:取决于版本
  官方主页:http://www.suse.com/
  
Debian GNU/Linux
  

 

  Debian是菜鸟油服务器之前所采用的操作系统。Debian最早由Ian Murdock于1993年创建。可以算是迄今为止,最遵循GNU规范的Linux系统。Debian系统分为三个版本分支(branch):stable, testing 和 unstable。截至2005年5月,这三个版本分支分别对应的具体版本为:Woody, Sarge 和 Sid。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而Woody一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。菜鸟油之前所采用的是Debian Sarge。
  
  为何有如此多的用户痴迷于Debian呢(包括笔者在内)?apt-get / dpkg是原因之一。dpkg是Debian系列特有的软件包管理工具,它被誉为所有Linux软件包管理工具(比如RPM)最强大的!配合apt-get,在Debian上安装、升级、删除和管理软件变得异常容易。许多Debian的用户都开玩笑的说,Debian将他们养懒了,因为只要简单得敲一下”apt-get upgrade && apt-get update”,机器上所有的软件就会自动更新了……
  
  优点:遵循GNU规范,100%免费,优秀的网络和社区资源,强大的apt-get
  缺点:安装相对不易,stable分支的软件极度过时
  软件包管理系统:APT (DEB)
  免费下载:是
  官方主页:http://www.debian.org/
  
  Ubuntu
  

 

  笔者的桌面电脑便使用的Ubuntu。依照笔者的理解,简单而言,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux操作系统。:) Ubuntu是一个相对较新的发行版,但是,它的出现可能改变了许多潜在用户对Linux的看法。也许,从前人们会认为Linux难以安装、难以使用,但是,Ubuntu出现后,这些都成为了历史。Ubuntu基于Debian Sid,所以这也就是笔者所说的,Ubuntu拥有Debian的所有优点,包括apt-get。然而,不仅如此而已,Ubuntu默认采用的GNOME桌面系统也将Ubuntu的界面装饰的简易而不失华丽。当然,如果你是一个KDE的拥护者的话,Kubuntu同样适合你!
  Ubuntu的安装非常的人性化,只要按照提示一步一步进行,安装和Windows同样简便!并且,Ubuntu被誉为对硬件支持最好最全面的Linux发行版之一,许多在其他发行版上无法使用,或者默认配置时无法使用的硬件,在Ubuntu上轻松搞定。并且,Ubuntu采用自行加强的内核(kernel),安全性方面更上一层楼。并且,Ubuntu默认不能直接root登陆,必须从第一个创建的用户通过su或sudo来获取root权限(这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。Ubuntu的版本周期为六个月,弥补优点:人气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持,可从Debian Woody直接升级
  缺点:还未建立成熟的商业模式
  软件包管理系统:APT (DEB)
  免费下载:是
  官方主页:http://www.ubuntulinux.org/
  
Gentoo
  

 

  Gentoo最初由Daniel Robbins(前Stampede Linux和FreeBSD的开发者之一)创建。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——portage。(Ports和Portage都是用于在线更新软件的系统,类似apt-get,但还是有很大不同)Gentoo的首个稳定版本发布于2002年。
  Gentoo的出名是因为其高度的自定制性:因为它是一个基于源代码的(source-based)发行版。尽管安装时可以选择预先编译好的软件包,但是大部分使用Gentoo的用户都选择自己手动编译。这也是为什么Gentoo适合比较有Linux使用经验的老手使用的原因。但是要注意的是,由于编译软件需要消耗大量的时间,所以如果你所有的软件都自己编译,并安装KDE桌面系统等比较大的软件包,可能需要几天时间才能编译完……
  优点:高度的可定制性,完整的使用手册,媲美Ports的Portage系统,适合“臭美”的高手使用^^
  缺点:编译耗时多,安装缓慢
  软件包管理系统:Portage (SRC)
  免费下载:是
  官方主页:http://www.gentoo.org/
Slackware
  

 

  Slackware由Patrick Volkerding创建于1992年。算起来应当是历史最悠久的Linux发行版。曾经Slackware非常的流行,但是当Linux越来越普及,用户的技术层面越来越广(更多的新手)后,Slackware渐渐的被新来的人们所遗忘。在其他主流发行版强调易用性的时候,Slackware依然固执的追求最原始的效率——所有的配置均还是要通过配置文件来进行。
  尽管如此,Slackware仍然深入人心(大部分都是比较有经验的Linux老手)。Slackware稳定、安全,所以仍然有大批的忠实用户。由于Slackware尽量采用原版的软件包而不进行任何修改,所以制造新bug的几率便低了很多。Slackware的版本更新周期较长(大约1年),但是新版本的软件仍然不间断的提供给用户下载。
  优点:非常稳定、安全,高度坚持UNIX的规范
  缺点:所有的配置均通过编辑文件来进行,自动硬件检测能力较差
  软件包管理系统:Slackware Package Management (TGZ)
  免费下载:是
  官方主页:http://www.slackware.com/
Knoppix

 

  由德国的Klaus Knopper开发的Knoppix,是一个基于Debian的发行版。Knoppix严格算起来是一款LiveCD Linux,所谓的LiveCD就是整个操作系统都在一张光盘上,只要开机从光盘启动,就能拥有一个完整的Linux系统!无需安装!当然,Knoppix也能够非常轻松的安装到硬盘上。其强大的硬件检测能力、系统修复能力、即时压缩传输技术,都令人大加称赞。可以说,在LiveCD界,Knoppix是无人能及的!
  
  优点:无需安装可直接运行于CD上,优秀的硬件检测能力,可作为系统急救盘使用
  缺点:LiveCD由于光盘的数据读取速度限制导致性能大幅下降
  软件包管理系统:APT (DEB)
  免费下载:是
  官方主页:http://www.knoppix.com/
  
MEPIS

 

  MEPIS由Warren Woodford在2003年建立。MEPIS虽然刚建立不久,但是迅速的传播在Linux用户间。简单来说,MEPIS是一个集合了Debian Sid和Knoppix的产物。用户即能将之当作LiveCD使用,也能使用常规的图形界面进行安装。
  MEPIS默认集成安装了JavaRuntime Environment、Flash插件、nVidia加速驱动等许多常用的程序。用户可以非常轻松的安装完系统后就直接开始使用,而不用到处寻找资料如何下载、如何安装、如何配置这些软件。这不仅给Linux新手带来了便捷,也给老手们节约了相当多的时间。

 优点:LiveCD与常规安装两用,优秀的硬件检测能力,预装了许多实用的软件
  缺点:建立时间不长,默认的界面有些寒酸
  软件包管理系统:APT (DEB)
  免费下载:是
  官方主页:http://www.mepis.org/
Xandros

 

  Xandros建立在已经成为历史的Corel Linux之上。当初Corel Linux的公司由于财政上的困难,被迫终止了Corel Linux的开发,而Xandros适时的将Corel Linux部门买下,于2002年10月推出全新的Xandros Desktop。
  
  Xandros的卖点在于极其简单的安装和使用,所以它的市场定位是那些没有任何Linux使用经验的新手,或是习惯使用Windows的用户。Xandros的标准版和增强版都是商业软件,分别售价$40和$99美元。不过你仍然可以在这里下载到免费的公开发行版。
  
  优点:适合完全没有经验的新手,安装完以后就能立即投入使用,自带非常不错的工具
  缺点:商业软件
  软件包管理系统:Xandros Networks (DEB) 或 APT (DEB) (可选,但不提供技术支持)
  免费下载:公开发行版
  官方主页:http://www.xandros.com/
  
FreeBSD
  

 

  首先要强调的是:FreeBSD不是一个Linux系统! 可是,为什么笔者要介绍FreeBSD呢?因为FreeBSD的用户也相当多,其许多特性都与Linux相类似。事实上,Linux和BSD(Berkeley Software Distribution)均是UNIX的演化分支。并且,Linux中相当多的特性和功能(比如用于配置DNS的Bind软件)都是取自于BSD的。而FreeBSD便是BSD家族中最出名,用户数量最多的一个发行版。MEZOC之前所采用的便是FreeBSD系统。
  
  FreeBSD建立于1993年,拥有相当长的历史。FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。另外,FreeBSD会不定期的发布新的版本,称为RELEASE,stable和current均有自己的RELEASE版本。比如4.11-RELEASE和5.3-RELEASE,请注意,这并不代表后者比前者的版本新。这仅仅代表前者(数字小的版本)是stable版本,后者(数字大的版本)是current版本。
  
  FreeBSD除了作为服务器系统外,也适合桌面用户。不过,考虑到软件方面的兼容性,一般用户选择FreeBSD作为桌面系统不是很明智。作为服务器而言,FreeBSD是相当优秀的。曾经有人说过,同样的服务器硬件配置,运行同样的一个vBulletin论坛,FreeBSD所用的资源要比Linux少。这也是为什么许多空间商极力推崇FreeBSD的原因。:)
  
  优点:速度快,非常稳定,优秀的使用手册,Ports系统
  缺点:比起Linux而言对硬件的支持较差,对于桌面系统而言软件的兼容性是个问题
  软件包管理系统:Ports (TBZ)
  免费下载:是
  官方主页:http://www.freebsd.org/

了Debian更新缓慢的不足。

注释:

GUN

GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。

GNU是“GNU's Not Unix”的递归缩写。Stallman宣布GNU应当发音为Guh-NOO,与canoe发音相同,以避免与gnu(非洲牛羚,发音与new相同)这个单词混淆。

UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件。

为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。这个就是被称为“反版权”(或称Copyleft)的概念。

1985年Richard Stallman又创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。尽管GNU计划大部分时候是由个人自愿无偿贡献,但FSF有时还是会聘请程序员帮助编写。当GNU计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被Red Hat兼并的Cygnus Solutions。

到了1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器Emacs,C语言编译器GCC,以及大部分UNIX系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核(称为HURD)。

1991年Linus Torvalds编写出了与UNIX兼容的Linux操作系统内核并在GPL条款下发布。Linux之后在网上广泛流传,许多程序员参与了开发与修改。1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。(尽管如此GNU计划自己的内核Hurd依然在开发中,目前已经发布Beta版本。)

许多UNIX系统上也安装了GNU软件,因为GNU软件的质量比之前UNIX的软件还要好。GNU工具还被广泛地移植到Windows和Mac OS上

总之,GNU是一项伟大的计划

取自"http://wiki.ccw.com.cn/GNU"

 

GPL

GNU通用公共许可证(简称为GPL),是由自由软件基金会发行的用于计算机软件的许可证。最初由Richard Stallman为GNU计划而撰写。目前大多数的GNU程序和超过半数的自由软件使用此许可证。此许可证最新版本为“版本2”,1991年发布。GNU宽通用公共许可证(简称LGPL)是由GPL衍生出的许可证,被用于一些GNU程序库。

目录

1 自由

2 历史

2.1 GPLv3

3 条款

3.1 授予的权利

3.2 copyleft

3.3 GPL是许可证

4 版权所有人

5 争议

6 兼容性

7 批评

自由

GPL授予程序接受人以下权利,或称“自由”:

以任何目的运行此程序的自由;

以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提);再发行复制件的自由;

改进此程序,并公开发布改进的自由(能得到源代码是前提)相反地,随版权所有软件的最终用户许可证几乎从不授予用户任何权利(除了使用的权利),甚至可能限制法律允许的行为,比如逆向工程。

GPL与其他一些更“许可的”自由软件许可证(比如BSD许可证)相比,主要区别就在于GPL寻求确保上述自由能在复制件及演绎作品中得到保障。它通过一种由Stallman发明的叫Copyleft的法律机制实现,即要求GPL程序的演绎作品也要在GPL之下。相反,BSD式的许可证并不禁止演绎作品变成版权所有软件。

由于某些原因,GPL成为了自由软件和开源软件的最流行许可证。到2004年4月,GPL已占Freshmeat上所列的自由软件的约75%,SourceForge的约68%。类似的,2001年一项关于Red Hat Linux 7.1的调查显示器一般的代码以GPL发布。著名的GPL自由软件包括Linux核心和GCC。

历史

GPL由Richard Stallman撰写,用于GNU计划。它以GNU Emacs、GDB、GCC的许可证的早期版本为蓝本。这些许可证都包含有一些GPL的版权思想,但仅只针对特定程序。Stallman的目标就是创造出一种四海之内皆可使用的许可证,这样就能为许多源代码共享计划带来福音。GPL版本1就这样,在1989年1月诞生。

到1990年时,因为一些共享库而出现了对比GPL更宽松的许可证的需求。所以当GPL版本2在1991年6月发布时,另一许可证——库通用许可证(Library General Public License,简称LGPL)也随之发布,并记作“版本2”以示对GPL的补充。版本号在LGPL版本2.1发布时不再相同,而LGPL也被重命名为GNU宽通用公共许可证(Lesser General Public License)以体现GNU哲学观。

GPLv3

到2005年,GPL版本3正由Richard Stallman起草,由Eben Moglen和Software Freedom Law Center提供法律咨询。.

Stallman2006年2月25日在自由及开源软件开发者欧洲会议的演讲上说: 在所有的改动中,最重要的四个:

解决软件专利问题;

与其他许可证的兼容性;

源代码分割和组成的定义;

解决数字版权管理 (数字限制管理) 问题。

2006年,自由软件基金会针对GPL的可能的修改开始了12个月的公共咨询。 GPLv3草稿于2006年1月16日开始可用。版本2与3的非官方比较对照参见: Stallman预计GPLv3将在2006年7月份另一草稿起草后,在2006年10月份或2007年年初完成。

条款

授予的权利

此GPL的条款和条件适用于任何收到GPL下的作品的人(即“许可证接受人”)。任何接受这些条款和条件的许可证接受人都有修改、复制、再发行作品或作品的演绎版本的授权。许可证接受人可以对此项服务收取费用,反之亦然。这一点是GPL与其他禁止商业用途的自由软件许可证最大的不同。Stallman认为自由软件不应限制其商业用途,同时GPL清楚地说明了这一点。

但GPL又规定发行者不能限制GPL授予的权利。例如,这禁止对软件在单纯沉默(消极默示)式协议或合同下的发行。GPL下的发行者同时也同意在软件中使用的专利可以在其它GPL软件中使用。

copyleft

GPL不会授予许可证接受人无限的权利。再发行权的授予需要许可证接受人开放软件的源代码,及所有修改。且复制件、修改版本,都必须以GPL为许可证。

这些要求就是copyleft,它的基础就是作品在法律上版权所有。由于它版权所有,许可证接受人就无权进行修改和再发行(除合理使用),除非它有一个copyleft条款。如果某人想行使通常被法律所禁止的权利,只需同意GPL的条款。相反地,如果某人发行软件违反了GPL(比如不开放源代码),他就有可能被原作者起诉。

copyleft利用版权法来达到与其相反的目的: copyleft给人不可剥夺的权利,而不是版权法所规定的诸多限制。这也是GPL被称作“被黑的版权法”的原因。

许多GPL软件发行者都把源代码与可执行程序捆绑起来。另一方式就是以物理介质(比如CD)为载体提供源代码。在实践中,许多GPL软件都是在互联网上发行的,源代码也有许多可以FTP方式得到。

copyleft只在程序再发行时发生效力。对软件的修改可以不公开或开放源代码,只要不发行。注意copyleft只对软件有效力,而对软件的输出并无效力(除非输出的是软件本身)。不过这在GPL版本3中可能会有改动。

GPL是许可证

GPL设计为一种许可证,而不是合同。在英美法系国家,许可证与合同有法律上的明确区别:合同由合同法保障效力,而GPL作为一种许可证有版权法保障效力。不过在许多采用欧陆法系的国家并无此种区别。

GPL原理简单:在版权法下,你不遵守GPL的条款和条件你就没有相应权利。而作品在没有GPL的情况下,版权法作为默认条款发生效力,而不是作品进入公有领域。

版权所有人

GPL文本是版权所有的,且著作权人人是自由软件基金会(FSF)。但是,FSF没有在GPL下发行作品的著作权(除非作者制定FSF是著作权人)。只有著作权人才有权对许可证的违反进行起诉。

FSF允许人们使用以GPL为基础的其他许可证,但不允许演绎的许可证未经授权地使用GPL的前言。不过像这样的许可证通常与GPL不兼容。 GNU计划创立的其他许可证包括:GNU宽通用公共许可证和GNU自由文档许可证。

争议

一个关于GPL重要的争议是,非GPL软件是否可以动态链接到GPL库。GPL对GPL作品的演绎作品在GPL下发布规定很明确。但是对于动态链接到GPL库的作品是否是演绎作品就规定得不清楚了。自由和开放源代码社区为此分成两派,FSF认为这种作品就是演绎作品,但其他专家并不同意。这个问题根本的并不关乎GPL本身,而是一个版权法如何定义演绎作品。美国联邦上诉法院第九巡回审判庭在Galoob v. Nintendo案对演绎作品尝试定义,但最终没有明确的结果。

不幸的是,许多开发者觉得这是个技术问题。不对,这完全是法律问题。不过由于迄今为止没有案例表明有人以动态链接的方式来绕过GPL的条款或者并被起诉,动态链接的限制已经是事实上地(de facto)有效,不论它是否是法律上地(de jure)有效。

2002年,MySQL AB公司起诉Progress NuSphere侵犯版权和商标。NuSphere被指以链接代码的形式侵犯了著作权。最终此案以调解结束。在听证期间,法官“认为没有什么原因”(不管是否是动态链接)会使得GPL失去法律效力。

2003年8月,SCO Group称他们认为GPL没有法律效力,且准备就在Linux核心中使用的SCO Unix代码进行诉讼。参见:en:SCO-Linux争议和en:SCO诉IBM(英文)。

2004年4月,在SiteCom拒绝停止发行Netfilter项目的GPL软件后,慕尼黑地区法庭据对GPL条款的侵犯判定对SiteCom进行临时性禁令(诉前停止侵犯专利权行为的措施)。同年7月,法庭确认此勒令为对SiteCom最终判决。此判决明显的印证了FSF的法律顾问Eben Moglen的预言:

“被告侵犯了原告的著作权:提供了软件netfilter/iptables的广告及下载,但没有遵守GPL的条款。可以说,如果被告有许可证许可,这些行为是完全合法的……原被告就GPL是否达成协议这是一个独立的问题。如果当事人没有同意,被告将没有复制、发行、公开‘netfilter/iptables’的权利。” 此判决十分重要,因为它是全球首次法庭确认GPL是有法律效力的。

2005年5月,Daniel Wallace于美国联邦印第安纳南区地方法院起诉自由软件基金会,因为二者对GPL是否是非法意见不一。后诉讼于3月结束,因为Wallace没有有效的反托拉斯陈述。法庭注意到“GPL鼓励,而不是反对电脑操作系统的自由竞争和发行,这直接使消费者受益。”Wallace被拒绝改变诉由,并被要求支付诉讼费用。

兼容性

大多数自由软件许可证,比如MIT/X许可证、BSD许可证、LGPL,都是“GPL兼容的”,即它们的代码与GPL代码混用无冲突(但新代码则是GPL下的)。但是有某些开源软件许可证不是GPL兼容的。通常意见是开发者仅只使用GPL兼容的许可证,以免法律问题。

批评

2001年微软的首席执行官Steve Ballmer称Linux为“癌症”,因为GPL的影响。微软的批评指出,微软憎恶GPL的真正原因是因为对微软的“包围、扩展、消灭”策略起了反作用。注意微软已以GPL为许可证发行了SFU(Microsoft Windows Services for UNIX)中所包含的部分组件,例如 gcc。

GPL的批评者常常认为GPL是有“传染性”的“病毒” ,因为GPL条款规定演绎作品也必须是GPL的。由于“演绎作品”通常被解释为包含GPL代码或动态链接到GPL库(如上)的软件,“病毒说”来源于GPL对于许可证的强制继承的要求。这正是GPL与BSD式许可证的哲学思想上的差异。GPL的支持者确信自由软件应确保其演绎作品同样“自由”,但其他人认为自由软件应给用户最大的自由。

Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍的更多相关文章

  1. Linux各个发行版本的介绍, 以及VirtualBox+CentOS的安装步骤

    Linux和Unix系统有哪些主要的发行版本 Unix: (非开源传统商业操作系统) IBM AIX, HP HP-UX, Sun Solaris,等 各家硬件厂商的发行版本, 往往是和自家的硬件设备 ...

  2. 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)

    一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...

  3. 各种Linux发行版本优缺点对比[转]

    转自:http://www.zzbeidaqingniao.com/linux/20100127/1495.html linux最早由Linus Benedict Torvalds在1991年开始编写 ...

  4. Linux各发行版本 优缺点 简介

    2008.01.21 13:43 Linux最早由Linus Benedict Torvalds在1991年开始编写.在这之前,RichardStallman创建了Free SoftwareFound ...

  5. Linux十大顶级发行版本

    当前顶级发行版概览   对于Linux新手来说,在各发行版之间困惑得进行选择和不断增加的数量实在令人头晕.这就是写作本文的原因,其中列出的10个(附加一个值得一提的FreeBSD,BSD一族中最为流行 ...

  6. Linux 发行版本简述

            在撰写这篇文章前,先向linux创始人 Linus Torvalds 先生致敬,感谢您二十多年前的无私开源!         其次向二十多年来维护更新的开发者们致敬!      Lin ...

  7. Linux 发行版本简介

    1991年的10月5日Linus Benedict Torvalds在comp.os.minix 新闻组上发布消息,正式向外宣布他自行编写的完全自由免费的内核诞生(Freeminix-like ker ...

  8. <实训|第二天>掌握linux6.7中安装vmware、vmware安装linux发行版本以及遇到的问题最后libreoffice的安装

    期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到 ...

  9. 查看linux发行版本、内核版本命令

    查看linux发行版本: $lsb_release -a 查看linux内核版本: $cat /proc/version 或 $uname -a

随机推荐

  1. 错误与修复:ASP.NET无法检测IE10,IE11,导致_doPostBack未定义JavaScript错误,恒处于F5卷动条位置

    <browsers>  <browser id="IE11" parentID="Mozilla">    <identifica ...

  2. asp.net打印网页后自动关闭网页【无需插件】

    项目遇需要网页加载自动打印网页后需要自动关闭该网页,但是百度了好久发现都是需要插件什么的 于是就自己摸索摸索,用js弄了个定时器,意外的发现,当打印设置窗口弹出后,定时器就暂停了 不管你点击取消或者打 ...

  3. 记录在IIS中安装部署Orchard遇到的问题

    本机环境:Windows 8.1 + IIS8.5 + VS2013+SQLServer2012 首先是从官网直接下载Orchard.Web 1.7.2版的安装包,在本机IIS上部署,按官方文档一步步 ...

  4. Getting Started with Core Data

    Getting Started with Core Data Getting Started with Core Data Coreframework支持创建对象模型封装你的应用数据和逻辑满足MVC设 ...

  5. TOGAF架构能力框架之架构能力建设和架构治理

    TOGAF架构能力框架之架构能力建设和架构治理 为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能 ...

  6. JavaScript 跨域方法总结

    同源策略 在客户端编程语言中,如javascript和 ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同源策略规定跨域之间的脚本是隔离的,一个域的脚 ...

  7. 温故而知新之java的collection framwork

    经常用到的List,Map等这些数据结构,都是来自于java的util包下,而java对于其整体设计,简称为collection framwork.(ps.其实,Map接口并不继承自collectio ...

  8. [新概念英语II 笔记] Lesson 3: Please Send Me a Card

    发现身边很多程序员都能看懂英文技术文章的60%-80%内容,但大家都有一个毛病,就是不会说,不会写作,在逛英文技术社区的时候,想发表点什么评论,总担心自己写的话有错误.究其原因, 我觉得主要原因是因为 ...

  9. UIButton根据不同的状态设置layer

    这需要用到KVO,监听button的highlighted属性的变化,在监听回调里根据监听到得属性值设置layer 设置监听如下 [button  addObserver:self forKeyPat ...

  10. 强悍的跨平台开源多媒体中心XBMC介绍

    强悍的跨平台开源多媒体中心XBMC介绍 最近都在了解Android下的音视频,因为最近需要做一个多媒体中心的APP,其中了解了一个开源项目XMBC,一个十分强大的开源多媒体中心,而且可以应用在多个平台 ...