偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一篇帶你了解GPL前世今生

系統(tǒng) Linux
從事Linux開發(fā)的朋友一定都聽過GPL,那么到底什么是GPL呢?他有什么作用呢?本文給大家做詳細講解。

[[440575]]

從事Linux開發(fā)的朋友一定都聽過GPL,那么到底什么是GPL呢?他有什么作用呢?本文給大家做詳細講解。

一、GNU/GPL

在講解GPL之前,我們必須先了解什么是GNU?

1. 什么是GNU

GNU:GNU's not unix。也叫革奴計劃。

GNU的創(chuàng)始人,理查德·馬修·斯托曼。

GNU是一個自由的操作系統(tǒng),其內(nèi)容軟件完全以GPL方式發(fā)布。

這個操作系統(tǒng)是GNU計劃的主要目標,名稱來自**GNU's Not Unix!**的縮寫 【這種遞歸式命名方法也只有程序猿大神才能想起來】

可以說GNU也是一個軟件集合,如:Emas,gcc,bash,gawk等。

由于沒有內(nèi)核(可以理解成還在實驗室里就GNU系統(tǒng)就被淘汰了)。

因為GNU的設(shè)計類似Unix,但它不包含具著作權(quán)的Unix代碼。

2. GNU歷史

在二戰(zhàn)(1939-1945)結(jié)束后,計算機產(chǎn)業(yè)剛剛興起的時候,閉源軟件的概念還未出生。那是個一切代碼都免費共享,可以隨意修改、再發(fā)行的時代。

后來,開始有人只發(fā)行閉源的程序,這通常是一種原始代碼幾乎不可能被單純地破譯的二進制文件。1983年,IBM成為大型企業(yè)中第一個發(fā)行閉源軟件的公司;AT&T公司緊隨其后,原本免費的Unix在更新后要價數(shù)萬美元…

平日使用的Unix突然開始收費,還如此昂貴,這讓很多人難以接受。

其中,有一個叫Richard Stallman(人稱 RMS)的人站出來了。他推出了 GNU計劃 ,希望有朝一日,從操作系統(tǒng)到各式應(yīng)用軟件,都能免費開源得讓大家使用。

[[440576]]

而具體的辦法,就是在發(fā)布軟件的同時包括我們今天提到的 GPL 許可證。

3. 什么是GPL

GPL許可協(xié)議(GNU General Public License):只要軟件中包含有其他GPL協(xié)議的產(chǎn)品或代碼,那么該軟件就必須也采用GPL許可協(xié)議且開源及免費。

具有以下特點:

  • 復(fù)制自由:允許將軟件復(fù)制到任何人的電腦中,并且不限制復(fù)制的數(shù)量。
  • 傳播自由:允許以各種形式進行傳播。
  • 收費傳播:允許在各種媒介上出售該軟件,但必需提前讓買家知道這個軟件是可以免費獲得的,并解釋收費的理由(一般來講都是能夠為用戶提供某種服務(wù),以技術(shù)服務(wù)的形式來收費)。
  • 修改自由:允許開發(fā)人員增加或刪除軟件的功能,但必須依然基于GPL許可協(xié)議授權(quán)。

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

總結(jié)成一句話,修改后必須以GPL授權(quán)開源發(fā)布。

只要在代碼中加入這個名叫GPL的許可證,你就能保證軟件的用戶能夠自由地運行、研究、分享和修改你的代碼了。

而且,從你的軟件衍生出的一切修改版本,都必須遵守這個許可協(xié)議。

一個有意思的地方是,擁有代碼的人有權(quán)利用代碼開發(fā)軟件并盈利。

但是,在有人花錢買走軟件之后,這個人可以隨意把買到的軟件分享給其他人,而不必擔心侵權(quán),甚至是被告上法庭——因為對于遵守開源協(xié)議的軟件來說,壓根不存在“盜版”的概念。

由此可見,開源協(xié)議大大地提高了軟件使用者的權(quán)利。

理解了GNU的精神,也就能理解GPL在說些什么,其實就是開源。

在現(xiàn)實生活中,我們受益于 GPL的地方,其實很多,幾乎所有的操作系統(tǒng),除了windows,其他的幾乎都是基于linux開源代碼改寫的。

5. 舉例

