回覆列表
  • 1 # 蟲蟲安全

    GPL和LGP歷史淵源

    GPL是有自由軟體基金會創始人,GNU專案發起者,Stallmam教主撰寫。初稿是在早期gnu專案emacs,gcc,gdb協議的基礎上,在1989年1月提出來gpl協議,gpl全稱為GNU General Public License的,GNU通用公共授權。gnu的出現是為了保證gnu計劃的健康良性發展。而gnu計劃的目標是發展人人都能自由使用的免費軟體,但是為了保證open軟體的壯大,避免自由軟體的成果被人竊取謀私利。所以gpl的釋出非常有必要而且gpl也確實體現了open軟體和gnu計劃的思想。可以說自由軟體,linux能發展這麼壯大gpl功不可沒。

    lgpl的提出是在1991年gpl釋出第二版的時候,考慮到一些共享庫需要比較寬鬆的協議需求,所以作為gpl補充提出。後來單獨作為一個協議列出。lgpl,全稱Lesser General Public License,gnu寬鬆通用公共協議。

    2005年Stallman在專業法律人士的援助下起草了gpl v3版本,並做了廣泛的意見徵求。

    2007年6月29日,fsf正式釋出了gpl v3版本。

    GPL和LGPL主要區別

    GPL的主要內容:只要在一個軟體中使用GPL 協議的軟體,包括類庫引用,對其修改的程式碼或者透過其衍生出的程式碼,,則該軟體必須也採用GPL協議,必須也是開源和免費。

    GPL的出發點是程式碼的開源/免費使用和引用/修改/衍生程式碼的開源/免費使用,但不允許修改後和衍生的程式碼做為閉源的商業軟體釋出和銷售。

    lgpl實在gpl基礎上做了寬鬆話既如果不是直接包含(打包)gpl的軟體,而是透過類庫引用的方式則不需要強制必須開源,所以lgpl保證了,可以被商業軟體使用。比如大量的共享類庫等。

    常見開源協議比較和判斷

    常見開源協議有gpl,bsd,mit,apache等,具體相信請參考協議官方內容,不在贅述。此處蟲蟲給你看一張圖就能看明白了。

    最後迴應下問題,如果linux當初不用gpl和用lgpl的話,很大程度上是不會這麼壯大的。

  • 2 # 五四瘋哥

    “Linux有附加許可內容允許呼叫不繼承GPL”這句話從何而來?

    在GPL協議下,哪怕是對類庫的呼叫,你的程式也會被“傳染”為GPL,但是類庫這種基礎、底層的東西,程式基本都要用,如果用了GPL,那專有軟體就不會有人用你的類庫了,不利於開源類庫的發展,所以後來有了LGPL,基本都是用於一些類庫,如果專有軟體透過連結的方式呼叫LGPL類庫,則不會受到“傳染”。

    你的程式移植到Linux上不受傳染,並不是有什麼附加許可,其本質還是看你呼叫的類庫是什麼協議,如果你只調用了Linux上LGPL類庫,那你的程式就可以不開源,但如果你呼叫的是GPL類庫,那你的程式也要開源。

  • 3 # nohead

    當初可能是linus覺得用強制共享的gpl協議會得到更多人貢獻程式碼才使用的這種協議。但是這種協議對商業不友好,公司使用後必須開源就難以收費,有些加密模組開源就難以保障安全。

    linux發展迅速全靠bsd系統被官司所困,沒有其它更好的選擇才會選擇linux。gpl協議阻礙了linux的發展。一開始大企業都因為gpl而不願支援linux,但是後來linux越來越流行,如果不選linux就需要重新開發基礎功能模組及驅動,權衡之下越來越多的企業也開始選擇linux。但是看看大企業主導的有名的開源專案大部分都是bsd、apache、mozilla等商業友好的授權協議,gpl依然不受歡迎。

    為什麼linux下可以開發出不繼承gpl授權的例如lgpl的軟體呢?因為使用linux核心是不必遵守gpl的,linus本人解釋過。用系統呼叫命令使用核心功能不算包含核心原始碼,就像在windows中使用dir等控制檯命令一樣。所以linux許多底層庫用系統呼叫實現功能沒包含gpl庫的原始碼,可以自行決定授權協議。許多庫選擇了lgpl授權協議。lgpl協議比gpl對商業友好得多,只要你不改原始碼動態呼叫這個庫就不必開源。比如mariadb資料庫主體程式是gpl的,但它的連線驅動是lgpl的,你不改資料庫的原始碼只是使用它就不必繼承gpl或lgpl協議。這使得它能夠在世界範圍流行起來。如果它的驅動也是gpl那就沒多少公司願意使用它了。一家公司花了大量時間金錢開發一款大型軟體就因為一個第三方的小軟體是gpl的就迫使整個專案開源,那還不如棄用這個軟體自己重新寫一個。那這個小軟體就因為gpl不受待見而無法流行起來

  • 中秋節和大豐收的關聯?
  • 潛艇在什麼時候發明的?是誰發明的?