開源!=免費

    大家在使用開源軟件的時候,有個誤區,認爲“開源==免費”,這種認識是不對的,開源與免費之間沒有必然的聯繫,具體規定還要看開源軟件所遵守的許可(license)類型。
    開源軟件在給我們的學習和工作帶來方便的同時,我們是否也要尊重開源軟件貢獻者的勞動呢?對於守法的人士來說,回答是肯定的,我們需要知道在使用開源軟件時,會不會在無意中違反了法律。這就需求在使用開源軟件的時候,把許可讀一讀,看看在什麼時候可以免費使用,什麼時候需要購買使用許可,有的開源軟件在學習時是免費的,但在商業應用時是要付費的。
    開源項目的license可以分爲三大類:
  • osi-approved open source:被開放源碼組織(www.opensource.org)所批准的開放源碼授權協議。像大家經常看到的apache、gpl、lgpl、mit licence,都屬於osi-approved的授權協議,osi的要求之一是二進制文件和源代碼的自由發放。
  • other/proprietary license:其他的,私有的授權協議。指軟件作者提供源代碼,但是對軟件的分發和發佈有其他的限制。
  • public domain:公共域授權。將軟件授權爲公共域,表示作者完全放棄版權,任何人都可以隨意使用。
    對於我們比較關心的,在商業應用中是否可以使用的開源許可,比較常見的有以下幾種:
    apache license,artistic license,bsd license,python license,xwindows license,zope license等,這些license雖然保留版權申明,但是可以免費修改、免費重新發布,而且允許商業使用,允許商業修改後不公佈修改的軟件代碼。
    gpl license(GNU General Public License)允許免費修改、免費重發布,但要求修改代碼必須也遵守gpl。這樣非gpl license的項目就不能使用gpl license的源碼,也就是不能在商業產品中使用。gpl授權的項目特別多,包括有linux、gnome、kde、gcc等。
    lgpl license(GNU Lesser General Public License)比gpl較爲寬鬆,允許商業使用。LGPL允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。
    mpl license(Mozilla Public License)。MPL雖然要求對於經MPL許可證發佈的源代碼的修改也要以MPL許可證的方式再許可出來,以保證其他人可以在MPL的條款下共享源代碼。但是,在MPL許可證中對“發佈”的定義是“以源代碼方式發佈的文件”,這就意味着MPL允許一個企業在自己已有的源代碼庫上加一個接口,除了接口程序的源代碼以MPL許可證的形式對外許可外,源代碼庫中的源代碼就可以不用MPL許可證的方式強制對外許可。這些,就爲借鑑別人的源代碼用做自己商業軟件開發的行爲留了一個豁口。
    還有部分開源項目有多重協議,比如mysql、extjs同時擁有commercial license和gpl license,如果是gpl項目,那麼可以免費使用,但是在商業軟件中使用則要購買commercial license。
發佈了35 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章