首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

1.5.1  GPL许可证下的权利和义务

有不少人把“开源”错误地理解为“免费”,实际情况却并非如此。的确有许多无需支付任何费用就可以获得和使用的GPL软件,但这么做是有先决条件的。“开源”并不等于“免费”,它的含义要深远得多。

q  因为源代码可以自由获得,所以当遇到问题时,完全可以不依赖某个具体的软件厂商而自行对其进行修改。

q  在遇到问题时,完全可以自行修补发现的漏洞或给它增加新的功能。当然,也完全可以向该软件的研发团队求助。

q  可以确信,程序代码已经经过许多程序员的阅读和审查,一般不会存在让人大吃一惊的错误或漏洞(例如,有一种名叫Interbase的数据库系统被人们发现曾长期存在着一个后门:利用一个硬编码在程序代码里的密码,别人就可以访问Interbase数据库里的任何一个数据表)。

q  有权对GPL产品做出修改,也有权销售由本人修改后的新程序。

GPL许可证制度除了上面提到的这些好处,还有一些坏处(对商业化应用软件而言)。如果打算在一个GPL程序的基础上开发一个商业化产品,就必须公开并允许别人在开源的意义下自由使用改写的那部分源代码。绝大多数商业化软件的开发者是不愿意这么做的。

总地来说,以GPL软件为基础开发出来的每一个程序都必须沿用GPL许可证(换句话说,GPL许可证的约束力是可传递的)。

提示   关于开源理念的更多信息,以及GPL许可证的全文内容和解释可以在以下网址查到:

        http://www.gnu.org/copyleft/gpl.html

     http://www.opensource.org/osd.html