关于开源不得不聊的那些事

 

开源

简单的理解是指开放源代码(Open-Source)。

 

开源软件

是指在软件发行的时候,附上软件的源代码,并授权允许用户更改/自由再散布/衍生著作,开源并不抵制商业收费。

 

开源硬件

是在开源软件的基础上定义,源代码开放的硬件,允许他人重新制造、修改、分发,其反映自由释放详细信息的硬件设计,如电路图、材料清单和电路板布局数据,通常使用开源软件来驱动硬件。

今天想跟大家聊聊关于开源那些事。不过,在此之前,大家要先弄清楚一个概念:

开源软件  OR  免费软件

Free Software

开源软件可以认为是自由软件,自由和免费在英文中都是同一个词Free,所以就有人认为自由软件就是免费软件,这其实是一种错误的理解。开源软件的历史大概要从1983年说起,1983年Richard Stallman等一些人认为软件的商业授权阻止了软件行业的发展,因为在80年代,要使用一个主流的电脑,必须得到一个授权的操作系统,并且必须签署协议保证不和他人共享。

 

图为:Richard Stallman

 

Richard Stallman对软件知识产权的观念产生了强烈的反感,因为他认为这是浪费社会财富,我们假设一个软件已经完整的开发出来了,那么开发这个软件的所有投资都已经付出了,从社会的角度来看,任何限制软件使用的行为都是对其投资的浪费,对社会财富的浪费,于是他决定开发自己的操作系统、自己的软件,并鼓励他人分享,这样就不会受知识产权所限制,紧接着就着手制定了GNU计划,才有了后来的自由软件基金会(Free Software Foundation,FSF),并且根据这个思想设计了一个通用的许可证(GPL GNU General Public License:GNU 通用公共许可证),简称GPL。这一许可协议保证和保护同道中人彼此共享软件产品。GPL的基本原则就是:你可以“自由”地运行、拷贝、修改和再发行使用GPL授权的软件,但你必须允许别人也能“自由”地运行、拷贝、修改和再发行该软件以及你在该软件的基础上加以修改而形成的衍生软件产品。所以我们可以这样认为:以GPL协议发布的软件是开源软件,但是开源并不一定就是免费,只是发布时需要提供源代码;而免费软件不一定就是开源,比如设计一个软件,不公开源代码,但可以免费提供给用户使用。

 

图为:自由软件基金会标志

 

我们常见的Linux操作系统就是使用了这个GPL许可证的,这个许可证有两个要点,第一点是允许使用者自由进行复制、修改、发行;第二点是要求对软件修改发行的时候必须提供源代码。这个GPL许可证本身不禁止软件收费,也就是说可以把软件卖给客户,只要提供源代码。这时候大家可能会有疑问,如果都提供源代码了还怎么收费呢?那么就要看商业模式了,以Linux系统最知名的一个分支RedHat(红帽)为例,因为Linux内核是GPL许可,所以Redhat必须把它的系统开源,开源社区里面的人就利用开源的这部分代码创造了另一个知名的Linux操作系统CentOS,其实这两个系统的核心代码是一样的。Redhat虽然不能把Linux系统卖给用户收费,但是它可以提供相应的服务。举个例子,Redhat 发行的7.4版本免费,又发行了7.6版本也免费,但是如果你不想重新安装系统,又想把7.4升级到7.6,这个就需要红帽提供一种升级服务,这个就是要收费的。红帽还提供很多技术支持,并且对产品提供基本的质量保证,这些收费都是合法的。

 

图为:Redhat标志

 

其实除了GPL开源协议还有别的开源协议:

 

GPL(General public licence)

该协议就是上面讲到的GNU运动发布的协议,GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也是 GPL代表的自由软件和普通开源软件的最大区别所在。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用、修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,即必须也是开源和免费。我们之前讲的linux就是在GPL下发布的。

 

BSD协议

BSD协议是一个给予用户自由度很高的协议,在该协议下,用户可以自由的使用、修改源代码,也可以将修改后的源代码作为开源软件或者私有软件发布。BSD是对商业集成很友好的协议,BSD协议鼓励代码的共享、重用,但是要求尊重作者的著作权。

 

Apache Licence 2.0

Apache Licence 2.0 是著名的开源组织Apache所采用的协议,和BSD很类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。我们熟知的Tomcat、Apache、Hadoop等等都是在Apache协议下发布的。

 

 

