當前位置:
首頁 > 知識 > 開放不等於自由,隨意使用開源軟體可能違規

開放不等於自由,隨意使用開源軟體可能違規

開源軟體是提高生產力和軟體質量的關鍵因素,正確的使用開源軟體,可以提高產品的競爭力,但是在產品功能不斷更新,開發周期不斷縮短的壓力下,難以有效的對代碼中的開源軟體進行有效的識別和管理而失去管理的開源軟體可能會帶來開源許可證違規等多種風險。那麼,什麼是開源許可證違規?開原許可證違規會給我們帶來什麼負面影響?開源許可證又有哪些?怎麼有效地避免開源許可證違規呢?

1.開源許可證違規

大多數開源軟體都有其發布許可,如果要使用這些開源軟體,應當遵守其許可證(License)的要求,如果在使用開源軟體時沒有遵守其許可要求的各項義務,就是違規使用開源軟體,會造成許可證合規性風險。開源許可證違規造成的影響可大小,嚴重時會導致法律訴訟,造成公司產品的召回,被迫開源自有知識產權代碼等等,而這些事件還可能對公司的聲譽,市場准入等造成長期的負面影響。

2.開源許可證

開源許可證,是一種允許源代碼、藍圖或設計在定義的條款和條件下被使用、修改和/或共享的計算機軟體和其他產品的許可證。目前經過OSI認證的開源許可證共有74種,而最重要的僅有6-10種(最最主要的2種:GPL、Apache)。在開源商業化的浪潮下,適度寬鬆的Apache等許可證更受歡迎這些許可證大致可以分為三類,

廣泛使用的開源許可證包括Apache-2.0, BSD-3-Clause, BSD-2-Clause, GPL,LGPL,MIT,MPL-2.0, CDDL-1.0, Eclipse 2.0.4

i. --GPL(GNU General Public License,GNU通用公共許可證):一種廣泛使用的自由軟體許可證,保證用戶可以自由的運行、學習、分享和修改軟體。許可證最初由自由軟體基金會(FSF)Richard Stallman為GNU項目所撰寫。GPL是一個非盈利版權許可證,要求衍生作品只能在相同的許可條款下發布。GPL的出發點是代碼的開源使用和引用代碼開源使用,不允許修改後和衍生的代碼作為閉源的商業軟體發布和銷售。

ii. --LGPL(GNU Lesser General Public License,GNU寬通用公共許可證):一種由FSF頒布的自由軟體許可證,允許開發者或公司在私有軟體中使用,不要求使用LGPL許可代碼的軟體以LGPL方式發布。與GPL的強制性開源方式不同,LGPL允許商業軟體通過類庫引用的方式使用LGPL類庫而不需要開源商業軟體的代碼。

iii. --BSD (Berkeley Software Distribution):允許使用者修改和重新發布代碼,也允許使用或在BSD代碼上開發商業軟體並發布和銷售。

iv. --MIT License:允許開發者任意處置該軟體,包括使用,複製,修改,合併,發表,分發,再授權,或者銷售。唯一的限制是,軟體中必須包含許可提示。

v. --Apache License:一種由Apache軟體基金會發布的自由軟體許可證, 相對比較友好,被授權者可以發布商業化軟體。

vi. --MPL (Mozilla Public License 1.1):MPL協議允許免費重發布、免費修改,但要求修改後的代碼版權歸軟體的發起者。

vii. --CDDL(Common Development and Distribution License):CDDL開源許可證,是MPL的擴展協議,它允許公共版權使用,無專利費,並提供專利保護,可集成於商業軟體中,允許自行發布許可。

viii. --EPL (Eclipse Public License 1.0 ):EPL允許Recipients任意使用、複製、分發、傳播、展示、修改以及改後閉源的二次商業發布。

開源許可證的共同點是保留版權,差別是商業兼容性或共享許可權不同。那麼,該如何有效地避免開源許可證違規呢。

FOSSID 是一個軟體解決方案,能夠單獨部署使用,也可以與現有的開發流程進行無縫集成,能夠有效的檢測到您的代碼庫中任何的開源代碼痕迹,不論是整個開源組件的引用,還是僅僅引用了一小段代碼片段。FOSSID 可以幫您有效的發現並展示出您的軟體涉及到的開源License 及相關的合規性,也能夠發現並展示出這些開源軟體存在的安全漏洞,幫助公司從開源審查這種繁雜的工作中解脫出來,將精力更多的用於如何為用戶提供更有價值的產品。

開放不等於自由,隨意使用開源軟體可能違規

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

編程為什麼要前後端分離?各自都有什麼優點與缺點?
AOP實現日誌記錄(Aspect)

TAG:程序員小新人學習 |