Android的Linux内核与驱动程序

Android的Linux内核与驱动程序

ID:43706638

大小:100.71 KB

页数:46页

时间:2019-10-13

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等。不同的操作系统的窗

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

4、FLASH文件系统等。3.Android专有的驱动程序除了上面这些不同点之外,Android还对Linux设备驱动进行了增强,主要如下所示。1)AndroidBinder基于OpenBinder框架的一个驱动,用于提供Android平台的进程间通信(InterProcessCommunication,IPC)功能。源代码位于drivers/staging/android/binder.c。2)Android电源管理(PM)一个基于标准Linux电源管理系统的轻量级Android电源管理驱动,针对嵌入式设备做了很多优化。源代码位于:kernel/power/

5、eaflysuspend.ckerne1/power/consoleearlysuspend,ckernel/power/fbearlysuspend.ckernel/power/wakelock.ckernel/power/userwakelock.c3)低内存管理器(LowMemoryKiller)比Linux的标准的OOM(OutOfMemory)机制更加灵活,它可以根据需要杀死进程以释放需要的内存。源代码位于drivers/staging/android/lowanemoryki11er.c。4)匿名共享内存(Ashmem)为进程I'可提供大块共享

6、内存,同吋为内核提供回收和管理这个内存的机制。源代码位于nim/ashmem.Co5)AndroidPMEM(Physical)PMEM用于向用户空间提供连续的物理内存区域,DSP和某些设备只能工作在连续的物理内存上。源代码位于drivers/misc/pmem.co6)AndroidLogger一个轻量级的日志设备,用于抓取Android系统的各种Fl志。源代码位于drivers/staging/android/logger,c。7)AndroidAlarm提供了一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。

7、源代码位于drivers/rtc/alarin.co8)USBGadget.驱动一个基于标准LinuxUSBgadget驱动框架的设备驱动,Android的USB驱动是基于gaeget框架的。源代码位于drivers/usb/gadget/09)AndroidRamConsole为了提供调试功能,Android允许将调试日志信息写入一个被称为RAMConsole的设备里,它是一个基于RAM的Buffer。源代码位于drivers/staging/android/ramconsole.co10)Androidtimeddevice提供了对设备进行定时控制的功

8、能,目前支持vibrator和LED设备。源代码位于drivers

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

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

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