刚刚接触 Android 时候, 老是想不明白Android rootfs放在什么地方.
根据以往的经验, 一个完整的系统应该包括 bootloader, kernel, filesystem, application这些文件. 但接触 Android 的时候, 只发现有以下几个文件, bootloader, kernel, system, userdata. 经过分析, system 只包含了 Android 的一些 library, apk, toolbox等文件, 这个应该不是文件系统才对啊.
如果有文件系统那它是什么格式的呢? yaffs2 ? 还是其他. 而 system.img, userdata.img 是 ubifs 的格式.
后来经过分析, 原来这个内核是使用了 initramfs 作为根文件系统的, kernel 就内含了 filesystem.可以在 make menuconfig->general setup->Initial RAM filesystem and RAM disk 中设定 filesystem 所在的路径. 这样生成的 kernel 就包含了 filesystem.
之后在网上找了一些资料了解 initramfs 的知识. 在 initramfs 启动之后首先会运行 init 这个文件.
可以建一个 init 的脚本启动需相关的 service.
如果不想启用 initramfs, 用 yaffs2 或 jffs 也是可以了.
阅读(1860) | 评论(1) | 转发(0) |