安卓与Linux有什么关系

安卓与Linux有什么关系

安卓不是linux
引用:
Linux Kernel的维护者Greg Kroah-Hartman宣布,将Android 代码从 Linux kernel 代码库中删除。这意味着,Linux Kernel的开发小组不认可Android的贡献,两者产生了冲突。
  Greg Kroah-Hartman写了一篇详细的文章,解释这个决定。下面就来看看,他是怎么说的,以及Android到底是一个什么样的系统。在这之前,你最好知道Greg Kroah-Hartman是谁。他是目前Linux Kernel的核心开发人员,负责stable软件包的发布。就是说,每一个新版本的Linux Kernel,都是经过他的手流出来的。此外,他还负责硬件驱动的部署。而他的手机就是HTC G1,每天都在使用。所以,他是绝对有资格谈论这个问题的,他的看法代表了Linux社区对Android的看法。  首先,他指出Android和其他的Linux发行版不一样:  “Google has taken the Linux kernel, and nothing else from a “traditional” Linux system.
  Google只用了kernel,别的东西都没用。”  这就是说,与Ubuntu、Debian、Redhat这样的传统Linux发行版相比,只有系统的底层结构是一样的,其他东西在Android里都不一样,尤其是程序员的编程接口是完全不同的。因此,Android应用程序都必须重新写过,现存的Linux程序无法移植上去。所以,从严格意义上说,Android是一种全新的系统,它与Linux的距离,比Mac OS与Linux的距离还要远。 然后,Greg Kroah-Hartman肯定了Android这样做的积极意义:
  “Android also solves the problem that the phone manufacturers had been having for many years: a free version of Java and a unified application layer that programmers can write to that will work on all phone platforms that integrate it.
  它解决了长期令手机制造商头痛不已的问题:业界缺乏一个开源的Java虚拟机,以及统一的应用程序接口。现在,程序员只要写一次程序,就能在各种手机硬件平台之上使用。”  这段话解释了,为什么Android的应用程序,都必须用Java语言开发。因为不这样做的话,没法让程序做到硬件无关。  且慢,这真的是理由吗?传统的Linux系统,也并不依赖特定的硬件啊!只要把源代码根据不同的平台,分别编译一下,同一个程序不也照样可以在不同的硬件架构、不同的Linux发行版中使用吗?  那么,Android只采用kernel、只允许用java编程的真正原因,到底是什么? 台湾的科技网志MMDays一语道破真相:  “Linux kernel的版权是GPL。
  这下问题来了:如果你是硬件厂商,希望你的硬件能在 Linux kernel 下运作,那么就必须要有驱动程序。如果驱动程序的程序代码公开,等于硬件规格也公开的差不多了。许多厂商不愿意这么做,所以就提供编好的驱动程序,但不提供原始码。  Android 的重点就是商业应用,Google采用了一些手法来绕过这问题。他们把驱动程序移到 “userspace”,也就是说,把驱动程序变成在 Linux kernel 上头跑,而不是一起跑的东西,这样就可以避过GPL。然后,在 kernel 这边开个小门,让本来不能直接控制到硬件的 “userspace” 程序也可以碰得到,这样只要把”开个小门”的程序代码公布就行啦。”  看明白了吗?  这段话的意思是说,Google玩了一个花招,在kernel和应用程序之间,自己做了一个中间层,这样就既不违反GPL许可,又能不让外界看到厂商的硬件驱动和应用程序的源码。这样做或许有利于推广Android,吸引厂商和软件开发商的加入,但是也给Linux Kernel带来了麻烦。Greg Kroah-Hartman直截了当说出了自己的不满。  “…any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google’s kernel tree, causing it to fail to build in the kernel.org tree.
  所有为Android写的硬件驱动,都不能合并入kernel。因为它们只在Google的代码里有效,在kernel里根本没法用。
Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.
  由于这个原因,Google也从不把大量的硬件驱动程序和平台源码向kernel提交。实际上,它创造出了一个kernel的分支,大量的开发者都依赖那个分支。”  这就是Android干的事情:它修改了Kernel,但是又不提供修改的细节,自己搞了一个封闭的系统。说得难听一点,它利用了开源社区,要求开源社区为它做贡献,却又不愿提供回报。  所以,Linux Kernel就把Android踢出去了,真是再正常不过了。完整的文章在这里: http://hi.baidu.com/dongfengxiao/blog/item/5722821e3418da12403417e6.html/cmtid/a8b7f61b52f892dbad6e75a0
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-24
安卓是其于Linux开发的 即安卓底层内核还是Linux 只不过安卓优化了部分内核 加入了一些谷歌的应用的内核
第2个回答  2017-07-15
安卓是其于Linux开发的 即安卓底层内核还是Linux 只不过安卓优化了部分内核 加入了一些谷歌的应用的内核
第3个回答  2013-07-24
没什么关系,安卓是安卓,linux是linux
第4个回答  推荐于2017-07-15
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。本回答被网友采纳

linux系统 和安卓有什么区别
1、linux系统:是一套免费使用和自由传播的类UNIX操作系统。2、安卓:是一种基于Linux的自由及开放源代码的操作系统。二、架构不同 1、linux系统:主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。能运行主要的Unix工具软件、应用程序和网络协议。2...

安卓和Linux有什么关系啊?
安卓是基于Linux内核,但不是Linux操作系统。“Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。

安卓和linux的关系
安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。两者是并存关系。Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android的系统架构和其操作系统一样,采用了分层的架构。从架...

安卓手机可以直接装Linux吗
一般手机使用安卓系统,而不会安装Linux系统。通常是安卓的手机刷Linux系统,而不是Linux的手机刷安卓,本质上安卓就是精简版的Linux。在安卓的手机安装Linux系统,可以试试 Linux Installer,在Google Play上找得到,应该需要Root,手机配置可能不能太低。

安卓系统linux系统哪个好安卓系统与linux系统
android和linux的关系?Android是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Linux,全称GNU\/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5...

Linux和安卓具体是存在什么关系
Android一种基于Linux的自由及开放源代码的操作系统。Linux操作系统的内核,安卓则是基于Linux内核开发的操作系统,安卓在Linux的基础上提供了驱动以及用户编程接口。操作系统管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、...

安卓和Linux是什么关系安卓能运行Linux软件?为什么说安卓是虚拟机环境...
安卓一开始是使用的linux系统内核。linux操作系统内核,套上壳,加一些应用软件,就是操作系统了。linux系统是用C语言写的,被广泛地移植到各种机器上。虚拟机,就是一个虚拟的计算机硬件系统,有虚拟的CPU、指令集。运行时,将虚拟指令翻译成实体机器指令执行。JAVA语言就是运行的在虚拟机上的。使用虚拟...

linux和安卓什么关系
安卓是Google基于linux开发的一个操作系统 广泛应用于智能设备中,相当于对linux做了二次开发

linux系统 和安卓有什么区别
1、支持软件格式不同 Android系统支持的是APK后缀文件格式,而linux系统若要运行APK软件则需要一个JAVA虚拟机环境来运行。2、运行平台不同 Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。linux系统在移动设备和电脑上...

Linux和安卓有什么关系?
一、Android为什么会选择Linux 成熟的操作系统有很多,但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如:1、强大的内存管理和进程管理方案 2、基于权限的安全模式 3、支持共享库 4、经过认证的驱动模型 5、Linux本身就是开源项目 二、Android不是Linux 因为它没有本地窗口系统,...

相似回答