關於GPL協議的理解(開源與商用、免費與收費)

關於GPL協議的理解(開源與商用、免費與收費)mysql


若是你使用而且修改了個人GPL軟件,那麼你的軟件也必需要開源,不然就不能使用個人軟件,你是否把你的軟件商用和我不要緊。好比,Oracle賣的不是軟件的版權,而是技術服務。MySQL做爲一個開源數據庫,幾乎全部的用戶都只是經過本身的程序去操做這個數據庫,而不是改動源碼,因此根本不用去考慮是否要遵循GPL,只有在你修改了MySQL源碼的狀況下,纔要考慮GPL。linux

 

導讀:sql

    網絡上多數朋友擔憂甲骨文會對MySQL軟件採用收費模式,多數朋友也不清楚MySQL開源究竟是什麼模式,開源=免費嘛?是不少的疑 問,MySQL是遵照雙重協議的,一個是GPL受權協議,一個是商用受權協議(註釋:爲解決其餘企業用MySQL軟件牟利或引用了MySQL的源代碼而不 想開源),雖然www.mysqlops.com也有寫關於MySQL版權的前因後果,可是這篇文章寫更透徹與詳盡,特轉載ITPUB上的帖子,但願你們 可以更加清晰!數據庫

    最近剛把MySQL和GPL的玩法搞明白,非常慚愧,竟然花了這麼久的時間纔想通。不過聊以自慰的是,搞明白這個玩法的人真是很少,儘管有些人已經搞了不少年。windows

    看過GPL協議的人應該都會以爲一頭霧水,究竟GPL在講些什麼。我看過好幾遍,英文的原版、中文的各類譯文,都沒能真正理解,後來是從軟件行業的 歷史等等方面綜合考慮,纔算是理解了。先總結一下我對GPL的理解,我認爲GPL的精髓就是開源,和是否商用,是否收費徹底沒有關係。GPL(General Public License), 其實從字面上就能夠理解爲公共許可證,也就是說遵循GPL的軟件是公共的,其實不存在什麼版權問題,或者說公衆都有版權,GPL提出了和版權 (copyright)徹底相反的概念(copyleft)。而我常常聽到的說法是若是你的程序或系統引用了別的GPL軟件,而且向用戶收費,那麼你就需 要向引用的GPL軟件購買版權。聽上去很合理,若是你用個人軟件賺錢,那你固然應該向我支付必定的費用。但實際上是錯誤的,正確的概念是若是你用了個人 GPL軟件,那麼必須你的軟件也要開源,若是你不開源,那麼就不能使用個人軟件,你是否把你的軟件商用和我不要緊,若是你不能遵循GPL協議來開源,那麼你付再多的錢也不能用GPL的軟件, 事實上不少GPL軟件是不少人共同完成的,每一個人在前人的基礎上作出本身的貢獻,若是收費的話你把錢交給誰?提出 GPL協議的GNU但願作到的是經過開源來使軟件行業獲得一個好的發展,試想若是你要作一個大型的軟件,不在前人的源碼基礎上開發,那必然會是曠日持久 的,也會有不少重複勞動,顯然不利於軟件技術的發展。因此理解了GNU的精神,也就能理解GPL在說些什麼,其實就是開源。在現實生活中,咱們受益於 GPL的地方,其實不少,幾乎全部的操做系統,除了windows,其餘的幾乎都是基於linux開源代碼改寫的。網絡

    再來談MySQL,這是個開源的數據庫,作技術的應該都知道。MySQL最先是瑞典的一家叫作MySQL AB的公司開發的,它是以雙受權的方式來發布MySQL。一種受權就是GPL,另外一種受權就是商業受權。也就是若是你不能知足GPL,那麼就走商業受權的 路線,向這個公司交錢。我以爲這公司有掛羊頭賣狗肉之嫌,想借着GPL快速傳播它的軟件,但又留着商業受權這個收費的口。後來這家公司以10億美金的價格 被Sun收購,接着Sun又被Oracle收購,MySQL成爲了Oracle的東西。如今Oracle把MySQL分爲三種產品,標準版、企業版和集羣 版。不談其中具體的差別,但都是以年度訂閱(subscription)的方式來賣的。這個subscription引發了個人疑問,若是用戶購買了一 年,那麼第二年用戶還要繼續付費才能合法使用?這三種版本都包含了一年的服務,那麼若是第二年用戶只須要用軟件而不須要服務,怎麼辦?Oracle官方沒 有一個說得過去的說法。後來我想通了,其實Oracle賣的不是軟件的版權,也不是寂寞,而是技術服務。所 有的GPL開源軟件都不能賣版權,由於是公共版 權,固然不能賣了。因此像redhat這類的開源軟件都是用subscription的方式來賺錢的。賺錢實際上是合法的,GPL協議裏面寫了「Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish)咱們的GNU通用公共許可證決意保證你有發佈自由軟件的自由(若是你願意,你能夠對此項服務收取必定的費用)」。但如今大衆的誤區是以爲購買的 是軟件產品的版權而不是服務。其實你要用GPL軟件在絕大部分狀況下都是合法的,不存在版權問題,那麼在什麼狀況下才算是非法的呢?dom

    前文一直提到「用」GPL軟件的狀況,這個「用」可能並不合適,GPL的原文「the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program」保證你的共享和修改自由軟件的自由」。能夠理解爲你使用開源軟件並不受GPL約束,只有在你基於開源軟件,修改開源軟件的源碼的時候才受 GPL約束。MySQL做爲一個開源數據庫,幾乎全部的用戶都只是經過本身的程序去操做這個數據庫,不涉及到改動源碼的問題,根本不用去考慮是否要遵循 GPL的問題。只有在你修改MySQL源碼的狀況下,才須要考慮GPL。工具

    若是我根據MySQL的源碼開發出了一個新的數據庫,我以爲本身開發的源碼很是的優秀,想靠這個賣錢,不想公開源碼。那麼這種狀況就沒法知足GPL 的規定,我無法發佈個人數據庫。好在MySQL有個很是流氓的雙受權,我就能夠購買其商業受權來達到個人目的。爲何說這是流氓行爲?由於既然MySQL 是根據GPL開源發佈,多多少少有各路人馬貢獻本身的源碼才成爲今天的MySQL,賣別人的勞動成果來讓本身受益,這就是流氓的作法。操作系統

    因此GPL就是一個爲了保護軟件自由的一個協議,它強調的是開源,與錢無關。MySQL是一個雙受權的軟件,Oracle如今賣的是年度的服務(編者加註:另外主要收入來源是銷售數據庫維護工具), 若是你只是使用MySQL而不是改寫MySQL,那麼在這些狀況下你應該考慮購買Oracle的商業版本,一是Oracle的商用版本提供的附加組件(監 控器、備份工具等)對你有價值,二是Oracle的年度技術支持是你須要的,三是各類潛規則。而不該該是你想合法的使用MySQL纔去購買其商業版本。另 外,若是你是基於MySQL的源碼開發你本身的產品,那麼你須要購買的是商業受權,而不是subscription這些商業版本。.net

轉自:http://blog.csdn.net/szwangdf/article/details/27191085

相關文章
相關標籤/搜索