自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開源漫談之GNU GPL的前世今生

原創(chuàng)
開源
在開源社區(qū),許可協(xié)議代表著一種契約,一種法律,一種政治。根據(jù)Black Duck的統(tǒng)計(jì),目前全球開源項(xiàng)目中有超過半數(shù)使用了GNU GPL許可協(xié)議。GNU GPL到底是怎樣來的,又為什么會(huì)受到如此狂熱的支持?本篇文章將幫助你了解GPL的前世今生。

【51CTO獨(dú)家特稿】前段時(shí)間在51CTO發(fā)布過的一篇譯文對(duì)當(dāng)下最為流行的五大開源許可協(xié)議進(jìn)行了簡(jiǎn)單的介紹。由于參與開源運(yùn)動(dòng)的多為開發(fā)者與設(shè)計(jì)者,而開源許可協(xié)議的原文往往跟法律條文一樣難懂,導(dǎo)致開源社區(qū)的很多參與者并沒有對(duì)開源許可協(xié)議產(chǎn)生足夠的認(rèn)識(shí)。但事實(shí)上,了解開源許可協(xié)議不僅可以幫助我們更好的做出選擇,并且可以更加深入的參與開源社區(qū)的文化。

要了解開源許可協(xié)議,當(dāng)然要從GNU GPL開始說起。這個(gè)許可協(xié)議究竟是如何誕生,又是如何被社區(qū)接受并廣為使用的呢?請(qǐng)看下面的介紹。

GNU GPL條文概述

GNU General Public License,通常簡(jiǎn)稱為GPL,是當(dāng)下最為通用的開源許可協(xié)議。GPL的條文最早在1989年由Richard Stallman(RMS)撰寫,用于GNU項(xiàng)目。這位自由軟件之父在當(dāng)年提出了四大自由的訴求:

◆可以使用軟件做任何事的自由

◆可以根據(jù)自己需要任意修改軟件的自由

◆可以與別人分享軟件的自由

◆可以與別人分享自己對(duì)軟件所做改動(dòng)的自由

[[10781]] 

為了有效地保護(hù)這些自由,RMS將GPL定義為第一個(gè)、同時(shí)也是最為嚴(yán)格的Copyleft許可協(xié)議——也就是說,如果你使用了按照GPL發(fā)布的項(xiàng)目,那么你的項(xiàng)目也必須按照GPL許可協(xié)議發(fā)布,不得添加任何其他限制。(不過,Copyleft這個(gè)理念卻不是從GPL開始,而是從20世紀(jì)70年代起就有人開始實(shí)行的。)使用GPL協(xié)議的代碼制作的程序并非不能拿來賣錢,事實(shí)上RMS開始自由運(yùn)動(dòng)的第一筆經(jīng)費(fèi)就是通過售賣附在磁碟上的Emacs賺來的。GPL的主要規(guī)定在于源代碼必須自由公開。之后為了增強(qiáng)此協(xié)議的Copyleft效力以及與專有軟件代碼以及其他協(xié)議代碼的兼容性,RMS又先后在1991年和2007年敲定了GPLv2和GPLv3的條文。

使用GPL的知名開源項(xiàng)目

根據(jù)Black Duck Open Source Resource Center(直譯為黑鴨子開源資源中心,由Black Duck軟件公司發(fā)起建立并維護(hù)的數(shù)據(jù)庫)的調(diào)查,目前使用GNU GPLv2的開源項(xiàng)目是最多的。到今天為止(2010年5月)的統(tǒng)計(jì)中,GPLv2占據(jù)了全部開源項(xiàng)目當(dāng)中48.54%的比例,而GPLv3的使用率也已經(jīng)不低,達(dá)到了5.61%。這其中包括很多我們所熟悉的開源項(xiàng)目:

[[10782]] 

Linux:如日中天的操作系統(tǒng),和Unix以及整個(gè)自由軟件運(yùn)動(dòng)有著非常深的淵源。目前使用GPLv2(因此在理論上,所有的Linux發(fā)行版都遵循GPL許可協(xié)議)。

GNU系列:GNU Emacs,GNU調(diào)試器,GNU C編譯器等等。當(dāng)然,GNU項(xiàng)目已經(jīng)在使用GPLv3。

eMule電驢:眾所周知的P2P下載工具,目前使用GPLv2。有興趣的讀者可以看看他們翻譯的非官方GPL中文文本。

WordPress:流行的博客系統(tǒng),目前使用GPLv2。

Java:Java的HotSpot技術(shù)和Java語言編譯器javac從2006年開始采用GPLv2,不過條款中在GPLv2允許的范圍內(nèi)使用了linking exception(直譯為連接例外),所以是一個(gè)修改過的GPLv2。另外,同屬于Sun的Glassfish和NetBeans IDE也都采用此種許可協(xié)議。

