prepare_namespace
2015-09-20 14:48:05 6 举报
`prepare_namespace` 是一个用于准备命名空间的函数。命名空间是一种将一组相关的变量、函数或类组织在一起的方法,以避免名称冲突。在 Python 中,可以使用 `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 条评论
下一页