[信息与通信]android的linux内核与驱动程序

[信息与通信]android的linux内核与驱动程序

ID:33159585

大小:989.00 KB

页数:46页

时间:2019-02-21

[信息与通信]android的linux内核与驱动程序_第1页
[信息与通信]android的linux内核与驱动程序_第2页
[信息与通信]android的linux内核与驱动程序_第3页
[信息与通信]android的linux内核与驱动程序_第4页
[信息与通信]android的linux内核与驱动程序_第5页
资源描述:

《[信息与通信]android的linux内核与驱动程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Android的Linux内核和驱动程序版本时间修订者修订内容1.02011-09-3赵安璞创建文档文档修订记录每次修改与增加内容者,需在文档修订记录中进行记录1.1Android与Linux的关系虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.1.1.1选择Linux内核Android选择采用Linux内核是依据Linux的一些特性,比如:(1)强大的内存管理和进程管理方案(2)基于权限的安全模式(3)支持共享库(4)经过认证的驱动模型(5)Linux本身就是开源项目更多关于上述特性

2、的信息可以参考Linux2.6版内核的官方文档,这便于我们在后面的学习中更好地理解Android所特有的功能特性。接下来分析Android与Linux的关系。1.1.2Android不是LinuxAndroid是基于Linux内核,但Android不是Linux是基于以下几个要点:(1)没有本地窗口系统(2)没有glibc的支持(3)并不包括一整套标准的Linux使用程序(4)增强了Linux以支持其特有的驱动1.没有本地窗口系统本地窗口系统是指GNU/Linux上的X窗口系统,或者MacOXX的Quartz等。不同的操作系统的窗口系统可能不一样,Android并没有使用(也不需要使

3、用)Linux的X窗口系统,这是Android不是Linux的一个基本原因。2.它没有glibc支持由于Android最初用于一些便携的移动设备上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为C库,而是Google自己开发了一套BionicLibc来代替glibc。3.它并不包括一整套标准的Linux使用程序Android并没有完全照搬Liunx系统的内核,除了修正部分Liunx的Bug之外,还增加了不少内容,比如:它基于ARM构架增加的Gold-Fish平台,以及yaffs2FLASH文件系统等。4.Android专有的驱动程序除了上面这些不同点之外,An

4、droid还对Linux设备驱动进行了增强,主要如下所示。1)AndroidBinder基于OpenBinder框架的一个驱动,用于提供Android平台的进程间通信(InterProcessCommunication,IPC)功能。源代码位于drivers/staging/android/binder.c。2)Android电源管理(PM)一个基于标准Linux电源管理系统的轻量级Android电源管理驱动,针对嵌入式设备做了很多优化。源代码位于:kernel/power/earlysuspend.ckernel/power/consoleearlysuspend.ckernel/

5、power/fbearlysuspend.ckernel/power/wakelock.ckernel/power/userwakelock.c3)低内存管理器(LowMemoryKiller)比Linux的标准的OOM(OutOfMemory)机制更加灵活,它可以根据需要杀死进程以释放需要的内存。源代码位于drivers/staging/android/lowmemorykiller.c。4)匿名共享内存(Ashmem)为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。源代码位于mm/ashmem.c。5)AndroidPMEM(Physical)PMEM用于向用户

6、空间提供连续的物理内存区域,DSP和某些设备只能工作在连续的物理内存上。源代码位于drivers/misc/pmem.c。6)AndroidLogger一个轻量级的日志设备,用于抓取Android系统的各种日志。源代码位于drivers/staging/android/logger.c。7)AndroidAlarm提供了一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。源代码位于drivers/rtc/alarm.c。8)USBGadget驱动一个基于标准LinuxUSBgadget驱动框架的设备驱动,Android的USB驱动是基于gaeg

7、et框架的。源代码位于drivers/usb/gadget/。9)AndroidRamConsole为了提供调试功能,Android允许将调试日志信息写入一个被称为RAMConsole的设备里,它是一个基于RAM的Buffer。源代码位于drivers/staging/android/ram_console.c。10)Androidtimeddevice提供了对设备进行定时控制的功能,目前支持vibrator和LED设备。源代码位于drivers/stag

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。