话说到这里,可能还有部分人关心开源的盈利模式。之前以Redhat为例介绍了其盈利模式,我们不难发现,首先,开源不抵制软件授权收费;其次,可以提供开源免费的软件,但是针对软件的服务和维护可以进行收费; 再者,诸如IBM,HP这样的硬件厂商会给开源社区提供资金支持,他们支持可以卖出更多的基于开源软件的硬件。

 

 

上面花了很大的篇幅讲了开源软件,而目前关注度比较高的“芯”事中也有跟开源相关的内容,那么我们再花点时间讨论一下与芯片有关的开源指令集架构。首先我们知道芯片是现代科技最高精尖的领域之一,其研发资金投入大、商用周期长等特点让很多企业望而却步,近年来由于IP的种类越来越多,复杂度越来越大,以及通用接口的缺乏,导致从IP开始到系统集成再到软件调试的过程耗时更久,投入也越来越大。这时诞生于加州大学伯克利分校的RISC-V因为其开源、灵活和低成本等优势,而受到开发者的支持和厂商的广泛关注。

 

 

很多人提到RISC-V,都会说它是开源芯片,其实这种说法是不对的。准确来说,RISC-V是一个基于“精简指令集(RISC)”原则的开源指令集架构。与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。

 

 

指令集,对于CPU来说,就是介于软件和底层硬件之间的一套程序指令的合集。指令集存储于CPU内部,引导CPU进行运算,并帮助CPU更高效地运行。指令集是有版权的,比如x86,是Intel发明的指令集,曾经授权给大量的企业生产,但是经历数十年的官司后,目前版权属于Intel,AMD和兆芯,如果你也制造了一款可以直接运行x86指令的CPU,而没有经过上述三家合法的授权,那么就是违反版权,可以告你侵权。再比如ARM,花钱买授权之后可以制造ARM指令集的CPU,其中需要和arm签订NDA(Non Disclosure Agreement:保密协议),其中的资料不允许公开。而开源指令集比如RISC-V、MIPS-R6、Power、SPARC,不需要支付版费即可得到指令集的设计文档,并且可以实现自己的微架构,可用于商业目的(此微架构可以是闭源或开源的),其中RISC-V的规范在CC-BY 4.0许可证下授权。

 

关于MIPS架构的指令集开源相关的信息还得从Wave Computing说起,2018年6月,美国AI初创公司Wave Computing宣布收购MIPS;2018年12月,Wave Computing,正式宣布即将开放MIPS架构;2019年4月,MIPS 指令集开源。遗憾的是Wave Computing表示,自2019年11月14号起,Wave 将不再提供包括MIPS开放组件的免费下载,包括架构、核心、工具、IDE、模拟器和FPGA包/或任何与之相关的软件代码或计算机硬件。

 

 

通过上面的介绍我们可以知道,其实从指令集架构的定义到CPU核实现这中间还有很漫长的路要走,虽然RISC-V指令集架构是开源免费的,但是要实现CPU核,需要找设计公司提供设计服务和技术支持,这一部分并不免费,像SiFive等公司都是要收钱的,就如上面介绍的RedHat的商业模式也是这样的。在开源架构社区也是一样,指令集是开源的,遵循BSD协议,各家开发的产品不是必须要开源回馈给社区。各家公司在这个指令集基础上开发的自己的CPU核产品都是要收费的,毕竟开发CPU核产品也是要投入人力研发的。

 

指令集是越多人使用价值越大,指令集架构也就更贵,而CPU核只是部分公司使用,相对于指令集架构就便宜一些。现在RISC-V指令集开源,准入门槛很低,IP设计厂商各做各的。开源社区没有力量去维护各家实现统一标准,各家只能通过低价来抢市场,芯片设计厂商则需要面对不同IP厂商的CPU核实现,不能发挥统一架构的优势,构成恶性循环。

 

以上是一些对开源架构的浅见,仅供参考。目前在开源架构一片赞歌中,我们更需要有一些不同的见解,去全面看待问题。

 

*声明:文章图片均来源于网络,如不小心侵犯您的权益,请及时与我们联系删除,谢谢!

 

深圳华芯集成电路设计有限公司(简称“华芯”),主要业务是开展对外架构授权、IP授权、及芯片设计服务。华芯具备周边经过流片的成熟IP,可以满足目前国内急需的多种应用,降低国内芯片设计的门槛,帮助系统和芯片设计公司快速达成产品上市,提升国内SoC产品的技术水平和竞争力,促进国内芯片产业的发展。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值