问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux和安卓有什么关系?

发布网友 发布时间:2022-04-22 15:43

我来回答

2个回答

热心网友 时间:2023-10-20 11:33

Linux与Androld的关系
虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序。下面我们就来分析一下它们之间究竟有什么千丝万缕关系?
1 安卓为什么会选择Linux
成熟的操作系统有很多,比如Unix系统。但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如:
(1)强大的内存管理和进程管理方案
(2)基于权限的安全模式
(3)支持共享库
(4)经过认证的驱动模型
(5)Linux本身就是开源项目
更多关于上述特性的信息可以参考Linux 2.6版内核的官方文档,这便于我们在后面的学习中更好地理解Android所特有的功能特性。接下来分析Android与Linux真正的关系。
2Android不是Linu×
看到这个标题大家可能会有些迷惑,前面不是一直说Android是基于Linux内核的吗,怎么现在又不是Linux了?迷惑也是正常的,请先看下面几个要点,然后我们将对每一个要点进
行分析,看完后你就会觉得Android不是Linux了。
①它没有本地窗口系统
(1)它没有glibc的支持
(2)它并不包括一整套标准的Linux使用程序
(3)它增强了Linux以支持其特有的驱动
1、它没有本地窗口系统
什么是本地窗口系统呢?本地窗口系统是指GNU/Linux上的X窗口系统,或者Mac OS的Quartz等。不同的操作系统的窗口系统可能不一样,Android并没有使用(也不需要使用)Linux的X窗口系统,这是Android不是Linux的一个基本原因。

2、它没有glibc支持
由于Android最初用于一些便携的移动设备上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为C库,而是Google自己开发了一套Bionic Libc来代替glibc。
3、它并不包括一整套标准的Linux使用程序
Android并没有完全照搬Linux系统的内核,除了修正部分Linux的Bug之外,还增加了不少内容,比如:它基于ARM构架增加的Gold-Fish平台,以及yaffs2 FLASH文件系统等。
4、Android专有的驱动程序
除了上面这些不同点之外,Android还对Linux设备驱动进行了增强,主要如下所示。
(1) Android Binder基于OpenBinder框架的一个驱动,用于提供Android平台的进程间通信( InterProcess Communication,IPC)功能。源代码位于

drivers/staging/android/binder.c。
(2) Android电源管理(PM) 一个基于标准Linux电源管理系统的轻量级Android电源管理驱动,针对嵌入式设备做了很多优化。源伐码位于:
Ⅰ kerneUpower/earlysuspend.c
Ⅱ kernel/power/consoleearlysuspend.c
Ⅲ kernel/power/fbearlysuspend.c
Ⅳ kemel/power/wakelock.c
Ⅴ kernel/power/userwakelock.c
(3)低内存管理器(Low Memory Killer) 比Linux的标准的OOM(Out Of Memory)机制更加灵活,它可以根据需要杀死进程以释放需要的内存。源代码位于

drivers/staging/android/lowmemorykiller.c.
(4)匿名共享内存(Ashmem) 为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。源代码位于mm/ashmem.c。
(5) Android PMEM (Physical) PMEM用于向用户空间提供连续的物理内存区域,DSP和某些设备只能工作在连续的物理内存上。源代码位于drivers/misc/pmem.c。
(6) Android Logger -个轻量级的日志设备,用于抓取Android系统的各种日志。源代码位于drivers/staging/android/logger.c。

(7) Android Alarm捉供了一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。源代码位于drivers/rtc/alarm.c。
(8) USB Gadget驱动一个基于标准Linux USB gadget驱动框架的设备驱动,Android的USB驱动是基于gaeget框架的。源代码位于drivers/usb/gadget/。
(9) Android Ram Console为了提供调试功能,Android允许将调试日志信息写入一个被称为RAM Console的设备里,它是一个基于RAM的Buffer。源代码位于drivers/staging/android/ramL console.c。
(10) Android timed device提供了对设备进行定时控制的功能,目前支持vibrator和LED设备。源代码位于drivers/staging/android /timed_output.c(timed_gpio.c)。

(11) Yaffs2文件系统Android采用Yaffs2作为MTD nand flash文件系统,源代码位于fs/yaffs2/目录下。Yaffs2是一个快速稳定的应用于NAND和NOR Flash的跨平台的嵌入式设备文件系统,同其他Flash文件系统相比,Yaffs2能使用更小的内存来保存其运行状态,因此它占用内存小。Yaffs2的垃圾回收非常简单而且快速,因此能表现出更好的性能。Yaffs2在大容量的NAND Flash上的性能表现尤为突出,非常适合大容量的Flash存储。上面这些要点足以说明Android不是Linux。

热心网友 时间:2023-10-20 11:33

安卓参考了linux的架构,但是还是有本质的区别,两者都是开源,却没有必然的联系。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中国人发源于哪里 "中国人"这个名字的由来 微博关注取消会被发现吗? ...守护甜心》等……带点魔法的变身动画片!拜托!!! 跪求:位,字节,字,双字的解释,和关系。最好举例说明例如:VD100_百度知... 电脑的工作原理?为什么数据可以记录信息(如图片) 新风为什么要保温 新风系统为什么要保温 几年的教师资格转事业编制 ay89s51单片机可以用串口下载程序吗? 安卓系统与Linux系统相同吗 安卓系统和LINUX系统有何区别 汪东城的老婆资料 汪东城女友是谁? 影视后期特效都有哪些 达芬奇11 drx dpx后缀的预设怎么使用 davinci resolve 11怎么添加素材 达芬奇如何导入setting文件 鏈夐┈娑﹀湪灏辫屼簡锛屾垜浠鍦ㄤ笉鍦ㄦ剰涔変笉澶是什么字 苹果电脑的fcpx软件怎么安装lut预设? 请问钻石证书对钻石购买的产生影响大吗? 为什么本田思域达芬奇助手下载不了达芬奇声浪? 2克拉以上的钻石首选哪种鉴定证书呀? 戴比尔斯钻石研究机构有没有特质证书? 戴比尔斯钻石研究机构现在都有什么类型的钻石证书? 去买钻戒店员说是戴比尔斯出具的证书,但是上面也没有任何戴比尔斯的标志? 怎么DBGIS分级证书改名成DBIoD了? 达芬奇软件预设怎么导入 最近想购买钻石,在网上看到有不少品牌的产品都是带的DBGIS的证书,想了解下! 戴比尔斯的钻石鉴定报告的优势在哪? 电视linux操作系统跟安卓系统哪个好 linux操作系统跟安卓系统哪个好 android和Linux的区别? 如何把android系统换成linux系统 linux系统和安卓X86的区别 MIUI和Linux是什么关系? 404 Not Found 安卓系统出自linux, 安卓很卡,linux 会卡吗 智慧平安校园系统平台怎么绑定不了学生 想打造平安校园,哪家智慧校园人脸识别系统比较强? 智慧校园的人脸识别技术都应用在哪些方面啊 4g智能电子学生证怎么样? 听我说,这就是我想要的平安校园。 将军山中学怎样才能上到 excel怎么设置下拉为填充序列 EXCEL2007单元格下拉填充柄没有序列填充项 excel下拉菜单没有填充序列这个选项了 我的Excel怎么有些地方下拉时只填充格式不会顺序填充也不出现填充柄是怎么回事 家用射灯和筒灯规格 筒灯尺寸,筒灯标准尺寸是多少