MySQL:著名的開源數(shù)據(jù)庫。MySQL采用的是雙重許可協(xié)議——帶有例外的GPLv2,以及專有類型的最終用戶許可協(xié)議。這種雙重許可的方式是開源軟件發(fā)展多年的一個(gè)產(chǎn)物,這種方式允許廠商通過售賣開源軟件的許可證賺錢,為想要使用GPL開源項(xiàng)目而又不想公開自己代碼的用戶提供了另一種選擇。至于這種方法是否有利于開源界,以及是否會(huì)被用來鉆空子,目前還無法得出明確的結(jié)論。不過可以肯定的一點(diǎn)是,因?yàn)镸ySQL在GPLv2下發(fā)布,所以無論之后發(fā)生什么事,MySQL這個(gè)開源技術(shù)都是不可能被扼殺的。

#p#

GPL牽涉的法律案件回顧

須知RMS所做的遠(yuǎn)不止是開發(fā)了GNU項(xiàng)目以及確定了GNU GPL許可協(xié)議。為了自由軟件的推廣,RMS在1985年創(chuàng)建了自由軟件基金會(huì)(Free Software Foundation,F(xiàn)SF),并一直致力于解決自由軟件運(yùn)動(dòng)相關(guān)的法律和結(jié)構(gòu)問題。

可想而知,GPL在推出之后并開始流行的十多年間成為了很多專有軟件廠商的眼中釘。最早的一起直接針對(duì)GPL的法律訴訟發(fā)生在2003年8月,身為原告方的SCO Group以Linux內(nèi)核中使用了IBM AIX代碼,而AIX代碼又使用了SCO Unix代碼為由,將IBM告上了法庭。這一舉動(dòng)激發(fā)了Linux社區(qū)的公憤,IBM繼而聯(lián)手紅帽針對(duì)SCO提起反訴與上訴;之后SCO開始恐嚇不愿撤銷SCO Unix使用權(quán)的Linux用戶,并更進(jìn)一步展開了對(duì)Novell、AutoZone和DaimlerChrysler的訴訟。這一系列訴訟逐漸演變成了一場(chǎng)曠日持久的戰(zhàn)爭(zhēng)。

[[10783]] 

這場(chǎng)戰(zhàn)爭(zhēng)的戰(zhàn)場(chǎng)之一就在于GPL:根據(jù)SCO的申訴,SCO Unix的源代碼是當(dāng)時(shí)SCO的一些員工私自按照GPL發(fā)布的,因此不具備法律效力。SCO的發(fā)言人還進(jìn)一步表示,“GPL違背美國(guó)憲法,還有版權(quán),反托拉斯,及出口管制等法令。”但是,整個(gè)事情還要更加復(fù)雜:Unix原本是AT&T賣給Novell而Novell又賣給SCO的,(這段歷史可參考Unix傳奇一文)因此自由軟件和開源社區(qū)反過來質(zhì)疑SCO是否真正擁有Unix的所有權(quán);而FSF也站出來,依據(jù)GPL的條文捍衛(wèi)Linux用戶不受恐嚇的權(quán)利。

美國(guó)法院最終并沒有在GPL許可協(xié)議上進(jìn)行定論,但數(shù)年間的法律判決基本都對(duì)SCO不利,2005年的判決中甚至對(duì)SCO沒有提供侵權(quán)代碼的證據(jù)表示了直白的鄙夷。SCO最終在2007年申請(qǐng)了破產(chǎn)保護(hù),并希望賣出自己的Unix產(chǎn)品線,但這似乎也不可能了:美國(guó)法院在那一年宣判Unix屬于Novell,并在最近的2010年3月31日重復(fù)了這個(gè)判決。

雖然這場(chǎng)戰(zhàn)爭(zhēng)的主戰(zhàn)場(chǎng)與GPL關(guān)系不大,但Linux一方的勝利還是為GPL增添了一定力量。在2007年,一個(gè)FLOSS一方的叫做SFLC(Software Freedom Law Center,軟件自由法律中心)的法律團(tuán)體以違反GPL協(xié)議為由,代表BusyBox的兩位開發(fā)者將Monsoon Multimedia軟件廠商告上了法庭。在此之前,針對(duì)違反GPL協(xié)議的處理方法一直是由FSF等開源組織私下溝通解決的,因此此案成為了美國(guó)第一例因GPL而立案的案件。不過,這宗訴訟最后以雙方庭外和解的方式結(jié)束,GPL也因此失去了一次驗(yàn)證其法律有效性的機(jī)會(huì)。

為什么社區(qū)對(duì)GPL如此青睞?

