Android和Linux的关系
①、Android采⽤Linux作为内核
②、Android对Linux内核做了相应的修改,使Linux适应在移动设备上使⽤
③、Android⼀开始是Linux的⼀个分⽀,由于⽆法并⼊Linux的主开发树,被从开发树中移除
linux和安卓的关系⼀、Android是继承于Linux
  Android是在Linux内核基础之上运⾏,提供的核⼼系统服务包括安全、内存管理、进程管理、组⽹组和驱动模型等内容,内核部分相当于介于硬件层和系统中其他软件组之间的⼀个抽象层次。所以,严格来说不算是Linux操作系统。由于Android在很⼤程度上保留了Linux的基本框架,使Android的应⽤性和扩展性都很强。
⼆、Android和Linux区别
  Android系统的系统层⾯的底层是Linux,中间加了⼀个叫Dalvik的Java虚拟机,表⾯层是Android运⾏库。每个Android应⽤都运⾏在⾃⼰的进程上,享有Dalvik虚拟机分配的专有实例。为了⽀持多个虚拟机在同⼀设备上⾼效运⾏,Dalvik也被修改过。Dalvik虚拟机执⾏的是Dalvik格式的可执⾏⽂件.dex,该格式经
过优化,将内存的消耗降到最低。Java编译器将java源⽂件转为.class⽂件,.class⽂件⼜被内置的dx⼯具转为.dex格式⽂件,使得能够在Dalvik虚拟机上注册并运⾏。Android系统的应⽤软件都是运⾏在Dalvik虚拟机之上的Java软件,⽽Dalvik虚拟机是运⾏在Linux之中,在⼀些底层功能(如线程和低内存管理),Dalvik虚拟机是依赖Linux内核的。因此,Android是运⾏在Linux之上的操作系统。
  Android内核和Linux内核主要体现在以下⼏个⽅⾯:
  ①、Android Binder :Android Binder是基于OpenBinder框架的⼀个驱动,⽤于提供Android平台的进程间通信(IPC,inter-process communication)。⽽Linux系统上层应⽤的进程间通信主要是D-Bus(desktop bus),采⽤消息总线的⽅式进⾏IPC。
  ②、Android 电源管理(PM):是⼀个基于标准Linux电源管理系统的轻量级的Android电源管理驱动,针对嵌⼊式设备做了很多优化,利⽤锁和定时器来切换系统状态,控制设备在不同的状态下的功耗。
  ③、低内存管理器(low memory killer):Android低内存管理器和Linux标准的OOM(out of memory)相⽐,其机制更加灵活,根据需要杀死的进程来释放内存,低内存管理器代码⾥⾯的关键函数是lowmem_shrinker(),作为⼀个模块在初始化时调⽤register_shrinke注册⼀个lowmem_shrinker,被vm在内存紧张时调⽤,lowmem_shrinker完成具体操作就是直接到⼀个最合适的进程杀死,释放所占
⽤的内存。
  ④、匿名共享内存(Ashmem):为进程提供⼤块共享内存,并为内核提供回收和管理这个内存的机制。如果⼀个程序尝试访问Kernel 释放的⼀个共享内存块,将会收到⼀个错误的提⽰,然后重新分配内存并重载数据。
  ⑤、Android PMEM(Physical):PMEM⽤于向⽤户空间提供连续的物理内存区域,DSP和某些设备只能⼯作在连续的物理内存上,驱动中提供了mmap、open、release和ioctl等接⼝。
  ⑥、Android Logger:是⼀个轻量级的⽇志设备,⽤于抓取Android系统的各种⽇志,但Linux没有。
  ⑦、Android Alarm:提供⼀个定时器,⽤于设备从睡眠状态唤醒,还提供了⼀个设备在睡眠时也会运⾏的时钟基准。
  ⑧、USB Gadget驱动:此驱动是基于标准Linux USB gadget驱动框架的设备驱动,Android的USB驱动是基于gadget框架。
  ⑨、Android RAM Console:为了提供调试功能,Android允许将调试⽇志信息写⼊⼀个被为RAM Console的设备⾥,是⼀个RAM的Buffer。
  ⑩、Android timed device:提供了对设备进⾏定时控制的功能,⽀持振动器和LED等设备。
  在Android系统中,采⽤Yaffs2作为MTD nand flash ⽂件系统,Yaffs2是⼀个快速稳定的应⽤于NAND和NOR Flash的跨平台嵌⼊式设备⽂件系统,与其他的flash⽂件系统相⽐,Yaffs2使⽤更⼩的内存来保存运⾏状态,占⽤内存较⼩;Yaffs2的垃圾回收也⾮常简单;Yaffs2在⼤容量的NAND Flash上性能表现更加明显,⾮常适合⼤容量的Flash存储。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。