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真的是开源的吗?

原文地址:http://blog.51cto.com/13460911/2105708

时间: 2024-10-29 10:46:46

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

解决mac无法更新android sdk报Fetching https://dl-ssl.google.com/android/

1.在mac系统下按command+shift+g组合键,然后在搜索框内输入/private/etc/hosts打开窗口找到hosts文件,并将它复制到桌面上 2.打开刚刚复制到桌面的上的hosts文件,在该文件中输入如下IP串 203.208.46.146 dl.google.com203.208.46.146 dl-ssl.google.com 3.将桌面上的hosts文件复制到/private/etc/下替换原来的hosts文件即可 欢迎加入Android讨论群学习交流:285077071

Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-2.xml, reason:

最近接受的这个项目需要Android SDK Tools revision 22.6.2 or above.,所以必须得更新SDK, 然而在SDKmanager中更新android SDK 总是提示: Fetching http://dl-ssl.google.com/android/repository/addons_list-2.xmlFetched Add-ons List successfullyFetching URL: http://dl-ssl.google.com/android

[转载]关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错

原文地址为:http://blog.csdn.net/springsky_/article/details/7442388 因为入行移动测试,所以很多测试环境的搭建.从中遇到了和这个GG同样的问题.怕GG哪天删了,就转载了GG的博文~ 最近SDK出问题了,然后在google下载了一个android-sdk-windows.rar,然后点击SDK Manager,结果一直不能刷新API Level,然后就开始在网上找了好多资料,解决这个问题,修改 HOSTS,    HTTP  和  HTTPS 

【读书笔记-《Android游戏编程之从零开始》】1.Android 平台简介与环境搭建

简单的记录下笔记,具体可百度! Android SDK (Software Development Kit)- Android 软件开发工具包,用于辅助Android 操作系统软件开发,是开发Android 软件.文档.范例.工具的一个集合.Android NDK (Native Development Kit) - 类似 Android SDK,可用C/C++语言编写Android程序. developer.android.com - 可查阅到 Android SDK. 开发指南.API说明等

Android学习及开发随记1:Android Studio安装配置

1.本系列仅为个人使用,概不负责.随着时间推移,部分内容可能因为软件更新而出现不能对应的情况. 本文的配置情况,仅针对Android Studio v1.1.0 windows版本 全新安装. Google Android Developers Site:https://developer.android.com/sdk/index.html The official Android IDE:https://dl.google.com/dl/android/studio/install/1.1.

Google 发布 Android 性能优化典范

2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议.主要从三个 方面展开,Android的渲染机制,内存与GC,电量优化.下面是对这些问题和建议的总结梳理. 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能.从设计

Android和Linux应用综合对比分析

公开发布的序言: 这篇文章是作于2012年7月12日,也就是自己刚从大学校园迈向工作岗位的时候遇到的第一个题目"请你针对我们公司目前的应用行业场景做一下调研:在终端做应用程序开发的平台是选择Linux好还是Android好"而写的. 在踏出校园之前,自己从来没有接触过安卓的开发领域(除了在2010年下半年买了一部分安卓的智能手机外).接到这个题目后,自己也没有退缩,硬着头皮接下来了,然后凭借自己在学校时候学的一点检索信息写学术论文的小功底,三天之内写下了这篇长达1万4千多字的调研报告,

[Android] 基于 Linux 命令行构建 Android 应用(七):自动化构建

本章将演示如何基于 Linux 命令行构建 Android 应用,在开始本章之前,希望你已经阅读之前几章内容. 本文环境为 RHEL Sandiego 32-bits,要基于 Linux CLI 构建 Android 应用,先决环境为: 1. JDK[1] 2. Android SDK 3. Apache Ant 安装过程需要使用 sudo 权限. 1. 搭建环境 1.1. 安装 JDK JDK 是构建 Android 应用先决条件之一,由于版权原因,一般安装 Open JDK. RHEL 中使

linux.linuxidc.com - /2011年资料/Android入门教程/

本文转自 http://itindex.net/detail/15843-linux.linuxidc.com-%E8%B5%84%E6%96%99-android Shared by Yuan 用户名与密码都是www.linuxidc.com linux.linuxidc.com - /2011年资料/Android入门教程/ [转到父目录] 2011年7月16日 21:33 <目录> Android 3D 游戏开发教程 2011年8月18日 13:26 <目录> Android