浅谈GPL前世今生 (gpl意味着什么)

教程大全 2025-07-16 11:25:19 浏览

GPL是有自由软件基金会创始人,GNU项目发起者,Stallmam教主撰写。初稿是在早期gnu项目emacs,gcc,gdb协议的基础上,在1989年1月提出来gpl协议,gpl全称为GNU General Public License的,GNU通用公共授权。

在讲解GPL之前,我们必须先了解什么是GNU?

GNU:GNU’s not unix。也叫革奴计划。

GNU的创始人,理查德·马修·斯托曼。

GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。

这个操作系统是GNU计划的主要目标,名称来自**GNU’s Not Unix!**的缩写 【这种递归式命名方法也只有程序猿大神才能想起来】

可以说GNU也是一个软件集合,如:Emas,gcc,bash,gawk等。

由于没有内核(可以理解成还在实验室里就GNU系统就被淘汰了)。

因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。

在二战(1939-1945)结束后,计算机产业刚刚兴起的时候,闭源软件的概念还未出生。那是个一切代码都免费共享,可以随意修改、再发行的时代。

后来,开始有人只发行闭源的程序,这通常是一种原始代码几乎不可能被单纯地破译的二进制文件。1983年,IBM成为大型企业中第一个发行闭源软件的公司;AT&T公司紧随其后,原本免费的Unix在更新后要价数万美元…

平日使用的Unix突然开始收费,还如此昂贵,这让很多人难以接受。

其中,有一个叫Richard Stallman(人称 RMS)的人站出来了。他推出了 GNU计划 ,希望有朝一日,从操作系统到各式应用软件,都能免费开源得让大家使用。

而具体的办法,就是在发布软件的同时包括我们今天提到的 GPL 许可证。

GPL许可协议(GNU General Public License):只要软件中包含有其他GPL协议的产品或代码,那么该软件就必须也采用GPL许可协议且开源及免费。

具有以下特点:

4. 通俗的讲下GPL到底有什么作用?

总结成一句话,修改后必须以GPL授权开源发布。

只要在代码中加入这个名叫GPL的许可证,你就能保证软件的用户能够自由地运行、研究、分享和修改你的代码了。

而且,从你的软件衍生出的一切修改版本,都必须遵守这个许可协议。

一个有意思的地方是,拥有代码的人有权利用代码开发软件并盈利。

但是,在有人花钱买走软件之后,这个人可以随意把买到的软件分享给其他人,而不必担心侵权,甚至是被告上法庭——因为对于遵守开源协议的软件来说,压根不存在“盗版”的概念。

由此可见,开源协议大大地提高了软件使用者的权利。

理解了GNU的精神,也就能理解GPL在说些什么,其实就是开源。

在现实生活中,我们受益于 GPL的地方,其实很多,几乎所有的操作系统,除了windows,其他的几乎都是基于linux开源代码改写的。

DM9000是Davicom公司生产的一款非常流行的网卡芯片。

第一个红框声明了代码的版权属于作者 Sten Wang 。第二个红框则是说使用者需要遵守 GPL协议(GNU General Public License)。

Linus Torvalds 认为 GPL 是 Linux 成功的重要部分

虽然不是每个开源软件都喜欢 GPL,但是如果没有 GPL ,或许不会有如今的 Linux 和整个开源世界。

以下节选自Linus Torvalds自传《知识为了好玩》

