移动端技术

常见开源协议随谈

2018-08-17  本文已影响41人  小时候很拽的样子

今天被红芯浏览器刷屏了,明明是站在巨人的肩膀上,非得说是自主创新。也是,现在国产的项目,如果不用到开源软件,估计很多项目就寸步

难行了,基本就歇菜了。既然用到开源软件,首先要了解软件遵循什么开源协议。比如本来你用到的开源软件遵循的是GPL协议,你吭哧吭哧的

拿过来修改优化后,性能大幅提升,这时候你想占为己有,收费商业化拒绝公布源码,那估计等待你的就是一纸法院通告了。所以在我们使用开

源软件前,还是有必要了解下他们的license的。那么现在市面上有哪些主流的开源协议呢?

1,GPL(GNU General Public License)

GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。

典型代表:Linux  

Android的内核采用的是Linux,如果ODM在Linux下开发自己的驱动,必然他们的核心驱动代码就要开源,这对他们来说是不可接受的,所以

Google在Linux上加入了HAL,厂商把核心驱动代码放到HAL,本身AOSP是遵循APL的,所以可以不用开源该部分代码

2,LGPL(GNU Lesser General Public License)

鉴于GPL是如此的隔绝商业, 就出现了一个宽松版的GPL即LGPL,但LGPL其实只是GPL的一个为主要为类库使用设计的开源协议,LGPL允许商

业软件通过类库引用方式使用LGPL类库而不需要开源商业软件的代码,GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发

类似的产品

典型代表:Hibernate

3,BSD (Berkeley Software Distribution)

给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发

布。

典型代表:nginx  Fuchsia 

Fuchsia是Google继Android ,Chrome OS后第三款操作系统,该操作系统内核采用的是Magenta,该内核是Google自有的,遵循Apache 

Licence 2.0,也就规避了android的麻烦 

4,Apache Licence 2.0 

著名的非盈利开源组织Apache采用的协议, 鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件).需要满足的条

件也和BSD类似,该协议相比BSD的区别是:如果你修改了代码, 需要在被修改的文件中说明

典型代表:Apache  AOSP

AOSP(Android Open Source Project),由于遵循了APL 协议,也导致了android版本的碎片化

5,MIT (Massachusetts Institute of Technology)

MIT是和BSD一样宽范的许可协议, 作者只想保留版权, 而无任何其他了限制

典型代表: Node

以上就是目前市面上软件主要用的开源协议,请大家在使用软件前仔细看好。

最后附上巨人画好的一幅图,简洁明了:

上一篇 下一篇

猜你喜欢

热点阅读