GPL是一個(gè)代表了RMS的Copyleft理念的許可協(xié)議,在各種開源許可協(xié)議中屬于最為嚴(yán)格的一個(gè),可以說是直接阻礙了開發(fā)者通過販賣版權(quán)和專利軟件這種傳統(tǒng)的軟件賺錢營(yíng)生。但是為什么在這么多的開源項(xiàng)目當(dāng)中,使用GPL協(xié)議的項(xiàng)目占據(jù)了一半以上的高比例呢?由于開發(fā)者大多數(shù)專注于開發(fā)本身,而對(duì)許可協(xié)議這個(gè)概念并不十分重視,所以有些項(xiàng)目的發(fā)起人在沒有進(jìn)行深入了解的時(shí)候直接選取了流行的GPL協(xié)議,這是原因之一。不過有很多社區(qū)人士則明確的表達(dá)過自己選擇GPL的理由——

“GPL代表了自由。”

“我使用GPL,因?yàn)槲④浻憛捤?。我不用BSD,因?yàn)槲④浵矚g它。”

“GPL意味著分享,而BSD/MIT協(xié)議意味著偷竊。當(dāng)然,這取決于你如何定義分享與偷竊!”

眾多觀點(diǎn)之中,Linux之父Linus Torvalds的說明毫無疑問是值得了解的。在2008年的一次訪談中,Linus對(duì)許可協(xié)議的選擇是這樣評(píng)論的:

[[10784]] 

“我相信GPL(尤其是v2)是一個(gè)協(xié)同工作的絕佳模式——所有的人分享他們的代碼,同時(shí)確保沒有渾水摸魚者能夠利用他人的工作成果來為自己取得好處——你使用自己貢獻(xiàn)的源代碼來為你所獲得的源代碼進(jìn)行“支付”。我將其稱之為tit-for-tat模式,這種模式不僅適用于軟件界,也同樣在經(jīng)濟(jì)學(xué)與博弈論中十分出名。

不過這種tit-for-tat模式并非是所有人的需求。比如說,如果你隸屬標(biāo)準(zhǔn)委員會(huì),你只是希望能夠借由一段開源代碼的傳播來推廣一個(gè)標(biāo)準(zhǔn),而并不介意這段代碼是否會(huì)被用在專有軟件中盈利,那么Apache或BSD協(xié)議則比較合適。

即使單純是從理性的角度來看,不同許可協(xié)議的存在也都是合理的。同時(shí)我也要說,程序員們并非在任何時(shí)刻都是理性的。自負(fù)的心理,個(gè)人的特殊需求,都是導(dǎo)致眾多有細(xì)微差別的許可協(xié)議誕生的原因。

不過我們要知道,有選擇是件好事!而且非常流行的許可協(xié)議并不是那么多,所以基本上沒有什么可困擾的。”

講到這里,相信大家對(duì)于GNU GPL開源許可協(xié)議的由來和使用情況已經(jīng)有了相當(dāng)?shù)牧私?。?dāng)然正如同上面介紹的,在開源運(yùn)動(dòng)的發(fā)展歷程中,GPL并非是最早誕生的許可協(xié)議,而且隨著時(shí)間的推移與各種需求的影響,社區(qū)中出現(xiàn)了很多其他的開源許可協(xié)議,其中也有不少是由GPL修改而來的。這些其他的許可協(xié)議是如何誕生,它們和GPL有什么不同,而社區(qū)又為什么會(huì)選擇這些許可協(xié)議呢?我們?cè)谙乱黄恼轮袝?huì)繼續(xù)介紹。

【編輯推薦】

  1. 隱逸在GNU/Linux中的非自由軟件
  2. 詳解Linux內(nèi)核與GNU計(jì)劃
  3. 全面了解GNU計(jì)劃

 

責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2021-12-15 11:52:34

GPLLinuxGNU

2021-06-07 08:41:59

React異步組件

2011-08-23 09:52:31

CSS

2015-11-18 14:14:11

OPNFVNFV

2025-02-12 11:25:39

2014-07-30 10:55:27

2014-07-21 12:57:25

諾基亞微軟裁員

2013-05-23 16:23:42

Windows Azu微軟公有云

2014-07-15 10:31:07

asyncawait

2016-12-29 13:34:04

阿爾法狗圍棋計(jì)算機(jī)

2016-12-29 18:21:01

2019-06-04 09:00:07

Jenkins X開源開發(fā)人員

2021-06-17 07:08:19

Tapablewebpack JavaScript

2012-05-18 16:54:21

FedoraFedora 17

2016-11-08 19:19:06

2016-11-03 13:33:31

2011-05-13 09:43:27

產(chǎn)品經(jīng)理PM

2013-11-14 16:03:23

Android設(shè)計(jì)Android Des

2019-08-05 10:08:25

軟件操作系統(tǒng)程序員

2022-11-07 14:23:35

RPA人工智能流程自動(dòng)化管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)