android kernel 与文件系统

http://blog.csdn.net/zvivi521/article/details/9044171

android 系统上kernel与文件系统是打包到一块的。

一般烧录文件的时候有kernel,system,userdata分区。

 我们在编译之后,在out目录下生成了

 

如上图所示目录文件

其中system分区如下所示:

root分区如下所示:

我们查看mk-ics.sh 在kernel编译的时候有这么一句

make -j $JOBS uImage CONFIG_INITRAMFS_SOURCE="../out/target/product/godbox/root"

后面就是拷贝了,config_initramfs_source 这是指明了ramfs文件系统的路径

这个路径就是我们刚才看到的root目录,这个目录下是一个完整的文件系统。

 

之前一直理解成烧录的system是文件系统,其实不是,system只是文件系统 根目录下的system分区。

 

与之前的linux平台不同,linux平台的文件系统与kernel是分离开的,文件系统很大,android上的文件系统很小,与kernel打包到一块也不过是几M

但是linux上面的文件系统有40多M。

 

我修改了源码目录下/system/core/init/init.c文件,查看此目录下的makefile 有这么一句

include $(BUILD_EXECUTABLE)

这也就是说 编译成一个可执行文件

LOCAL_MODULE:= init

编译完成的名称是init,在编译过程中,可以看到生成init文件是生成在刚才的root目录下的

因为编译kernel的过程中,将该root目录一块打包到kernel文件里面了,所以直接使用adb push 命令替换/init文件是不可以的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值