Android离Linux越来越遥远了,Google的Android真的是开源的吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android离Linux越来越遥远了,Google的Android真的是开源的吗?相关的知识,希望对你有一定的参考价值。

Linux简介(先简单的介绍一下Linux)

Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

1994年3月,Linux1.0发布

代码量17万行,当时是按照完全自由免费的协议发布,完全自由免费的协议代表着自由,开放,任何人都可以修改它,加上自己的代码,但是这样无疑让Linux很难以商用而且不利于传播(这里很难说,如果不是商业的驱动,完全的自由开放可能就不会有今天的Linux了)。于是随后正式采用GPL协议。GPL协议是一种很强硬的开源协议,给软件提供版权保护的同时它给你复制,发布和修改这些软件的法律许可。

如果你修改这些代码并申请专利,那么请看:自由软件的再发布者以个人名义获得专利许可证。事实上,将软件变为私有。为防止这一点,我们必须明确:任何专利必须以允许每个人自由使用为前提,否则就不准许有专利。

显然,android是一个商业应用,这样的协议肯定不符合Google的利益,等一下我会介绍Google是如何对抗这种协议的。

1995年1月,RedHat(小红帽)诞生

1995年1月,Bob Young创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,RedHat Linux,称为Linux“发行版”,在市场上出售。1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器,此时的Linux 已经进入了实用阶段,全球大约有350万人使用。

2003年11月16日,Fedora Core(自第七版直接更名为Fedora)发布

它是一套从Red Hat Linux发展出来的免费Linux系统。Fedora Core 的前身就是Red Hat Linux。Fedora是一个开放的、创新的、前瞻性的操作系统和平台,基于Linux

1993年8月13日,Debian

它的目标是提供一个稳定容错的Linux版本。支持Debian的不是某家公司,而是许多在其改进过程中投入了大量时间的开发人员,这种改进吸取了早期Linux的经验。

2004年10月20日发布首个以Debian为开发蓝本版本Ubuntu4.10

Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。而且在每年的6月份都会发布一个新版本。

2014年初,CentOS宣布加入Red Hat

CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。

所以在学习的时候我们一般使用Ubuntu,而在企业开发的过程中一般使用CentOS。

只介绍了一些,如果还想要了解Linux的各种版本,顺着看,在文章后面就可以看到我在网上看到的几张图(总结的很完善,所有也希望给大家分享一下)

Google的Android“真的”是开源的吗?

我们首先得明白,Android是Google的一种商业性应用,所以说,肯定不能完全遵守前面所说过的GPL开源协议,不然别人就可以做自己的操作系统了,为什么要用Android呢,不是吗?

先看看Android和正常的Linux的区别在什么地方(详情请看图)

本质上来说,Android还是一个Linux系统,只是外面套了一层虚拟机(Dalvik/ART),而且只使用了Kernel(Linux内核),但是,很多人都说Linux离Android的距离比离ios还远。这是为什么?

因为Google对它进行了定制改造,和我们自己去定制Linux到镶入式设备上差不多,只不过Google对它做的改动更大而已,而且作为一个商业行为,这里面耍了不少技巧。
技术分享图片技术分享图片

躲避GPL协议,商业行为的第一步

一个完美的商业行为,Google肯定不愿意去开源的。Linux kernel 的版权是 GPL,而一个硬件厂商,希望自己的硬件运行在Linux kernel上,那么必须有相应的驱动程序,但是如果公布了相应的驱动程序的代码,就等于硬件规格也公开得差不多了。

Google肯定不希望这样,而且这只是第一步,于是在外部有了一个虚拟机,Google采用了一些手法来绕过这问题。他们把驱动程序移到 "userspace",也就是在Linux kernel上开了一个小门,把本来是和Linux kernel一起跑的驱动变成了在Linux kernel上面跑的东西,成功避开了GPL协议。

现在看来也就是对于硬件厂商有些好处,所以给Google也带来了好处,但是为什么要说是否是真的开源?我继续来分析。

”开源“变”闭源“的Android
刚开始的时候,Android确实算是开源的,但现在你说闭源估计也没人反对了。

很多人这样说Android,"Google自己的网站,与微软的网站一样封闭。它开源出来的东西,都是根据GPL许可证不得不开源的。"

锁定OEM制造商

通过使用APP的升级来闭源,Google在移动端的控制力主要源于app群—— Gmail、Maps、Google Now、Hangouts、YouTube和Play Store,这些都是Android的杀手级应用,很多手机厂商都希望运行在自己的设备上。于是需要获得Google的授权,授权也没有什么,就是需要加入Open Handset Alliance(OHA)而获得Google授权,加入意味着什么,意味着其设备就不能运行其他版本的Android系统了。

亚马逊作为一个异端Android版本,当它寻找其下一个生产商时,它不得不自觉地绕过Acer、Asus、Dell、Foxconn、Fujitsu、HTC、Huawei、Kyocera、Lenovo、LG、Motorola、NEC、Samsung、Sharp、Sony、Toshiba和 ZTE这一长串名单。目前,亚马逊将其Kindle设备的订单一股脑地承包给了Quanta Computer,一个笔记本电脑生产商。这或许是亚马逊的无奈选择吧。

锁定开发者,便捷的API

单纯是几个应用肯定是不足以让那些硬件厂商卖身的,那么Google又做了什么呢?

Play Service为Google对抗衍生版本Android的一大利器,Google大力加强第三方应用对于自身的依赖性,Google提供了多个为开发者定制的API,使用这些API让开发者的软件兼容性越来越好,而不使用的则日子越来越艰难。战略其实是把“Android App Ecosystem”变成了“Google Play Ecosystem”,Google对于Android也是又爱又恨,因为Google希望大家依赖的是Google而不是Android,但是却无奈Android还是太强势,并且中间发生过不少Google和Android之间的趣事。

而且随着Google越来越强,开发者和用户想要脱离Google就越来越困难,Android的开源,是一种可望不可及的开源。

对于Google一点看法

其实也不能一昧的批判Google的这种做法,我还是很喜欢Google的,毕竟这是一种商业行为,但是以开源的名义来闭源,享受这社区的福利,却没有做出贡献,有人批判,并且将Android的代码从Linux社区中剔除,但也有人肯定了它的积极性,认为它对传播Linux作出了贡献。

这也是小编自己有一些了解,然后搜集资料整理出来的一点东西,如果大家有什么疑问或者看法,都可以提出来,一起讨论、交流。

另外,小编有自己的学习交流群(主要是Python)大家如果想要来学习的话,可以加下:719+139+688,不管你是小白还是大牛,小编都欢迎,而且小编会在群里面不定期分享干货,包括小编自己整理的一份2018年最新学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴

Linux的版本

技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片


以上是关于Android离Linux越来越遥远了,Google的Android真的是开源的吗?的主要内容,如果未能解决你的问题,请参考以下文章

Linux培训基地,Linux培训哪个好?

IT运维工程师们为什么选择使用Linux系统

IT运维工程师们为什么选择使用Linux系统

AIops离我们遥远吗?

在了解量子力学之前,我总觉得量子离我很遥远

突破次元壁谁说二次元离我们遥远?Python特效火遍全网,关键技术原来是它!!