开源软件的蓬勃发展导致了开源许可证的多样化,这些软件许可证五花八门,既有相同之处也各有特殊考量,要想把这些许可证都搞明白了也不是一件容易的事,需要专业的法律界人士仔细分析其条款。笔者不是法律专业人士,只能对开源许可证进行粗略地介绍。
软件许可证中大多是些免责条款,比如,“你用我的软件设计飞机,飞机摔了我不负责”,“你用我的软件搞自动驾驶,掉沟里跟我没关系”之类的。大家不要以为只有开源软件的许可证才有这些免责条款,私有的商业软件也一样有这些条款,否则以Windows动不动就蓝屏的操行,飞机摔了都去找比尔盖茨赔,他虽是首富也早就破产了。大家安装软件时,一般情况下,第一步就是要接受许可证,否则安装根本进行不下去,不过,绝大多数人根本不会去读许可证的内容。
常见的开源软件许可证有几十种,比较著名的有:
按照宽松程度,开源软件的许可证可以分为传染性的和非传染性的。
传染性许可证
所谓传染性,就是要求“我的软件开源,你的修改也要开源”。RMS的自由软件基金会主打的GPL许可证就是这么要求的。起初,这种要求也无可厚非,毕竟自由软件是从零做起、一行一行代码辛苦码出来的,如果代码被商业公司拿去改一改,增加一些功能,比原来更好用,而且不继续开源,那么用户就都流失了。
但是,转染性的许可证也限制了开源软件的推广使用,比如说一家商业公司用了少量开源代码做产品,就必须把含有大量技术机密的自有核心代码公开,对于这家商业公司来说就得不偿失,在这种情况下,商业公司就会放弃使用具有传染性的开源代码。这不利于开源软件的推广,而开源软件的开发者也拿不到商业公司以捐赠形式提供的回馈。
自由软件基金会显然也意识到了许可证传染性带来的问题,因此他们推出了LGPL(宽松通用公共许可证),允许商业公司把开源软件编译成动态链接库使用。
非传染性许可证
这种“任君采撷”的非传染性许可证很受欢迎,很多开源项目都采用此类许可证,除了加州伯克利的BSD以外,麻省理工的“X窗口”,Apache,还有中国的“木兰宽松许可证”都是非传染性的。华为的方舟编译器就是以木兰许可开源发布的。
那么开发机构为什么要以非传染性许可证发布软件?难道真的是做慈善?原因是多种多样的,比如加州伯克利和麻省理工,作为大学本身就肩负为人类创造新知识的使命,它们的软件向全 会公开是责无旁贷。还有一些公司或机构发布开源软件的原因是,它们并不靠售卖软件为生,而是利用开源软件提高自己其它产品的影响力,从而获取收益。谷歌的安卓就属于这种情况。
在苹果手机的操作系统iOS大获成功之后,有很多开源的移动操作系统在竞争主导地位,比如Meego和Tizen,安卓之所以在竞争中胜出,一方面是由于其本身优秀的品质,另一方面就是由于它采用了宽松的软件许可证,允许商业公司拿回家去随便修改使用。如果当初安卓不这么做,可能早就死翘翘了,著名的反例就是微软的WindowsPhone,死守着老派的私有商业许可证,最终为用户所唾弃,连带微软的老伙伴Intel都跟着在移动市场上摔了大跟头。
你要问谷歌靠什么赚钱,它的商业模式是什么,且听我慢慢道来。
古哥儿的生意经
村里的古哥儿是个聪明孩子,而且还勤快。古哥儿靠替人贴小广告为生,你看村里村外、车站食堂的那些“办证”“交友”的小胶贴都是古哥儿贴上去的。
古哥儿这孩子勤快,常常免费替村里人办事儿,比如通个下水道、发个快递、送个外卖什么的。你不要以为古哥儿是个傻帽,这可是古哥儿发财的秘诀。古哥儿免费替人办事儿,才能进到人家里,进到人家里才能知道人需要什么,才能更准确地发小广告。现在古哥儿已经不亲自贴胶贴了,而是招收了一帮小弟,发广告有分成,自己留一半,小弟拿一半儿。但是古哥儿有不对称的信息优势,知道谁需要什么,所以找古哥儿贴广告的效果最好,亚虎那傻小子也替人发广告,就知道在村口瞎嚷嚷“大力丸、大力丸”,结果李药师一个月都没卖出去一粒大力丸,从此不再找亚虎发广告,亚虎只好撤摊儿了,听说在城里替人挑水为生。古哥儿现在也成了大老板,一大清早就把兄弟们召集起来交代工作:
“我说小推子,你把大力丸广告送给李寡妇没用,她用不着那个,她儿子有湿疹,把湿疹广告推给她。”
“我说小管子,赵员外的小妾昨天抱怨欲求不满,把大力丸广告给赵员外送去。”
安卓的许可证
?很多人问,安卓的许可证是什么类型的,这个问题还真不好回答,因为安卓不是一个单体软件,而是由许多模块组成的,不同的模块采用的许可证也不一样,所以安卓的许可证有一大摞,既有GPL也有LGPL和BSD类许可证,堪称许可证博物馆。
安卓的最底层是Linux内核,这一点好多人的不知道,拿着安卓手机发帖子,喷Linux是垃圾在中国是一大奇观,他们不知道,Linux就运行在自己裤兜里。Linux内核采用的是GPL许可证,而且是GPL v2,不是GPL v3,Linus特别强调过这一点。至于GPL v2和v3有什么区别,我也说不清楚,大概齐是在对待软件专利方面的条款有些差异。
安卓还用了很多LGPL的库,比如显示jpg图片要用libjpeg,显示png图片要用libpng,显示大家喜闻乐见的gif动图要用libgif。另外,播放录制声音要用到音频库,播放录制视频要用到视频编解码库等等。
安卓中谷歌贡献的代码,主要是Java虚拟机和图形用户界面库部分,采用的是非传染性的开源许可证。
安卓的开源部分叫做“安卓开源计划”,简称AOSP。
所以,总的来说,安卓是个各种开源软件的大集合。了解了这一点,再听到“谷歌禁止华为使用安卓操作系统”之类的话,就可以嗤之以鼻了。谷歌没有权利禁止别人使用开源软件,不仅谷歌不能,美国政府也不能。
谷歌有权不让华为使用的是它掺在安卓里的私货,具体点儿说就是“谷歌移动服务”,简称GMS。谷歌还可以不让华为手机出厂时安装谷歌自家的安卓App,比如油管视频、Gmail之类的。
谷歌还可以禁止华为使用“安卓”这个词,以及安卓那个小机器人的图标,因为“安卓”和小机器人是谷歌的商标。但是,现在谷歌还没有这么做,因为这么做意义不大。
所以,尽管华为鸿蒙还没有发布,大家也可以预期鸿蒙与安卓不会有太大的差别,因为是同一套代码。
华为有没有权利给安卓的开源代码改名字呢?有!不仅有权这么做,而且这种一言不合就给开源代码改名字的事儿,在开源界是很常见的现象,这叫fork,就是分叉。
今天太晚了,关于开源软件分叉,开源软件主导权,和鸿蒙系统会是什么样的话题,咱们下回分解。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!