android启动的一些疑问

小陆zi 2013-06-12 02:52:53
文件是 android源码下:路径system\core\init\init.c
int main(int argc, char **argv)
{
int fd_count = 0;
struct pollfd ufds[4];
char *tmpdev;
char* debuggable;
char tmp[32];
int property_set_fd_init = 0;
int signal_fd_init = 0;
int keychord_fd_init = 0;

if (!strcmp(basename(argv[0]), "ueventd"))
return ueventd_main(argc, argv);

/* clear the umask */
umask(0);

/* Get the basic filesystem setup we need put
* together in the initramdisk on / and then we'll
* let the rc file figure out the rest.
*/
mkdir("/dev", 0755);
mkdir("/proc", 0755);
mkdir("/sys", 0755);

mount("tmpfs", "/dev", "tmpfs", 0, "mode=0755");
mkdir("/dev/pts", 0755);
mkdir("/dev/socket", 0755);
mount("devpts", "/dev/pts", "devpts", 0, NULL);
mount("proc", "/proc", "proc", 0, NULL);
mount("sysfs", "/sys", "sysfs", 0, NULL);

这个就是ramdisk中的init进程。为什么在main开始后还要建立如 /dev /proc /sys
这些文件?
是不是应为ramfs里面没有这些目录吗?

谢谢。
...全文
918 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小陆zi 2013-06-20
  • 打赏
  • 举报
回复
最近加班鸟事一大堆。谢谢了。先给分吧。
DDR2013 2013-06-15
  • 打赏
  • 举报
回复
ramdisk是第一个挂载的文件系统。在你的编译目录里面有个 rootdir目录应该就是ramdisk目录,这部分包含在boot.img里面 system是通过init。rc脚本mount上去的。 你问的问题不是初级的,是有技术含量的。
雨焰 2013-06-13
  • 打赏
  • 举报
回复
你可以参考该博客,获取可以解答你的疑问: http://goo.gl/sliY7
凉凉二点凉 2013-06-13
  • 打赏
  • 举报
回复
ramfs不是和tmpfs一样,是一种文件系统吗?跟目录有啥关系?
小陆zi 2013-06-13
  • 打赏
  • 举报
回复
是这样: 开启启动 然后挂某一个设备为根文件系统。这个文件系统(ramdisk)中执行目录下的init进程。这个init进程就是system\core\init\init.c中main函数的二进制文件?不知道这样理解对吗。 prepare_namespace()之后执行: run_init_process("/sbin/init"); run_init_process("/etc/init"); run_init_process("/bin/init"); run_init_process("/bin/sh"); 在这个init的进程中同样又去建立 sys dev proc 等目录。如果这个ramdisk中有了 dev sys proc等目录,是不是在这个init中就没有必要再去做一遍同样的事情。 同样引申出 我的问题: 1,通常boot传递参数的时候会制定文件系统 比如 root = mtdxx等。这时候系统启动的时候是先挂载ramdisk为根文件系统,还是直接挂在uboot参数传递过来的设备为根文件系统? 2,查看板子起来以后的文件以及文件目录 发现一个system的目录。这个是后续挂在上去的? 刚接触android不久,问题可能有点初级。 谢谢

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