android启动的一些疑问
文件是 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里面没有这些目录吗?
谢谢。
android init进程
[解决办法]
ramfs不是和tmpfs一样,是一种文件系统吗?跟目录有啥关系?
[解决办法]
你可以参考该博客,获取可以解答你的疑问:
http://goo.gl/sliY7
[解决办法]
ramdisk是第一个挂载的文件系统。在你的编译目录里面有个 rootdir目录应该就是ramdisk目录,这部分包含在boot.img里面
system是通过init。rc脚本mount上去的。
你问的问题不是初级的,是有技术含量的。