标签:Python Linux Android 人工智能 Google
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的各种版本,顺着看,在文章后面就可以看到我在网上看到的几张图(总结的很完善,所有也希望给大家分享一下)
我们首先得明白,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的,毕竟这是一种商业行为,但是以开源的名义来闭源,享受这社区的福利,却没有做出贡献,有人批判,并且将Android的代码从Linux社区中剔除,但也有人肯定了它的积极性,认为它对传播Linux作出了贡献。
这也是小编自己有一些了解,然后搜集资料整理出来的一点东西,如果大家有什么疑问或者看法,都可以提出来,一起讨论、交流。
另外,小编有自己的学习交流群(主要是Python)大家如果想要来学习的话,可以加下:719+139+688,不管你是小白还是大牛,小编都欢迎,而且小编会在群里面不定期分享干货,包括小编自己整理的一份2018年最新学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴
Android离Linux越来越遥远了,Google的Android真的是开源的吗?
标签:Python Linux Android 人工智能 Google
原文地址:http://blog.51cto.com/13460911/2105708