Android内核是在标准Linux内核的基础上修改而成。 为了适应嵌入式硬件环境和移动应用程序的开发,Android 对标准Linux内核进行了一定的修改,主要包括以下内容,下面会针对其中英文名称对照,主要内容和代码所在位置,进行分别说明:
Android Binder机制
- 中文:Android Binder
- 英文:Android Binder机制
- 主要内容说明:基于open binder框架的一个驱动,用于提供Android平台的进程间通信(IPC)。
- 源代码位置:drivers/staging/android/binder.c
Android 电源管理
- 中文:Android 电源管理
- 英文:Android Power Management(PM)
- 主要内容说明:基于Linux电源管理系统的轻量级的电源管理模块。
- 源代码位置:kernel/power/
低内存管理
- 中文:低内存管理
- 英文:Low Memory Killer
- 主要内容说明:更灵活的内存管理,可根据需要杀死进程。其关键函数为lowmem_shrinker。
- 源代码位置:drivers/staging/android/lowmemorykiller.c
匿名内存共享
- 中文:匿名内存共享
- 英文:Ashmem(Anonymous Shared Memory)
- 主要内容说明:为进程提供大块内存共享,同时为内核提供回收和管理内存的机制。如果一个程序尝试访问kernel释放的一个共享内存块,它将收到错误提示,然后重新分配内存并重载。
- 源代码位置:mm/ashmem.c
Android 日志
- 中文:Android 日志
- 英文:Android Logger
- 主要内容说明:轻量级的日志设备。
- 源代码位置:drivers/staging/android/logger.c
Android 闹钟
- 中文:Android 闹钟
- 英文:Android Alarm
- 主要内容说明:提供一个定时器,用于设备从睡眠状态唤醒,同时它提供设备睡眠时运行的基准时钟。
- 源代码位置:
drivers/rtc/rtc-core
drivers/rtc/rtc-dev.c
USB Gadget驱动
- 中文:USB Gadget驱动
- 英文:USB Gadget
- 主要内容说明:一个具有标准Linux USB gadget驱动框架的设备驱动。
- 源代码位置:
drivers/usb/gadget/android.c
drivers/usb/gadget/f_adb.c
drivers/usb/gadget/f_mass_storage.c
Android Ram Console
- 中文:Android 内存控制台
- 英文:Android Ram Console
- 主要内容说明:为了提供调试功能,Android允许将调试日志信息写入一个被称为RAM Console的设备里,它是一个基于RAM的Buffer。
- 源代码位置:drviers/staging/android/ram_console.c
Android 时间设备
- 中文:Android 时间设备
- 英文:Android Timed Device
- 主要内容说明:提供了对设备进行定时控制功能,目前仅仅支持vibrator和LED设备。
- 源代码位置:
drviers/staging/adnroid/timed_output.c
drviers/staging/adnroid/timed_gpio.c
Yaffs2文件系统
- 中文:Yaffs2文件系统
- 英文:Yet Another Flash File System 2
- 主要内容说明:在Android系统中,采用Yaffs2作为MTD NAND FLASH文件系统。Yaffs2是一个快速稳定的应用于NAND和NOR FLash的跨平台的嵌入式设备文件性,同其他Flash文件系统相比,Yaffs2使用更小的内存来保存运行状态,因此它占用内存小;Yaffs2的垃圾回收非常简单而且快速,因此能够达到更好的性能;
- 源代码位置:fs/yaffs2/
版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/different-of-android-kernel-and-linux-kernel.html