以下是Linux內(nèi)核中網(wǎng)卡DM9000的驅(qū)動程序版權(quán)聲明:

DM9000是Davicom公司生產(chǎn)的一款非常流行的網(wǎng)卡芯片。

第一個紅框聲明了代碼的版權(quán)屬于作者 Sten Wang 。第二個紅框則是說使用者需要遵守 GPL協(xié)議(GNU General Public License)。

二、GPL與Linux

Linus Torvalds 認為 GPL 是 Linux 成功的重要部分

雖然不是每個開源軟件都喜歡 GPL,但是如果沒有 GPL ,或許不會有如今的 Linux 和整個開源世界。

以下節(jié)選自Linus Torvalds自傳《知識為了好玩》

  1. 當時的演講者是理查德·斯多曼(Richard Stallman) 。 此人是自由軟件的鼓吹者。 
  2. 1983年, 他開始研究UNIX的一個替代物, 將其稱作GNU系統(tǒng), 其含義是“GUN不是 
  3. UNIX”(GNU是“GNU is Not UNIX”的字首縮略語--譯注) 。 這 
  4.  
  5. 更重要的是, RMS(理查德·斯多曼希望別人這樣稱呼他) 還撰寫了《自由軟件宣 
  6. 言》 和自由軟件產(chǎn)權(quán)證書, 即GPL。 他首先提出的關(guān)于開放源代碼的概念完全是有意的, 
  7. 而并非出于偶然, 和UNIX最初的開放發(fā)展理念是相吻合的。 
  8.  
  9. 我后來為Linux使用的就是GPL。 就這樣, 我再一次走在了自己的前面。 
  10. 事實是, 為了使Linux有用, 我曾依賴過很多在網(wǎng)上免費下載的工具――我把自己 
  11. 放到了巨人的肩膀上。  
  12.  
  13. 這些免費軟件中最重要的是GCC編譯器, 它是理查德·斯多曼的杰 
  14. 作, 并且已經(jīng)在公共執(zhí)照協(xié)會(GPL)上注冊了版權(quán)。 在GPL條款之下, 錢不是問題, 只要 
  15. 有人愿意買, 你可以賣一百萬美元。 但是, 你必須提供軟件來源。 而得到或買到你的來源 
  16. 的人, 將擁有和你一樣多的對于該程序的。  
  17.  
  18. 這實在是很高明的一招。 我認可GPL的原則, 
  19. 但是和那些認為所有的軟件創(chuàng)新都應(yīng)該在GPL下向全世界公開的頑固的GPL信仰者不同,我認為發(fā)明者本人有決定如何處置自己的發(fā)明的權(quán)利。 
  20. 于是, 我拋棄了自己舊有的版權(quán)聲明, 采納了GPL的內(nèi)容, 一個斯多曼也曾經(jīng)和他的 
  21. 律師一道簽署過的文件(因為有律師的參與, 該文件被搞得洋洋灑灑有好幾頁)。 
  22.  
  23.  我擔心, 在現(xiàn)實中, 如果有個美國人侵犯了我的版權(quán), 我無法對其提起訴訟。 現(xiàn)在 
  24. 這仍是我的擔心。 狀告某人侵權(quán)很容易, 而我的擔心是, 有的人會即使被起訴也繼續(xù)從事 
  25. 這種違法行為, 除非加諸某種強制執(zhí)行的法律行動他們才會停止。 同時我也不斷地擔心, 
  26. 在像中國這樣的地方, 企業(yè)并不承認GPL的效力, 從而也不會尊重我的版權(quán)。 
  27.  
  28. 事實上, 這些地方的法律體系對侵犯版權(quán)的制止在當時并不得力(中國已經(jīng)簽署了一 
  29. 系列的國際公約, 林納斯在這里談的是1991年的情況――譯注), 而且, 為防止違法行為 
  30. 的投入在這些地方被認為是不劃算的。 大軟件公司和唱片公司曾作過努力, 但是成效不 
  31. 大。 
  32.  
  33. 不過, 事實減輕了我的擔憂。 有的人確實會暫時侵犯我的版權(quán), 但是他們往往也是那 
  34. 些尊重版權(quán)、 反饋改進意見、 使系統(tǒng)功能得以提高的人。 他們將是系統(tǒng)升級過程中的一分 
  35. 子。  
  36.  
  37. 總的來說, 我從兩個方面看版權(quán)。 比如一個每月掙五十美元的人, 他可能會為一個軟 
  38. 件花費二百五十美元嗎? 如果花一點錢買非法拷貝軟件, 而把五個月的工資用于吃飽肚 
  39. 子, 我一點不覺得他不道德。 這種侵權(quán)是道義上可以接受的。 去追捕這種“侵權(quán)者”是不道 
  40. 德的, 更不要說簡直就是愚蠢的。 就Linux而言, 誰在乎如果只將其用于個人目的時, 一 
  41. 個人是否真正遵循了GPL呢? 那些想藉此賺大錢的人們, 才是真正不道德的, 不管他們是 
  42. 在美國還是非洲, 也不管程度如何。 
  43.  
  44. 貪欲從來就不是善的。 
  45.  
  46. 正如開放源代碼在1998年吸引了全世界的目光, 最大的爭議之一就在于其名字本身。 在此 
  47. 之前, 已有了諸如GPL所許可的“自由軟件”, 我們會提到軟件共享現(xiàn)象, 以及通常所談?wù)?nbsp;
  48. 的“自由軟件運動”。 這一用法源于“自由軟件基金會”(Free Software Foundation) , 該基 
  49. 金會由理查德·斯多曼于1985年為促進自由軟件工程而創(chuàng)立, 比如GUN和由他發(fā)起的FreeUNIX。 
  50. 沒準, 像艾立克·雷蒙德這樣的新教徒會發(fā)現(xiàn)新聞記者們?nèi)沐e了。  
  51.  
  52. free”一詞真的意 
  53. 味著免收任何費用嗎? “free”真的意味著沒有任何限制嗎? “free”真的意味著自由自在嗎? 
  54. 經(jīng)過幾周私人信函的往來, 我們最終達成了一致意見: 比起“free”來, 我們更愿意使 
  55. 用“open”(開放) 一詞。 從此, 自由軟件運動變成了開放軟件運動。 對于那些樂意將此一 
  56. 場運動的人來講, 我猜這的確是一場運動。 自由軟件基金會仍然被稱之為自由軟件基金 
  57. 會, 而理查德·斯多曼也仍舊是幕后在心理上進行策劃的人。 

三、其他開源協(xié)議(BSD,Apache,LGPL,MIT)

其他開源協(xié)議比較

1. BSD開源協(xié)議(original BSD license、FreeBSD license、Original BSD license)

BSD開源協(xié)議是一個給于使用者很大自由的協(xié)議?;旧鲜褂谜呖梢?rdquo;為所欲為”,可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布。

但”為所欲為”的前提當你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎(chǔ)做二次開發(fā)自己的產(chǎn)品時,

需要滿足三個條件:

  1. 如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協(xié)議。
  2. 如果再發(fā)布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權(quán)聲明中包含原來代碼中的BSD協(xié)議。
  3. 不可以用開源代碼的作者/機構(gòu)名字和原來產(chǎn)品的名字做市場推廣。

BSD代碼鼓勵代碼共享,但需要尊重代碼作者的著作權(quán)。BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開發(fā)商業(yè)軟件發(fā)布和銷售,因此是對商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開源產(chǎn)品的時候都首選BSD協(xié)議,因為可以完全控制這些第三方的代碼,在 必要的時候可以修改或者二次開發(fā)。

2. Apache(Apache License, Version 2.0、Apache License, Version1.1、Apache License, Version 1.0)

Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。

該協(xié)議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件)。

需要滿足的條件也和BSD類似:

  1. 需要給代碼的用戶一份Apache Licence,如果你修改了代碼,需要在被修改的文件中說明。
  2. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標,專利聲明和其他原來作者規(guī)定需要包含的說明。
  3. 如果再發(fā)布的產(chǎn)品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。

你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對Apache Licence構(gòu)成更改。

Apache Licence也是對商業(yè)應(yīng)用友好的許可。使用者也可以在需要的時候修改代碼來滿足需 要并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售。

3. LGPL(GNU Lesser General Public License)

LGPL是GPL的一個為主要為類庫使用設(shè)計的開源協(xié)議。

和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須采用GPL協(xié)議不同。

