所谓开源软件,是一种源代码免费开放的软件,任何组织都可以在其License(译:许可)的规定下对其进行使用、复制、传播及修改,并可以将该修改形成的软件再次发布。这段话看似人畜无害,其实暗藏杀机,关键点就是所谓的License。如果稍不注意,轻则破财消灾,严重的就倒闭破产。思科阴沟翻船,赔掉数千万美元举个真实的案例,美国芯片巨头Broadcom在某款802.11芯片中使用了License类型为GPL的Linux系统,随后该芯片被另一家叫做Linksys的通信设备公司集成在了自家的WRT54G无线路由器中,再后来Linksys公司在2003年被业界巨头思科收购。理论上,由于WRT54G使用的芯片采用了GPL License的Linux系统,那么包括芯片源码、集成了芯片的产品源码都要免费开源出去。显然,思科不打算这么做。不久,思科就被FSF(自由软件基金会:业界最大的开源软件维权组织)投诉,起初双方互不让步,经过数年交涉,思科被迫开放了一百多款路由器的源代码,并捐款数千万美元给FSF基金会才把事件平息。通过这个图可以看出,License具有很强的传染性,一旦产品中使用了GPL License的开源软件,那么整个产品就会受到感染,哪怕产品被收购,收购方也要承担对应的开源义务。主流的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的开源义务结束语随着国内中小型科技企业的逐步崛起,中国会孕育出更多的像华为、阿里、腾讯这种跨国科技巨头,如何筛好、用好开源软件,是所有科技企业需要思考的问题,这关系到企业能否有效保护自己的知识产权、能否快速推出有竞争力的产品,能否占领市场持续领先。(图片来源网络,侵删)
黑客文/科技民兵在全世界搞IT的程序员中间广泛流传着一句谚语:“开源使用一时爽,版本发布火葬场。”不明就里的吃瓜群众们可能会问,开源软件到底有什么毒,让程序员们连秃顶都不怕,却唯独对它心有余悸呢?要回答这个问题,就要从开源软件的定义说起。
0 评论