当时的演讲者是理查德·斯多曼(RichardStallman)。此人是自由软件的鼓吹者。1983年,他开始研究UNIX的一个替代物,将其称作GNU系统,其含义是“GUN不是UNIX”(GNU是“GNUisNotUNIX”的字首缩略语--译注)。这更重要的是,RMS(理查德·斯多曼希望别人这样称呼他)还撰写了《自由软件宣言》和自由软件产权证书,即GPL。他首先提出的关于开放源代码的概念完全是有意的,而并非出于偶然,和UNIX最初的开放发展理念是相吻合的。我后来为Linux使用的就是GPL。就这样,我再一次走在了自己的前面。事实是,为了使Linux有用,我曾依赖过很多在网上免费下载的工具――我把自己放到了巨人的肩膀上。这些免费软件中最重要的是GCC编译器,它是理查德·斯多曼的杰作,并且已经在公共执照协会(GPL)上注册了版权。在GPL条款之下,钱不是问题,只要有人愿意买,你可以卖一百万美元。但是,你必须提供软件来源。而得到或买到你的来源的人,将拥有和你一样多的对于该程序的。这实在是很高明的一招。我认可GPL的原则,但是和那些认为所有的软件创新都应该在GPL下向全世界公开的顽固的GPL信仰者不同,我认为发明者本人有决定如何处置自己的发明的权利。于是,我抛弃了自己旧有的版权声明,采纳了GPL的内容,一个斯多曼也曾经和他的律师一道签署过的文件(因为有律师的参与,该文件被搞得洋洋洒洒有好几页)。我担心,在现实中,如果有个美国人侵犯了我的版权,我无法对其提起诉讼。现在这仍是我的担心。状告某人侵权很容易,而我的担心是,有的人会即使被起诉也继续从事这种违法行为,除非加诸某种强制执行的法律行动他们才会停止。同时我也不断地担心,在像中国这样的地方,企业并不承认GPL的效力,从而也不会尊重我的版权。事实上,这些地方的法律体系对侵犯版权的制止在当时并不得力(中国已经签署了一系列的国际公约,林纳斯在这里谈的是1991年的情况――译注),而且,为防止违法行为的投入在这些地方被认为是不划算的。大软件公司和唱片公司曾作过努力,但是成效不大。不过,事实减轻了我的担忧。有的人确实会暂时侵犯我的版权,但是他们往往也是那些尊重版权、反馈改进意见、使系统功能得以提高的人。他们将是系统升级过程中的一分子。总的来说,我从两个方面看版权。比如一个每月挣五十美元的人,他可能会为一个软件花费二百五十美元吗?如果花一点钱买非法拷贝软件,而把五个月的工资用于吃饱肚子,我一点不觉得他不道德。这种侵权是道义上可以接受的。去追捕这种“侵权者”是不道德的,更不要说简直就是愚蠢的。就Linux而言,谁在乎如果只将其用于个人目的时,一个人是否真正遵循了GPL呢?那些想藉此赚大钱的人们,才是真正不道德的,不管他们是在美国还是非洲,也不管程度如何。贪欲从来就不是善的。正如开放源代码在1998年吸引了全世界的目光,最大的争议之一就在于其名字本身。在此之前,已有了诸如GPL所许可的“自由软件”,我们会提到软件共享现象,以及通常所谈论的“自由软件运动”。这一用法源于“自由软件基金会”(FreeSoftwarefoundation),该基金会由理查德·斯多曼于1985年为促进自由软件工程而创立,比如GUN和由他发起的FreeUNIX。没准,像艾立克·雷蒙德这样的新教徒会发现新闻记者们全搞错了。“free”一词真的意味着免收任何费用吗?“free”真的意味着没有任何限制吗?“free”真的意味着自由自在吗?经过几周私人信函的往来,我们最终达成了一致意见:比起“free”来,我们更愿意使用“open”(开放)一词。从此,自由软件运动变成了开放软件运动。对于那些乐意将此一场运动的人来讲,我猜这的确是一场运动。自由软件基金会仍然被称之为自由软件基金会,而理查德·斯多曼也仍旧是幕后在心理上进行策划的人。1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.

其他开源协议比较

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,

需要满足三个条件:

BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在 必要的时候可以修改或者二次开发。

Apache Licence是著名的非盈利开源组织Apache采用的协议。

该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。

需要满足的条件也和BSD类似:

你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需 要并作为开源或商业产品发布/销售。

LGPL是GPL的一个为主要为类库使用设计的开源协议。

和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。

LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。

这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。

因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制。

也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

四、 大名鼎鼎android内核是Linux,那他是如何规避GPL的

下图是一个完整的Android软件系统所用到的所有协议分布。

与Android关系最为密切的主要包括两个方面:驱动和glibc

glibc是linux上的主流的c运行时库,几乎每个linux程序都会简介的依赖c运行时库。

由于glibc是gpl授权的,因此如果采用glibc作为crt,按照前述问题的第二条,这些程序必须开源。

因此安卓采用bionic作为c运行时库替代glibc来规避gpl

再说驱动,Android是基于Linux 内核开发的,Linux内核是GPL授权。

传统的驱动是要作为内核模块被加入到内核中的。

gpl意味着什么

而内核模块属于Linux内核的衍生产品,需要遵守GPL协议开源发布。

Android是由开放手机联盟共同完成的,为了保护联盟中手机生产商的利益,驱动不能被完全开源。

因此安卓引入HAL,给linux内核开了个后门,增加了一些系统调用。

HAL在内核的部分按照GPL的要求开源。

驱动开发者可以在用户态使用这些新增的系统调用完成驱动的开发。从而在驱动方面规避了GPL。

进一步了解:

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space), 其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?

从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内核空间,可能会损害厂家的利益。我们知道,Linux内核源代码版权遵循GNU License,而Android源代码版权遵循Apache License,前者在发布产品时,必须公布源代码,而后者无须发布源代码。如果把对硬件支持的所有代码都放在Linux驱动层,那就意味着发布时要公开驱动程序的源代码,而公开源代码就意味着把硬件的相关参数和实现都公开了,在手机市场竞争激烈的今天,这对厂家来说,损害是非常大的。

