MPL
MPL是1998年初Netscape的 Mozilla 项目组为其开放源代码软件项目设计的开源许可证。
MPL的特殊性是在开源软件许可证谱系中接近于 BSDL,但它带有强烈的商业化特征,为公司保留了相当的权利,相当于集开源之力,都为我所用。
类似的开源许可证 Apple 公共代码许可证(1.2)、Sun 公司的SISSL和 Sun 公共许可证 (1.0)、Nokia 开放源代码许可证(1.0a)、 IBM公共许可证(1.0)等等。
如果选择一个开源协议呢?乌克兰程序员Paul Bagwell给出了一张分析图,如下:
国内的阮一峰在博客上给出了简化的版本:
除了Linux操作系统外,一个可能是最成功的复杂开源系统体系可能对理解开源许可协议有帮助。
Android 的开源许可体系
Android有关linux内核部分采用GPLv2协议开源,有关userspace采用ASLv2(Apache协议版本2 )协议开源。
GPL和非GPL的分界线在于一个 Bionic Libc 的库。 头文件由Linux内核的同名头文件自动生成,用来获取完成用户空间系统调用的必要信息。它只包含原头文件中的常数、结构和宏定义,因此,不包含版权信息。让 GPL 止步于内核空间被 Linux 内核的作者 Linus Torvalds以及其他的内核开发人员多次澄清,普通系统调用为非 GPL 的作用范围。
Android 在用户空间与内核空间之间存在着硬件抽象层 HAL,HAL 类库本质上一种用户空间的驱动,其中的主要用途之一就是规避GPL。硬件厂家把需要保护的商业机密以及知识产权相关的逻辑放在 HAL 层,以二进制包的方式发布,不需要公开源代码。
PAX专利联盟是Google 加强它对 Android 控制力 的另一种手段。手机厂商想要采用这些免费的专利,就不得不 预装 Play 商店及一系列Google 应用。