今天被红芯浏览器刷屏了,明明是站在巨人的肩膀上,非得说是自主创新。也是,现在国产的项目,如果不用到开源软件,估计很多项目就寸步
难行了,基本就歇菜了。既然用到开源软件,首先要了解软件遵循什么开源协议。比如本来你用到的开源软件遵循的是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
以上就是目前市面上软件主要用的开源协议,请大家在使用软件前仔细看好。
最后附上巨人画好的一幅图,简洁明了: