Android内核的简单分析
2010-05-31 17:28:00 来源:WEB开发网在kernel子目录下存放的就是Android的Linux Kernel了, 通过和标准的Linux 2.6.25 Kernel的对比,我们可以发现,其主要增加了以下的内容:
1. 基于ARM架构增加Gold-Fish平台,相应增加的目录如下:
kernel/arch/arm/mach-goldfish
kernel/include/asm-arm/arch-goldfish
目前Google的基于Gold-Fish的手机为G1手机,明年G2手机将面世。
该手机采用QualComm公司的高性能处理芯片MSM7201A,该芯片以ARM 11作为Application应用处理器,以ARM926T作为BaseBand主处理器(主要承载GSM/GPRS/EDGE/3G等协议栈处理),支持JAVA硬加速(ARM本身也自带JAVA硬件处理),包含GPS Processor, 支持2D/3D图形加速(每秒可处理4百万个多边形),另外还支持最大800万像素的Sensor, 支持MPEG 4/H.263/H.264/Real Media等多种Codec。
其中ARM926T采用的主频为274M HZ, ARM11的主频为528MHZ. (MSM7200的ARM11的主频为400M HZ)
因为没有找到MSM7201A的详细DataSheet, 因此可以简单地参考MSM7200的规格:
MSM7200_DataSheet.pdf
下面为MSM7200架构图:
2. 增加了yaffs2 FLASH文件系统,相应增加的目录为:
kernel/fs/yaffs2
实际上,Android包经过编译后生成的system.img和ramdisk.img文件就是yaffs2格式的包.
3. 增加了Android的相关Driver,相应目录为:
kernel/drivers/android
主要分为:
Android IPC系统: Binder (binder.c)
Android 日志系统: Logger (logger.c)
Android 电源管理: Power (power.c)
Android 闹钟管理: Alarm (alarm.c)
Android 内存控制台: Ram_console (ram_console.c)
Android 时钟控制的gpio: Timed_gpio (timed_gpio.c)
4. 增加了switch处理, 相应的目录为:
kernel/drivers/switch/
5. 增加了一种新的共享内存处理方式, 相应增加的文件为:
kernel/mm/ashmem.c
6. 其他为Linux-2.6.25内核所做的补丁等等,例如BlueTooth, 在此不做详细分析
更多精彩
赞助商链接