首頁>科技>

在全世界搞IT的程式設計師中間廣泛流傳著一句諺語:“開源使用一時爽,版本釋出火葬場。”不明就裡的吃瓜群眾們可能會問,開源軟體到底有什麼毒,讓程式設計師們連禿頂都不怕,卻唯獨對它心有餘悸呢?要回答這個問題,就要從開源軟體的定義說起。

所謂開源軟體,是一種原始碼免費開放的軟體,任何組織都可以在其License(譯:許可)的規定下對其進行使用、複製、傳播及修改,並可以將該修改形成的軟體再次釋出。

這段話看似人畜無害,其實暗藏殺機,關鍵點就是所謂的License。如果稍不注意,輕則破財消災,嚴重的就倒閉破產。

思科陰溝翻船,賠掉數千萬美元

舉個真實的案例,美國晶片巨頭Broadcom在某款802.11晶片中使用了License型別為GPL的Linux系統,隨後該晶片被另一家叫做Linksys的通訊裝置公司整合在了自家的WRT54G無線路由器中,再後來Linksys公司在2003年被業界巨頭思科收購。理論上,由於WRT54G使用的晶片採用了GPL License的Linux系統,那麼包括晶片原始碼、集成了晶片的產品原始碼都要免費開源出去。顯然,思科不打算這麼做。不久,思科就被FSF(自由軟體基金會:業界最大的開源軟體維權組織)投訴,起初雙方互不讓步,經過數年交涉,思科被迫開放了一百多款路由器的原始碼,並捐款數千萬美元給FSF基金會才把事件平息。

通過這個圖可以看出,License具有很強的傳染性,一旦產品中使用了GPL License的開源軟體,那麼整個產品就會受到感染,哪怕產品被收購,收購方也要承擔對應的開源義務。

當然,開源軟體的License並非都向GPL一樣“流氓”,目前主流的License主要分為BSD類、MPL類、GPL類,其中BSD類最寬鬆,MPL類次之,GPL類坑最多。

BSD類License

如Apache V2.0、BSD、MIT等,典型的專案有ACE、Tomcat、FreeBSD,這類開源軟體基本上允許開發者“想怎麼用就怎麼用”,不用履行開源義務,是所有公司都非常喜歡的License型別,BAT以及華為、思科等等公司的產品集成了大量的這類開源軟體。

MPL類License

如CPL V1.0、EPL V1.0、MPL V1.0、CDDL V1.0等,典型的專案有JUnit、Eclipse、FireFox、OpenSolaris,這類開源軟體可以通過動態或者靜態連結的方式使用,如果沒有對開原始碼進行修改,則產品無需開放程式碼;如果修改了部分開原始碼,只需開放修改部分的原始碼即可,因此MPL類License是相對友好的,相關的開源軟體在業界也流行甚廣。

GPL類License

如GPL V2 、LGPL V2等,典型的專案有Linux、Jboss、OpenOffice、SDL,GPL類License對使用者約束甚多,其中LGPL V2 License相對寬鬆,如果產品通過動態連結的方式使用,則不用履行開源義務,靜態連結則不行。GPL V2 License的開源軟體,無論是通過動態連結方式使用還是靜態連結方式使用,都需要對整個產品程式碼開源,上面例子中的思科就是在這種License上中招的。不過GPL V2 License的開源軟體也不是不能用,一個比較好的方式是,將產品和開源軟體分在不同的程序裡,因為GPL V2 License的開源軟體只能汙染同進程裡的程式碼。

BSD License也有坑,小心才能使得萬年船

事實上,即使開源軟體是最寬鬆的BSD類License,也要瞪大眼睛看清楚才能用,因為有時候會有另外的坑等著你,典型的例子是馬克·扎克伯格的Facebook。幾年前,Facebook 曾在Git hub上釋出了一系列開源專案,由於其先進的技術和寬鬆的License(BSD)使得其專案廣受使用者歡迎。不過Facebook在BSD license之外,還額外增加一份專利授權license,將這些軟體可能存在的Facebook專利授權給使用者使用,但也正是這份專利icense ,給這些軟體的商業應用埋下了“地雷”。如果某公司使用了該軟體,那麼如果Facebook在其業務範圍內與該公司有任何其他專利衝突,該公司則不得向Facebook發起專利訴訟,導致無法保護自身的專利,夠狠的吧,華為就差點踩到這個坑,後來公司法務部稽核時識別到了風險,及時踩了剎車才避免了損失。

有朋友說,既然開源軟體這麼多坑,那我乾脆不用不就完了,這個想法的初衷是好的,事實上並不可行。現代社會的科技產品,講究的是敏捷開發、快速迭代,一個很普通的產品可能涉及到網路通訊、檔案系統、多媒體處理等等多個方面,如果這些都靠自己來實現,那麼可能這輩子都看不到產品上市的那一天了。

使用開源軟體的三個建議

大公司已經有了一套規範的開源軟體使用流程,比如IBM、阿里、華為等等,整體來講,這些公司主要從三個方向著手來實現安全、高效、低風險的使用開源軟體。

(1)建立完善的開源軟體選型系統,端到端跟蹤開源軟體的申請、使用和退庫,將風險擋在門外

(2)通過IT流程保證開源軟體漏洞和補丁的更新機制,確保所使用的開源軟體始終處於最安全的版本

(3)嚴格遵從license要求,履行license的開源義務

結束語

隨著國內中小型科技企業的逐步崛起,中國會孕育出更多的像華為、阿里、騰訊這種跨國科技巨頭,如何篩好、用好開源軟體,是所有科技企業需要思考的問題,這關係到企業能否有效保護自己的智慧財產權、能否快速推出有競爭力的產品,能否佔領市場持續領先。

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 淘寶兩次調侃式迴應"內測版本到期" 但網友們不買賬