当咱们在谈开源协议的时候咱们在谈什么?- 开源软件是否能够卖钱

在开始以前 抛出一个问题开源软件和商业软件有冲突吗?linux

开源协议如何选择

一张图介绍如何选择最流行的六种开源许可证程序员

开源协议

这是乌克兰程序员Paul Bagwell,画的一张分析图,介绍最流行的六种开源许可证----GPL、BSD、MIT、Mozilla、Apache和LGPL。安全

经常使用开源协议介绍

开源在今天的软件业已经很广泛,但开源是否意味着使用者能够对开源后的代码随心所欲呢?答案是否认的。开源运动一样有本身的游戏规则和道德准则。不遵行这些规则不但损害开源运动的健康发展,也会对违规者形成名誉和市场上的损失,更可能陷入法律纠纷和赔偿。并发

现今存在的开源协议不少,而通过Open Source Initiative组织经过批准的开源协议目前有58种。咱们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。若是要开源本身的代码,最好也是选择这些被批准的开源协议。测试

这里咱们来看四种最经常使用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。spa

BSD开源协议

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者能够”随心所欲”,能够自由的使用,修改源代码,也能够将修改后的代码做为开源或者专有软件再发布。.net

但“随心所欲”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础作二次开发本身的产品时,须要知足三个条件:设计

1. 若是再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。htm

2. 若是再发布的只是二进制类库/软件,则须要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。blog

3. 不能够用开源代码的做者/机构名字和原来产品的名字作市场推广。

BSD代码鼓励代码共享,但须要尊重代码做者的著做权。BSD因为容许使用者修改和从新发布代码,也容许使用或在BSD代码上开发商业软件发布和销售,所以是对商业集成很友好的协议。而不少的公司企业在选用开源产品的时候都首选BSD协议,由于能够彻底控制这些第三方的代码,在必要的时候能够修改或者二次开发。

Apache Licence 2.0

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD相似,一样鼓励代码共享和尊重原做者的著做权,一样容许代码修改,再发布(做为开源或商业软件)。须要知足的条件也和BSD相似:

1. 须要给代码的用户一份Apache Licence

2. 若是你修改了代码,须要再被修改的文件中说明。

3. 在延伸的代码中(修改和有源代码衍生的代码中)须要带有原来代码中的协议,商标,专利声明和其余原来做者规定须要包含的说明。

4. 若是再发布的产品中包含一个Notice文件,则在Notice文件中须要带有Apache Licence。你能够在Notice中增长本身的许可,但不能够表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也能够在须要的时候修改代码来知足须要并做为开源或商业产品发布/销售。

GPL

咱们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不同。GPL的出发点是代码的开源/无偿使用和引用/修改/衍生代码的开源/无偿使用,但不容许修改后和衍生的代码作为闭源的商业软件发布和销售。这也就是为何咱们能用免费的各类linux,包括商业公司的linux和linux上各类各样的由我的,组织,以及商业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL 协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品做为一个单独的产品使用没有任何问题,还能够享受免费的优点。

因为GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用做为类库和二次开发的基础。

其它细节如再发布的时候须要伴随GPL协议等和BSD/Apache等相似。

LGPL

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不一样。 LGPL容许商业软件经过类库引用(link)方式使用LGPL类库而不须要开源商业软件的代码。这使得采用LGPL协议的开源代码能够被商业软件做为类库引用并发布和销售。

可是若是修改LGPL协议的代码或者衍生,则全部修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。所以LGPL协议的开源代码很适合做为第三方类库被商业软件引用,但不适合但愿以LGPL协议代码为基础,经过修改和衍生的方式作二次开发的商业软件采用。

GPL/LGPL都保障原做者的知识产权,避免有人利用开源代码复制并开发相似的产品。

P.S. 随手写写,是由于跟客户交谈的时候发现不少人其实对开源有彻底错误的理解,特别是开源协议。不少人认为只要是开源,就意味着随便用,随便改均可以。

商业软件 vs. 免费软件 网友讨论

dlee补充:

这些知识 Linux Fans 大多比较清楚,由于常用开源软件,天天下载源代码,编译、测试、安装是常事。这些问题在各个 Linux 论坛上也早已是老生常谈,可是有些 Java Fans 以及大多数 M$ 平台的开发人员几乎一无所知。我在这里通常不会谈跟 Java 关系不大的内容。既然 Charlesxp 想谈谈,我也补充一下。

首先,软件有两种分类方法:

