欢迎注册 登录
阳光石油网|石油技术交流|石油人论坛 返回首页

墨雨知风的个人空间 http://bbs.sunpetro.club/?22509 [收藏] [复制] [RSS]

日志

关于自由软件和gpl

已有 451 次阅读2012-4-30 15:22 | 免费软件, 免费, software, Software, 软件源代码

自由软件(Free Software,根据自由软件基金会的定义,是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。这方面的不受限制正是自由软件最重要的本质,与自由软件相对的是非自由软件(proprietary software),也常被称为私有软件、封闭软件(其定义与是否收取费用无关)。要将软件以自由软件的形式发表,通常是让软件以自由软件授权协议的方式被分配发布(或是放置在公共领域),以及公开的软件源代码。
使用定义

自由软件的英文为“free software”“free”一词有自由免费的双重含意,因此要如何分辨自由软件(libre)和免费软件(gratis)?自由软件运动的创始人——理查德·斯托曼提供了以下的定义:自由软件的重点在于自由权,而非价格。要了解其所代表的概念,你应该将自由想成是言论自由,而不是免费啤酒”’。更精确的说,自由软件代表电脑使用者拥有选择和任何人合作之自由、拥有掌控他们所用的软件之自由。在GNU宣言(GNU Manifesto)中包含了斯托曼在一开始对自由软件使用定义的混淆。

大部分的自由软件都是在线上(online)发布,并且不收任何费用;或是以离线(off-line)实体的方式发行,有时会酌情收最低限度的费用(例如:工本费),而人们可用任何价格来贩售这些软件。然而,自由软件与商业软件是可以共同并立存在的︰因为禁止贩卖软件是违反了自由软件的定义。

最早的开放源代码(Open source)定义是在1998年创建,来自Debian的自由软件指引。当时大多数的开放源代码软件同时也是自由软件,反之亦然。

基于自由BSD的操作系统都是使用类似自由软件的授权协议,FreeBSDOpenBSD以及NetBSD,不同的是它们对于“Copyleft”的阐述。这些操作系统的使用者常认为“Copyleft”是一种对自由的过度限制,是一种自由的侵害。

免费软件(freeware)是一种不须付费就可取得的软件,但是通常有其他的限制,使用者并没有使用、复制、研究、修改和分发的自由。该软件的源代码不一定会公开,也有可能会限制重制及再发行的自由,所以免费软件的重点是不需要花钱,而不是自由的软件。

自由软件基金会(FSF)对自由软件的定义首次于1989年发表。这份定义后来被布鲁斯·裴伦斯(Bruce Perens)改写为《Debian Free Software Guidelines》(DFSGDebian自由软件指引)。
自由软件授权

根据斯托曼和自由软件基金会(FSF)的定义,自由软件赋予使用者四种自由:

    *
自由之零:不论目的为何,有使用该软件的自由。
    *
自由之一:有研究该软件如何运作的自由,并且得以改写该软件来符合使用者自身的需求。取得该软件之源码为达成此目的之前提。
    *
自由之二:有重新散布该软件的自由,所以每个人都可以借由散布自由软件来敦亲睦邻。
    *
自由之三: * 有改善再利用该软件的自由,并且可以发表改写版供公众使用,如此一来,整个社群都可以受惠。如前项,取得该软件之源码为达成此目的之前提。

如果一软件的使用者具有上述四种权利,则该软件得以被称之为自由软件。也就是说,使用者必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版,在任何地方给任何人使用。如果使用者不必问任何人或是支付任何的许可费用从事这些行为,就表示她/他拥有自由软件所赋予的自由权利。

GPL

使用者必须接受软件的软件授权,才能使用该软件,而在自由软件中,最常见的授权方式就是 GPL - GNU General Public License 了。

因为使用者是免费取得了自由软件的源代码,那么如果使用者修改了它的源代码,基于公平互惠的原则,使用者也必须公开其修改的成果。而这就是GPL的精神──自由、分享、互惠。

BSD
许可证

BSD
许可证(Berkeley Software Distribution license),是自由软件(开源软件的一个子集)中使用使用最广泛的许可证之一。BSD软件就是遵照这个许可证来发布,该许可证也因此而得名。

BSD
套件最初所有者是加州大学的董事会,这是由于BSD源自柏克莱加州大学。BSD开始后,BSD许可证得以修正,使得以后许多BSD变种,都采用类似风格的许可证。

跟其他许可证相比,从GNU通用公共许可证(GPL)到限制重重的着作权(Copyright),BSD许可证比较宽松,甚至跟公有领域更为接近。事实上,BSD许可证被认为是copycenter(中间版权),界乎标准的copyrightGPLcopyleft之间。"Take it down to the copy center and make as many copies as you want"
自由软件并不是没有版权

大部分的自由软件可以免费取得,并且它的源代码可以自由修改并散布但它并不是没有版权。版权是当某项作品完成时就自然产生了,不需申请或注册。以本文为例,本文在写作的同时,作者即拥用版权,任何人皆无法剥夺。而当使用者花钱购买某套软件时,所购买的只是使用权,使用者必须接受该软件的软件授权,才能使用这个软件;而软件的原作者则仍然保有其版权
自由软件并不使用封闭格式

封闭软件通常会使用专属的封闭格式,但这会极大地限制了使用者的自由度。而自由软件则完全不同,由于自由软件的源代码是公开的,所以它所使用的任何格式都是透明的。自由软件永远不会利用专属的封闭格式来限制使用者分发或修改的自由。
自由软件的精神领袖

自由软件的精神领袖是理查德·马修·斯托曼。他被人称为最后的真正黑客,他认为一个好的软件,应该自由自在地让人取用。软件不应该拿来做为相互倾轧、剥削的工具。所以他起草GNU通用公共许可证来保障自由软件的自由,并创办了自由软件基金会来贯彻他的理念。
开放源代码软件与自由软件

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

若要具体区分,可作这数项比较︰

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

2.
如果说自由软件会引起误解,(因为英文“Free”一词有自由免费的双重含意),那么开放源代码的名字会引起的误解则更多。开放源代码很容易让人以为只要把源代码公开出来就算是开放源代码了,但是如果使用者无法自由运用这些源代码,那么即使公开源代码也没有意义。有的软件公司只是为了想找使用者帮它除虫、帮它追踪编码,这样子会破坏了自由软件的原意。

3.
自由软件的原意就是要给予使用者运用软件的自由,这个自由就是自由软件的精神所在。但是为了商业化开放源代码却故意忽略了这个最重要的精神,反而无法让使用者体认到自由的真意,那么开放源代码这一个替代自由软件的辞句反而把自由的原意除去了。

而自由软件的精神领袖理查德·马修·斯托曼也很反对人们把开放源代码和自由软件混为一谈。(请参见:《Why Free Software is better than Open Source》一文)。

gnu

求助编辑百科名片

  

gnu计划形象照

GNU计划,又称革奴计划,是由Richard Stallman1983927日公开发起的。它的目标是创建一套完全自由的操作系统Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要重现当年软件界合作互助的团结精神。为保证GNU软件可以自由地使用、复制、修改和发布,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public LicenseGPL)。即反版权(或称Copyleft)概念。

