prepare_namespace
2015-09-20 11:42:32 3 举报
`prepare_namespace`是一个函数或方法,通常在编程中使用,特别是在处理命名空间或包时。其主要目标是为新的代码元素(如变量、类、函数等)创建一个唯一的名称空间,以避免命名冲突。这个函数可能会检查给定的名称是否已经存在于当前的命名空间中,如果存在,它可能会添加一个后缀或修改现有的名称以确保其唯一性。此外,`prepare_namespace`也可能负责管理命名空间的生命周期,例如在不再需要时清理和释放资源。这个函数的具体行为和功能可能会根据所使用的编程语言和框架的不同而有所不同。
作者其他创作
大纲/内容
include/linux/namei.h
init/do_mounts.c mount_root()
用户可以用root=来指定根文件系统。它的值保存在saved_root_name中。如果用户指定了以mtd、ubi开始的字串做为它的根文件系统。就会直接去挂载。这个文件是mtdblock、ubiblock的设备文件。
完成实际的”挂载“动作
init/main.c kernel_init()
处理ramdisk类型的initrd,这里不深入研究
将nfs或磁盘文件系统挂载至rootfs的/root目录
init/do_mounts.c prepare_namespace()
fs/open.c SYSCALL_DEFINE1
path结构体是对vfsmount、dentry结构的”封装“
include/linux/path.h
user_path_dir竟然是宏定义,最后代码转换为user_path_at()函数,该函数位于fs/namei.c中。
这个”.“是rootfs的当前目录”/root“
sys_chroot(\".\")
ramdisk_execute_command:在kernel解析引导参数的时候使用。如果用户指定了init文件路径,即使用了“init=”,就会将这个参数值存放到这里。如果没有指定init文件路径,默认为/init。
通过宏定义进行代码变换
不是mtd或ubi开头的根文件系统,将根设备结点文件名转换为ROOT_DEV即设备节点号。如果根设备名是以”/dev/\"开头的,把“/dev/\"去掉。
0 条评论
下一页