商业软件 vs. 免费软件

商业软件:软件是要卖钱的。

免费软件:软件不卖钱,出于兴趣开发,能够随便使用。

开源软件 vs. 私有软件

开源软件:软件的源代码是公开的,能够在遵照某种 license 的条件下加以修改。

私有软件:软件的源代码不公开,用户仅仅只能获得软件的二进制版本。

  从上面的两种区别咱们能够看出,开源软件和商业软件不是对等或对立的关系,开源软件一样也能够卖钱。可是给了你源代码,你若是没有必定的功力也未必能看懂。并且用户经常不具有相应的能力(没有从事过软件开发),仅仅想要使用软件的功能。既然这样,开源对于这类用户还有何意义呢?开源能够保护这类用户免于陷入厂商设置的锁定陷阱。由于提供了所有源代码,只要用户能找到有能力维护这些代码的人或公司,他就能够持续发展这些代码的功能。这我的或公司不必定是最初卖软件给他的那一家。用户不会在大部分功能用的好好的,某个关键功能没法使用的时候,买家告诉他,你但愿得到的这个功能在咱们的下一版本中有,可是你必须支付咱们 10w$ 升级费咱们才能够提供。这个就叫作厂商锁定。若是软件不是开源的,用户没有办法作出选择,上了贼船后想下来可就难了。因此开源的商业软件对于保护用户本身的利益是很是重要的。用户能够得到真正的安全,并且更体现了软件的本质就是一种高级的服务。

  那么有人会担忧,这样作究竟能不能赚到钱?你能不能赚到钱要看市场和需求有多大。只盯着厂商锁定一种方式来赚钱实际上是一种短视的行为。如今国内大部分软件开发商都不重视维护和服务,仅仅靠卖软件自己的 copy 和 license 来赚钱,用户感受不到本身是上帝,怨声载道。其实用户所须要的仍是长期的维护和服务。因此这样的软件若是真能把服务作好,用户是会很是欢迎的。既然通过分析预计会有很大的需求,从长期看,我相信确定是能够赚到钱的。

  还有一类软件:共享软件。这类软件不是开源的,可是有免费的版本可使用。若是你用的很爽,良心发现了,能够把钱汇给做者。若是但愿做者提供服务,也能够找他谈。国内颇有名的 FoxMail 就是这类软件。可是对于用户最有价值的一类软件,其实仍是开源的商业软件。

  开源软件卖的是长期的服务,不是软件自己的 copy。不是全部的软件都有可能卖服务,也不是全部的用户都须要服务(这个问题咱们之后能够讨论)。可是一个大型企业或者重要的政府机关,假设使用了 JBoss+MySQL 这种组合,长期的服务是很是必要的(至少出了事情能够找到一个替罪羊)。你问这个问题就说明你没有多少企业应用的经验,不知道 IBM 这些公司的商业模式就是创建在 IT 服务的基础之上的。开源软件提供了一个新的组合,对于更好地作好这种服务很是有帮助。实际上,IBM 的解决方案中就包括了大量开源的成果。HP 作的方案也有采用 JBoss 的,为了获得长期的服务,HP 和 JBoss 专门签定了长期合做的协议。

  中国国内因为市场容量的限制,以及用户缺少信息化的经验,对于软件长期服务的重要性认识不足,所以老是只看到软件自己的售价,给了一些夫妻店竞相压价钻空子的机会。可是必须认可,这并非一种良性竞争的状态。最终仍是要走到切实为用户作好服务的道路上来的。服务是值钱的,不是免费的。你去路边的理发馆随便理个发,5 块钱,出来之后仍然蓬头垢面。你去高级发廊作头,500 块,可是你获得了按摩等各类服务(不要联想引伸),身心获得了放松,出来之后神采飞扬。你只盯着路边的理发馆,可是仍然有别人愿意去高级的发廊。

  固然,真正要作好服务,对于技术等各方面的能力要求是很是高的。这种要求不是随便哪一个夫妻店就可以达到的。

robbin补充:

  Richard Stallman是GNU创始人和GPL的创造者,Stallman开发的比较著名的GPL软件包括GNU GCC和GNU Emacs。其中Emacs在Stallman独立开发的早期也是卖钱的。Stallman定的Emacs售价为每份150美圆。

  所以请记住: 开源软件不等于免费软件。

引用资料

如何选择开源许可证?

常常用的一些开源协议的详细解析

实用文章:经常使用开源协议详细解析

相关文章
相关标签/搜索