目录

简介

历史

  

Stallman

  GNU“GNU's Not Unix”的递归缩写。Stallman宣布GNU应当发音为Guh-NOO以避免与new这个单词混淆(注:Gnu在英文中原意为非洲牛羚,发音与new相同)。UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件。

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

  到了1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器EmacsGCCGNU Compiler CollectionGNU编译器集合),是一套由 GNU 开发的编程语言编译器。以及大部分UNIX系统

  

GNU操作系统的内核Linux

的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核(称为HURD)

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

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

  GNU 包含3个协议条款,

  GPLGNU通用公共许可证(GNU General Public License

  LGPLGNU较宽松公共许可证 (GNU Lesser General Public License, ) ,旧称 GNU Library General Public License (GNU 库通用公共许可证)

  GFDL GNU自由文档许可证GNU Free Documentation License )的缩写形式。

  这里指的自由,并不是价格免费,这和价格无关而是使用软件对所有的用户来说是自由的。GPL

  

Linux内核的缔造者Linus Torvalds

通过如下途径实现这一目标:

  1.它要求软件以源代码的形式发布,并规定任何用户能够以源代码的形式将软件复制或发布给别的用户。

  2.如果用户的软件使用了受 GPL 保护的任何软件的一部分,那么该软件就继承了 GPL 软件,并因此而成为 GPL 软件,也就是说必须随应用程序一起发布源代码。

  3.GPL 并不排斥对自由软件进行商业性质的包装和发行,也不限制在自由软件的基础上打包发行其他非自由软件。

  由于GPL很难被商业软件所应用,它要求调用它的库的代码也得GPL,全部开放,并且一同发布,不能直接连接。所以后来GNU推出了LGPL许可证

  在GPLLGPL许可证保护下发布源代码的结果很相似,对旧代码所做的任何修改对于想知道这些代码的人必须是公开的,唯一真正的不同之处在于私人版权代码是否可以与开放源代码相互连接,LGPL允许实体连接私人代码到开放源代码,并可以在任何形式下发布这些合成的二进制代码。只要这些代码是动态连接的就没有限制。(使用动态链接时,即使是程序在运行中调用函数库中的函数时,应用程序本身和函数库也是不同的实体

 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

QQ|Archiver|手机版|小黑屋|阳光石油网 ( 鲁ICP备2021003870号-1 )

GMT+8, 2024-6-11 13:42 , Processed in 0.036536 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

返回顶部