andorid启动,从上电-》启动Linux-》启动andorid
1、加电后,CPU先执行bootloader程序,加载boot.img(其中包含kernel)
2、有bootloader加载kernel,kernel经自解压,初始化,载入built-in驱动程序,完成启动。
kernel启动后会创建若干内核线程(kernel thread),之后装入并执行程序/sbin/init/,载入init process,切换至user-space。
3、init进程启动(system/core/init)
android从linux系统启动有4个步骤:
1、init进程启动 :内核启动的第一个用户级进程,init 启动后就根据init.rc和init.XXX.rc脚本文件建立几个基本服务(ServiceManager,Zygote ....)
2、Native服务启动
3、System Server, Android服务启动。
4、Home启动。
下面重点说下:init进程的作用,init进程是开始的位置在(system/core/init/init.c 的main函数)
init.c用解析两个重要的文件/init.rc和/init.%hardware%.rc文件。
并执行其中的命令,最后,init进程变身守护进程。
参考资料:
http://www.cnblogs.com/linucos/archive/2012/05/22/2513046.html
创世纪:第一天连接:http://www.cnblogs.com/hangxin1940/archive/2011/10/01/2196964.html
创世纪:第一天连接: http://www.cnblogs.com/hangxin1940/archive/2011/10/14/2206754.html
创世纪:第三天连接:http://www.cnblogs.com/hangxin1940/archive/2011/10/22/2221451.html