LGPL允許商業(yè)軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼。

這使得采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。

但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。

因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用,但不適合希望以LGPL協(xié)議代碼為基礎(chǔ),通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。

GPL/LGPL都保障原作者的知識產(chǎn)權(quán),避免有人利用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品

4. MIT(MIT)

MIT是和BSD一樣寬范的許可協(xié)議,作者只想保留版權(quán),而無任何其他了限制。

也就是說,你必須在你的發(fā)行版里包含原許可協(xié)議的聲明,無論你是以二進制發(fā)布的還是以源代碼發(fā)布的。

四、 大名鼎鼎Android內(nèi)核是Linux,那他是如何規(guī)避GPL的

下圖是一個完整的Android軟件系統(tǒng)所用到的所有協(xié)議分布。

與Android關(guān)系最為密切的主要包括兩個方面:驅(qū)動和glibc

1. glibc

glibc是linux上的主流的c運行時庫,幾乎每個linux程序都會簡介的依賴c運行時庫。

由于glibc是gpl授權(quán)的,因此如果采用glibc作為crt,按照前述問題的第二條,這些程序必須開源。

因此安卓采用bionic作為c運行時庫替代glibc來規(guī)避gpl

2. 驅(qū)動

再說驅(qū)動,Android是基于Linux 內(nèi)核開發(fā)的,Linux內(nèi)核是GPL授權(quán)。

傳統(tǒng)的驅(qū)動是要作為內(nèi)核模塊被加入到內(nèi)核中的。

而內(nèi)核模塊屬于Linux內(nèi)核的衍生產(chǎn)品,需要遵守GPL協(xié)議開源發(fā)布。

Android是由開放手機聯(lián)盟共同完成的,為了保護聯(lián)盟中手機生產(chǎn)商的利益,驅(qū)動不能被完全開源。

因此安卓引入HAL,給linux內(nèi)核開了個后門,增加了一些系統(tǒng)調(diào)用。

HAL在內(nèi)核的部分按照GPL的要求開源。

驅(qū)動開發(fā)者可以在用戶態(tài)使用這些新增的系統(tǒng)調(diào)用完成驅(qū)動的開發(fā)。從而在驅(qū)動方面規(guī)避了GPL。

進一步了解:

Android的硬件抽象層,簡單來說,就是對Linux內(nèi)核驅(qū)動程序的封裝,向上提供接口,屏蔽低層的實現(xiàn)細節(jié)。也就是說,把對硬件的支持分成了兩層,一層放在用戶空間(User Space),一層放在內(nèi)核空間(Kernel Space), 其中,硬件抽象層運行在用戶空間,而Linux內(nèi)核驅(qū)動程序運行在內(nèi)核空間。為什么要這樣安排呢?把硬件抽象層和內(nèi)核驅(qū)動整合在一起放在內(nèi)核空間不可行嗎?

從技術(shù)實現(xiàn)的角度來看,是可以的,然而從商業(yè)的角度來看,把對硬件的支持邏輯都放在內(nèi)核空間,可能會損害廠家的利益。我們知道,Linux內(nèi)核源代碼版權(quán)遵循GNU License,而Android源代碼版權(quán)遵循Apache License,前者在發(fā)布產(chǎn)品時,必須公布源代碼,而后者無須發(fā)布源代碼。如果把對硬件支持的所有代碼都放在Linux驅(qū)動層,那就意味著發(fā)布時要公開驅(qū)動程序的源代碼,而公開源代碼就意味著把硬件的相關(guān)參數(shù)和實現(xiàn)都公開了,在手機市場競爭激烈的今天,這對廠家來說,損害是非常大的。

因此,Android才會想到把對硬件的支持分成硬件抽象層和內(nèi)核驅(qū)動層,內(nèi)核驅(qū)動層只提供簡單的訪問硬件邏輯,例如讀寫硬件寄存器的通道,至于從硬件中讀到了什么值或者寫了什么值到硬件中的邏輯,都放在硬件抽象層中去了,這樣就可以把商業(yè)秘密隱藏起來了。

