本文讲述我对开源的一些想法,包括接触开源的过程,如何使用开源项目,常用的开源license,如何参与开源项目的想法和实践。
其实当时很多观念都是错误的,Linux不是一个技术牛人就能做出来的,而是需要一队人参与,而且不断的推广才有今天的Linux,这个下面讲到,如果做开源。而且开源不一定就是免费,免费只是某些开源license的形式。开源不一定比商业软件难用,软件的易用性和软件的license没有直接关系。
<a href="http://11011.net/software/vspaste" target="_blank"></a>
同时,开源可以做商业项目,再次引用上述文章。
开源不等于免费,请下面的定义。
如果仅仅是使用开源软件,不使用里面的源代码,或者更改该开源软件,一般来说可以免费使用,例如使用FireFox。但是免费使用不是开源的专利,很多商业软件也可以免费使用,例如SQL Server Express, Visual Studio Express等等都可以免费使用。
重点看最后一句,如果你发布了你的修改版本,之前的开发者需要你拿一份更新的源码,你必须给他/她。
下面介绍几个我们常常碰到的license,我不是学法律的,我没有仔细研究各个license的法律含义,下面的描述只是我个人对这些license的理解,一切最终以该license的法律文件为准。

由于GPLv2和GPLv3不兼容,连Linux的老大Linus也不喜欢GPLv3,一直使用GPLv2作为Linux内核的license。
由于GPL不能用于商业开发,但是商业软件公司想在Linux上做产品,例如Oracle需要做Linux版本,那怎么办,Oracle肯定不愿意公开自己的关系数据库管理系统的核心代码。一个折中方案LGPL就此产生。一些系统库,如CRuntime库可以可以使用LGPL授权,商业软件可以调用这些系统库,只要商业软件不更改这些系统库的源代码,商业软件可以不公开自身的源代码。最新的QT使用了LGPL和商业两个license。如果使用QT的LGPL版本,只要不更改QT,可以免费使用QT做开发。LGPL一定程度的带动使用者的热情,如果做库开发,使用LGPL好处挺大,一方面方便推广,另一方面当使用者修改了库也会回馈社区。
开源的license还有很多很多,我就介绍这几个,我自己也不是很懂这些法律的事情,但是每次我打算使用一个开源软件,使用这些代码,我都会认真的看看这些license,看看我能不能用。如果哪位对开源比较了解,对license比较有研究,欢迎交流。这篇写到这里,下一篇写 如何参与开源,参与开源需要什么,得到什么。
本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2010/02/02/About-Open-Source.html,如需转载请自行联系原作者