开源!=免费

    大家在使用开源软件的时候,有个误区,认为“开源==免费”,这种认识是不对的,开源与免费之间没有必然的联系,具体规定还要看开源软件所遵守的许可(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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章