Linux与Android之间的关系

android 为什么为选择Linux

1. 强大的内存管理和进程管理方案
2. 基于权限的安全模式
3. 支持共享库
4. 经过认证的驱动模式
5. linux本身就是开源项目
android 不是linux
1. 它没有本地窗口系统
Linux用的X窗口系统, Mac 上OX X的Quartz
Android上并没有使用
2. 它没有glibc的支持
采用了Google自己开发的一套Bionic Libc代替glibc
3. 它并不包括一整套标准的Linux使用程序
没有完全照搬Linux系统的内核;
修改了部分Linux的Bug,增加了不少内容,如基于ARM架构的Gold-Fish平台
以及Yaffs2FLASH文件系统
4. 它增强了Linux以支持其特有的驱动
1. Android Binder 基于OpenBinder框架的一个驱动,提供了android
平台间的进程通信功能, 源代码位于drivers/staging/android/binder.c
2. Android电源管理功能(PM) 一个基于标准备Linux电源管理系统轻量级Android
电源驱动管理,针对嵌入式设备做了很多优化。源码位于:
kernel/power/earlysuspend.c
kernel/power/userwakelock.c
kernel/power/wakelock.c
kernel/power/consoleearlysuspend.c
kernel/power/fbearlysuspend.c
3. 低内存管理 比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/art/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/ram_console.c
10. Android timed device 提供了对设备进行定时控制的功能,目前支持vibrator和LED设备。源代码
位于drivers/staging/android/timed_output.c(timed_gipo.c)

上一篇:配置本地host


下一篇:window修改host文件