因此,Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了,这样就可以把商业秘密隐藏起来了。

也正是由于这个分层的原因,Android被踢出了Linux内核主线代码树中。大家想想,Android放在内核空间的驱动程序对硬件的支持是不完整的,把Linux内核移植到别的机器上去时,由于缺乏硬件抽象层的支持,硬件就完全不能用了,这也是为什么说Android是开放系统而不是开源系统的原因。

五、软件其他几个相关的版权概念

copyright就是俗称的版权,也叫著作权。

版权又称著作权,用来表述创作者因其文学和艺术作品而享有的权利。版权的取得有两种方式:自动取得和登记取得。在中国,按照著作权法规定,作品完成就自动有版权(百度百科)。

简单来说,版权(copyright)只是规定是谁对作品享有权利,而具体享有哪些权力,需要参照当地法律。

比如一种定义是:

根据规定,作者享受下列权利:

在此基础上,作者还可以制定授权协议(license),来具体地界定使用者的权利。

也就是说,

比如,商业化的授权协议(license)可能会倾向于强调,使用者的哪些行为是侵权行为,从而保护自己的商业利益。

而与这一商业化的授权风格相对的是,RMS等人引领的copyleft的思潮。这一思想在保护作者的基本版权之余, 可以让作者通过在作品中添加开源协议(license),从而放大用户的权力。

比如我们今天的主角,RMS在198为GNU项目拟定的 GLP 协议,允许用户自由地运行、研究、分享和修改源代码。


1/(1+ex)的不定积分怎么算

∫e^x/(1+e^x) dx=∫1/(1+e^x) dex=∫1/(1+e^x) d(e^x+1)=ln(e^x+1)+C C为任意实数扩展资料不定积分是在微积分中,一个函数f的不定积分,或原函数,或反导数,是一个导数等于f的函数F,即F′=f。 不定积分和定积分间的关系由微积分基本定理确定。 设F(x)是函数f(x)的一个原函数,我们把函数f(x)的所有原函数F(x)+ C(其中,C为任意常数)叫做函数f(x)的不定积分,又叫做函数f(x)的反导数,记作∫f(x)dx或者∫f(高等微积分中常省去dx),即∫f(x)dx=F(x)+C。 其中∫叫做积分号,f(x)叫做被积函数,x叫做积分变量,f(x)dx叫做被积式,C叫做积分常数或积分常量,求已知函数的不定积分的过程叫做对这个函数进行不定积分。

在我没上線的時候,谁看我的资料傻傻的發呆?

爱你的人

我需要一篇摘抄 最好写事的 400字

妈妈的话最近感觉自己的作文进步很大,老师也总表扬我,说我的辞藻丰富,用语优美。 听完心里很是甜蜜,周日回家,禁不住想向妈妈炫耀一番。 春天来了,杨树、柳树也抽出了嫩绿的芽。 我指着嫩芽对妈妈说:“妈妈,快看,杨柳吐芽了!”我很得意,因为我觉得这个“吐”字用得不错。 “是啊,”妈妈答道,“杨柳爆青了!”“爆青?”我不由自主地又重复了一遍,多好的词儿啊!“爆”字不仅写出了新春,杨柳发芽的迅猛,“青”字更使春天多了一份温柔希望,为什么我就没想到呢?我不禁有些惭愧。 心里那股得意顿时溜走了。 回到学校,我上阅读课愈加认真,《读者》《智慧背囊》《时文选粹》我一一品味,《诗刊》《散文》《小小说》我用心领悟,《新作文》《学海拾贝》《妙词佳句》我精心筛选……同学们都说我是“小词海”了。 又一个周日,我和妈妈去菜园浇地。 由于多天没有浇水了,一颗颗菜都耷拉着脑袋,快枯萎了。 等浇过了水,它们一个个都活过来似的,油光水润的。 我想了想说道:“青菜喝过水后,一个个都昂起了头。 ”说完,笑容爬上了我的脸庞。 “喝”“昂起头”,这些词多么富有人情味!“是啊,菜们洗过澡后,一个个精神头十足呢!”妈妈一边拔野草,一边附和我道。 笑容一下子僵在了脸上,我呆住了。 妈妈只是一个普通的农村妇女,她甚至没有上过初中,可她的语言却比我丰富,比我有表现力。 这是为什么呢?怀揣着大团疑问,我问妈妈,她只是笑笑,说:“和别人说话时,觉得人家说得好,我就琢磨琢磨;看电视时,听着剧中人物的话有意思时,我就重复重复。 时间长了,我就这么说话了。 ”妈妈的话令我茅塞顿开,是啊,学习是没有止境的,除了学书本上的,生活中还有很多值得我学习的。 想想自己,只积累了一点词语,就得意忘形,真是浅薄幼稚。 未来的日子里,我会改变自己。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