最近一直在思考开源软件的事情,所以特别了解了一下这个方面的内容,自己对这方面也有一些疑问,通过自己的网上的搜索得到了一些答案,不一定正确,在此做个记录,如果有不正确的,希望大家指出。

1、开源软件的版权

首先要明确自由/开源软件是一种有版权的软件,自由/开源软件是一种得到许可的软件。自由/开源软件许可协议(或许可证)是其版权实施的延伸。常见的开源许可协议详见我上篇文章。自由/开源软件的版权理论上属于原创软件作品的作者(writers、authors、developers),以及升级软件作品的后续修改者(贡献者Contributors,志愿者Volunteers),总称为所有者(owners)。软件许可协议是一种契约和授权方式,是用户合法使用软件作品的一个凭证,相当于软件作品的作者(或所有者,或权利人,或许可人)与用户(或被许可人,或“你”)之间签订一个合同来规定双方当事人在处理软件作品时的权利、义务和责任。多数人没有注意到开源软件许可的存在,这是因为它不同于传统的书面签字或上网点击那样“接受许可”的方式。开源软件的许可协议是开放的,只要具有相应行 为就可“默认”接受的许可;但如“被许可人”不遵守有关许可条件,许可随时会被终止,“被许可人”持有开源软件的权利将自动终止,并需承担违约责任的风 险。
 

2、开源社区软件权属

关于合作作品的权属确认,我国《著作权法》第13条规定,“两人以上合作创作的作品,著作权有合作作者共同享有。”也就是说,社区开发的开源软件的权属原则上应该由对开源软件做出实质性贡献的成员共同享有。另外,《计算机保护条例》第10条还规定,由两个自然人、法人或者其他组织合作开发的软件,其著作权的归属由合作开发者签订书面合同约定。据此,开源软件的权属可以由其贡献者约定。这一约定既可以通过开源许可证本身规定,因为将贡献者代码集成到软件新版本中本身就是对软件修改的发布应受许可证约束。约定也可以在单独做出,比如在将某一贡献者代码集成到软件中去时与其签订一个授权许可确定软件的版权归属。以Apache基金会为例,在Apache社区,中开发者必须签署一份跟人贡献者许可协议,声明将所有贡献代码授权于基金会并保证对贡献代码的权属。
 

3、开源软件的盈利模式

网上常用的几种模式

免费软件+收费硬件
比如IBM、SUN、HP等公司,在开源软件领域投入巨大,但这一切并非是做善事,它们可以从配置了开源软件的硬件中获得巨额回报。
免费知识+收费书籍(培训)
比如著名的开源软件出版商O'Reilly公司,就不遗余力地联系各开源软件权威人士,组织各种开源软件的会议,虽然知识是免费的,但承载知识的书籍却是收费的。
免费程序+收费实施 (服务)
像中间件、ERP和SCM等企业级信息系统,免费提供这种系统的程序代码,以提供收费的技术服务来赚钱。JBoss就是这种模式的典型代表。 也可以不主推自己的产品品牌,而是与多方开源软件厂商或社区合作。
免费社区版+收费企业版 (或多种授权方式)
Redhat自Redhat Linux 9.0后将原桌面操作系统转为Fedora项目,借Fedora Core Linux在开源社区的声望而促进Redhat Enterprise Linux AS/ES/WS服务器产品线的销售。 比如extjs、qt等有免费授权协议,也可以有收费版本的。
开源软件+商业软件
比如Novell就将自己原来丰富的中间软件和应用软件迁移到Linux平台上,通过与Linux的捆绑为客户提供高价值的综合解决方案。红旗和Turbolinux也在积极加强与应用软件厂商的联系或自己开发商业软件,通过附加更多的商业软件来增加收入。
 

还有一种网上提的比较少的,是被收购,也有比较好的案例,比如mysql被sun以10亿美金收购,spring被vmware以4.2亿美金收购。

例子:授权协议的影响
extjs授权协议由原来的lgpl改为gpl了,这种改变导致很多人的评论,有说好的,也有说不好的,到底是更开放还是更封闭的,其实这个问题很简单,就是角度。
如果你是一个商业开发人员,gpl显然是不合适的,因为不能用于商业,你基于gpl开发的所有软件也必须采用gpl协议。
如果你是准备做一个开源产品,则对你没有影响,反而gpl更加开放。