也正是由于這個分層的原因,Android被踢出了Linux內(nèi)核主線代碼樹中。大家想想,Android放在內(nèi)核空間的驅(qū)動程序?qū)τ布闹С质遣煌暾模袻inux內(nèi)核移植到別的機器上去時,由于缺乏硬件抽象層的支持,硬件就完全不能用了,這也是為什么說Android是開放系統(tǒng)而不是開源系統(tǒng)的原因。

五、軟件其他幾個相關(guān)的版權(quán)概念

1. copyright

copyright就是俗稱的版權(quán),也叫著作權(quán)。

版權(quán)又稱著作權(quán),用來表述創(chuàng)作者因其文學和藝術(shù)作品而享有的權(quán)利。版權(quán)的取得有兩種方式:自動取得和登記取得。在中國,按照著作權(quán)法規(guī)定,作品完成就自動有版權(quán)(百度百科)。

簡單來說,版權(quán)(copyright)只是規(guī)定是誰對作品享有權(quán)利,而具體享有哪些權(quán)力,需要參照當?shù)胤伞?/p>

比如一種定義是:

根據(jù)規(guī)定,作者享受下列權(quán)利:

  1. 以本名、化名或以不署名的方式發(fā)表作品;
  2. 保護作品的完整性;
  3. 修改已經(jīng)發(fā)表的作品;
  4. 因觀點改變或其他正當理由聲明收回已經(jīng)發(fā)表的作品,但應(yīng)適當賠償出版單位損失;
  5. 通過合法途徑,以出版、復(fù)制、播放、表演、展覽、攝制片、翻譯或改編等形式使用作品;
  6. 因他人使用作品而獲得經(jīng)濟報酬。上述權(quán)利受到侵犯,作者或其他版權(quán)所有者有權(quán)要求停止侵權(quán)行為和賠償損失。

2. license

在此基礎(chǔ)上,作者還可以制定授權(quán)協(xié)議(license),來具體地界定使用者的權(quán)利。

也就是說,

  • 作者的具體權(quán)利 = 當?shù)胤梢?guī)定的版權(quán)(copyright) + 自己在作品中添加的授權(quán)協(xié)議(license)。

  • 權(quán)利 = 版權(quán)(copyright) + 授權(quán)協(xié)議(license)

比如,商業(yè)化的授權(quán)協(xié)議(license)可能會傾向于強調(diào),使用者的哪些行為是侵權(quán)行為,從而保護自己的商業(yè)利益。

3. copyleft

而與這一商業(yè)化的授權(quán)風格相對的是,RMS等人引領(lǐng)的copyleft的思潮。這一思想在保護作者的基本版權(quán)之余, 可以讓作者通過在作品中添加開源協(xié)議(license),從而放大用戶的權(quán)力。

比如我們今天的主角,RMS在198為GNU項目擬定的 GLP 協(xié)議,允許用戶自由地運行、研究、分享和修改源代碼。

本文轉(zhuǎn)載自微信公眾號「一口Linux」

 

責任編輯:姜華 來源: 一口Linux
相關(guān)推薦

2021-05-20 06:57:16

RabbitMQ開源消息

2010-05-07 09:33:28

GNU GPL開源許可協(xié)議

2019-08-05 10:08:25

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

2021-08-02 06:34:55

Redis刪除策略開源

2021-11-24 08:51:32

Node.js監(jiān)聽函數(shù)

2021-11-08 08:42:44

CentOS Supervisor運維

2021-06-30 00:20:12

Hangfire.NET平臺

2021-07-28 10:02:54

建造者模式代碼

2021-07-14 08:24:23

TCPIP 通信協(xié)議

2023-05-12 08:19:12

Netty程序框架

2021-08-11 07:02:21

npm包管理器工具

2019-07-11 10:29:28

操作系統(tǒng)虛擬機Linux

2019-06-10 14:53:15

分布式架構(gòu)應(yīng)用服務(wù)

2021-01-06 05:23:15

ServiceMesh網(wǎng)絡(luò)阿帕網(wǎng)

2023-05-08 08:21:15

JavaNIO編程

2024-04-19 14:23:52

SwitchJavaScript開發(fā)

2023-09-06 14:57:46

JavaScript編程語言

2023-07-30 15:18:54

JavaScript屬性

2022-02-18 08:54:21

docker操作系統(tǒng)Linux

2021-05-18 08:30:42

JavaScript 前端JavaScript時
點贊
收藏

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