找回密码
 注册
搜索
查看: 4567|回复: 21

[讨论] Android内核的简单分析(原创)

[复制链接]
发表于 2008-12-19 16:59:17 | 显示全部楼层 |阅读模式
  Google的Android操作系统已经成功面市,因为Android操作系统是基于Linux-2.6.25内核的,并且目前所有的源代码也都全部开放,因此可以简单地加以分析以方便以后向其他平台的移植工作.

  首先需要了解的就是Android的一些基本情况,并下载Android的源代码以方便分析.

  Android的官方站点:

  http://www.android.com/

  AndroidSource的官方安装方法:

  http://source.android.com/download

  Android的中文站点:

  http://www.androidin.com/

  源代码包的相应联结地址:

  http://www.androidin.com/android-2337-1-1.html

  我们可以采用Android官方站点推荐方式来下载Android的源代码,也可以从Android中文站点直接下载源代码程序包,随后再更新和同步.

  当采用Android官方推荐方式下载或者需要更新你的源代码时,都需要git工具支持,当你的系统没有安装git或者git版本过低时,建议从下面的地址更新到最新的git包.(Android要求git版本必须大于1.5.4)

  http://git.or.cz/

  给git自动升级的方式:

  gitclonegit://git.kernel.org/pub/scm/git/git.git

  如果采用下载源代码包的方式,下载并展开后,在.repo/repo目录下有同步执行的文件repo,你可以将其拷贝到你的PATH所在路径以备使用,例如/usr/bin等等.或者也可以从Android站点得到最新的repo文件并复制到PATH所在路径.

  wgethttp://android.git.kernel.org/repo

  源代码包解开后,其主目录下存在repo_sync.sh文件,其主要是执行reposync以实现和Android站点同步代码包的目的,当执行出错后将再一次运行reposync命令直到同步正常结束,但原文件包含错误,建议改成下面的程序:(原文件中少了一个空格)

  #!/bin/bash

  echo"============startreposync================="

  reposync

  while[$?=1];do

  echo"============syncfailed,re-syncagain====="

  sleep3

  reposync

  done

  这样,运行shrepo_sync.sh就可以自动实现本地代码包的同步和更新动作了.

  我在FedoraCore6上经过同步之后,du-h./mydroid,占用空间大约是2.1G

  在kernel子目录下存放的就是Android的LinuxKernel了,通过和标准的Linux2.6.25Kernel的对比,我们可以发现,其主要增加了以下的内容:

  1.基于ARM架构增加Gold-Fish平台,相应增加的目录如下:

  kernel/arch/arm/mach-goldfish

  kernel/include/asm-arm/arch-goldfish

  Gold-Fish平台采用的是ARM926T CPU作为BaseBand处理器, 该CPU主频至少为200M HZ.

      采用MSM7201A CPU(ARM 11)作为主CPU, 其主频为528M HZ.  

  2.增加了yaffs2FLASH文件系统,相应增加的目录为:

  kernel/fs/yaffs2

  实际上,Android包经过编译后生成的system.img和ramdisk.img文件就是yaffs2格式的包.

  3.增加了Android的相关Driver,相应目录为:

  kernel/drivers/android

  主要分为:

  AndroidIPC系统:Binder

  Android日志系统:Logger

  Android电源管理:Power

  Android闹钟管理:Alarm

  Android内存控制台:Ram_console

  Android时钟控制的gpio:Timed_gpio

  4.增加了switch处理,相应的目录为:

  kernel/drivers/switch/

  5.增加了一种新的共享内存处理方式,相应增加的文件为:

  kernel/mm/ashmem.c

  6.其他为Linux-2.6.25内核所做的补丁等等,例如BlueTooth,在此不做详细分析

  另外GoldFish平台相关的驱动文件如下:

  1.字符输出设备:

  kernel/drivers/char/goldfish_tty.c

  2.图象显示设备:(FrameBuffer)

  kernel/drivers/video/goldfishfb.c

  3.键盘输入设备:

  kernel/drivers/input/keyboard/goldfish_events.c

  4.RTC设备:(RealTimeClock)

  kernel/drivers/rtc/rtc-goldfish.c

  5.USBDevice设备:

  kernel/drivers/usb/gadget/android_adb.c

  6.SD卡设备:

  kernel/drivers/mmc/host/goldfish.c

  7.FLASH设备:

  kernel/drivers/mtd/devices/goldfish_nand.c

  kernel/drivers/mtd/devices/goldfish_nand_reg.h

  8.LED设备:

  kernel/drivers/leds/ledtrig-sleep.c

  9.电源设备:

  kernel/drivers/power/goldfish_battery.c

  10.音频设备:

  kernel/arch/arm/mach-goldfish/audio.c

  11.电源管理:

  kernel/arch/arm/mach-goldfish/pm.c

  12.时钟管理:

  kernel/arch/arm/mach-goldfish/timer.c

  以上为Android内核的大致分析,希望能给有兴趣的人员以简单帮助。

  http://neilwong.cublog.cn

  
[此贴子已经被作者于2008-12-19 18:23:48编辑过]
发表于 2008-12-23 11:55:31 | 显示全部楼层
不错,源码是什么时候开始开放的?
点评回复

使用道具 举报

发表于 2009-4-20 11:20:57 | 显示全部楼层
不错,多谢楼主了
点评回复

使用道具 举报

发表于 2009-4-20 11:56:39 | 显示全部楼层
呵呵,简单了解了下,希望未来能有机会接触这个平台!
点评回复

使用道具 举报

发表于 2009-4-29 15:11:46 | 显示全部楼层

Android内核的简单分析(原创)

非常不错啊!!
点评回复

使用道具 举报

发表于 2009-7-7 16:02:24 | 显示全部楼层
真不错,多谢分享!
点评回复

使用道具 举报

发表于 2009-9-30 13:23:17 | 显示全部楼层
谢谢分享.
点评回复

使用道具 举报

发表于 2009-10-12 15:17:10 | 显示全部楼层
确实不错,
点评回复

使用道具 举报

发表于 2010-6-7 15:26:46 | 显示全部楼层
谢谢分享。学习了
点评回复

使用道具 举报

发表于 2010-6-8 13:21:00 | 显示全部楼层
好不好啊
点评回复

使用道具 举报

发表于 2010-7-20 13:18:49 | 显示全部楼层
有的链接没用啊!
点评回复

使用道具 举报

发表于 2010-9-15 13:25:41 | 显示全部楼层
bucuo
点评回复

使用道具 举报

发表于 2010-9-17 09:06:36 | 显示全部楼层
谢谢好东西一
点评回复

使用道具 举报

发表于 2010-9-25 17:10:31 | 显示全部楼层
长见识啦
点评回复

使用道具 举报

发表于 2010-10-11 13:52:30 | 显示全部楼层
谢谢分析,有空看下
点评回复

使用道具 举报

发表于 2010-11-5 16:31:30 | 显示全部楼层
谢谢,看看。
点评回复

使用道具 举报

发表于 2010-11-6 22:16:07 | 显示全部楼层
楼主强人啊
点评回复

使用道具 举报

发表于 2010-11-8 09:41:14 | 显示全部楼层
好东西,呵呵
点评回复

使用道具 举报

发表于 2010-11-10 10:03:08 | 显示全部楼层
多谢楼主分享
点评回复

使用道具 举报

发表于 2011-2-23 10:26:08 | 显示全部楼层
好东西,谢谢分享[em02]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-23 14:06 , Processed in 0.202757 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表