沒有開源軟件,如今的互聯網根本沒法存在,開源的歷史能夠追溯到ARPANET創建。開源在今天已經再也不是一個時髦的詞了,對於互聯網的開發者來講,它如今就像空氣和水同樣,就在咱們的生活中。
現在的主流開源參與者,再也不只是我的愛好者,更多的是著名IT企業的員工,商業公司也紛紛支持。IT企業投入了大量人力在各個開源社區和項目上,包括開發測試,項目協調,運營推廣等。
什麼是開源?
開源軟件被定義爲描述其源碼能夠被公衆使用的軟件,而且此軟件的使用,修改和分發也不受許可證的限制。開放源碼軟件一般是有copyright的,它的許可證可能包含這樣一些限制:蓄意的保護它的開放源碼狀態,著者身份的公告,或者開發的控制。
簡單的說,開源就是源代碼開放和開源許可協議的選擇。開源意味着用戶能夠免費運行,自由學習,免費二次分發以及自由修改改進。
開源許可協議及選擇
開源許可協議大概有上百種,例如:
Apache License 2.0 (Apache-2.0)
3-clause BSD license (BSD-3-Clause)
GNU General Public License (GPL)
GNU Lesser General Public License (LGPL)
MIT license (MIT)
Mozilla Public License 2.0 (MPL-2.0)
Eclipse Public License (EPL-1.0)
...
可是,常見的開源許可大約10種,主要有相似GPL,相似BSDL和相似MPL等。
GPL
GPL給軟件以版權保護,使用GPL,能夠得到複製、發佈和修改這些軟件的法律許可。
GPL的特殊性是 copyleft 與自由的病毒式傳播。在全部開源許可證中,GPL 的最大特點在於它的「copyleft」規則。 它嚴格地控制基於自由軟件的集合做品或者衍生做品,GPL 第 1 條將其稱爲「基於程序的做品」,發佈規則很簡單,只要使用了 GPL 下的自由軟件,那麼衍生做品以及集合做品的發佈都要基於GPL 之下。
相似的開源許可證AGPL、LGPL…等等,是一種相對理想的是實用主義。
BSDL
BSDL主要適用於 Apache 服務器和基於 BSD 的操做系統項目(FreeBSD、 OpenBSD、 NetBSD),不排斥對開源軟件的商業利用,有實用主義的觀點。
BSDL 的特殊性是被許可人的絕對自由,對被許可人作了最少的限制,只要尊重原做者, 合理恰當地標明瞭源代碼的出處,被許可人將不受限制於將這些源代碼用在本身的程序中而按本身的要求進行程序的發佈和軟件的許可、產生衍生做品後僅以目標碼的形式發佈,等等。這意味着能夠從 BSDL 的開源軟件中衍生出私有軟件。
相似的開源許可證有Apache 、MIT等等。
MPL
MPL是1998年初Netscape的 Mozilla 項目組爲其開放源代碼軟件項目設計的開源許可證。
MPL的特殊性是在開源軟件許可證譜系中接近於 BSDL,但它帶有強烈的商業化特徵,爲公司保留了至關的權利,至關於集開源之力,都爲我所用。
相似的開源許可證 Apple 公共代碼許可證(1.2)、Sun 公司的SISSL和 Sun 公共許可證 (1.0)、Nokia 開放源代碼許可證(1.0a)、 IBM公共許可證(1.0)等等。服務器