原以为大家都知道,不必要答这个问题,可惜极少答案正确。
linux内核是免费,不表示它自己做成产品也必须是免费的,还是有不少发行版是收费的,就算收个光盘的钱也是收费吧。
同理,基于linux开发的android也不一定是免费。
不过,android还真的有免费的版本,比如AOSP,这个版本你可以自己下载,编译,安装,使用,没人找你收钱。但是AOSP不包括Android系统所有部分,驱动,GMS这些软件不光要收费,还不开源。
AOSP其实也不是一个产品,它是多个产品的集合,其中就包括Linux内核。AOSP其中的产品和linux内核有不一样的许可证。
许可证这个东西,其实是限制如何使用源代码,基本上是不能修改,传播,有限复制等要求,原则上不限制产品。但是从开源软件的出现,改变了这个规则。
开源的基本要求是无限地修改开源软件。但对于修改之后的软件,要求不一。
有的开源许可证限制不能用于把源代码商用,这个商用基本上是以收费为界。
有的开源许可证不限制商用,但限制集成,你把这个源代码编译到自己的产品中,成为产品的一部分,那么你的产品也需要开源,这就是GPL的原理。按Linux和QT的例子来看,它是以是否依赖链接符号为标准判断是否是产品的一部分。这种情况,商用比较困难,很多商业软件不想公开自己开发的那部分。
Linux和QT分别用了不同的方式来支持商用。QT比较简单,它搞了两个版本,商用版和开源版本。Linux用了一个例外,即如果你只是调用Linux的系统调用,不需要开源。
但是,Linux下驱动是必须使用内核头文件编译与内核进行链接,也就是早几年Linux未能在嵌入式领域大面积用起来的原因之一,因为有特色的硬件厂商不想公开自己的驱动程序。Android提出了一个可行的思路解决这个问题。它设计了一个中间层,这个中间层支持一种用户空间的驱动。让大部分驱动程序可以不需要直接与Linux相链接,而是只和Android的中间层相链接。而这个中间层它自己是公开源代码,但不要求它的驱动程序公开源代码。(这里不光是技术问题,不要相当然地复制这个作法,GPL是少数由律师设计的许可证,绕过它可不容易。)
开源软件不反对商用,不反对收费,它主要是保证大家都有审查和修改代码的权利,不要把代码这么重要的东西依赖于作者(个人或公司)的道德水平。
如果说开源得到了大家的共识,那么同样主张,但更进一步的自由软件,就不是每个人都能认同了。自由软件,来自于它认为使用者有自由使用软件的权利。GPL正是这些权利的保护伞,也是商业公司不喜欢GPL的原因,GPL软件很难取得专用软件那样多的利益。同时,我认为,不是所有用户都喜欢GPL,没有商业支持的软件对用户要求过高,并不友好;一些软件作者也不喜欢难以商用收费,还必须开源的GPL,容易被大公司抄走,还不给钱。
所以,Android基于Linux收费的原因在于,它不光是一个商业化的自由软件,也是一个商业化的开源软件,同时还是一个收费的闭源软件。
关于自由软件,见这个解释:http://www.gnu.org/philosophy/free-sw.html
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有