/proc/ 下各进程是动态创建的,其创建过程如下 (内核版本为 2.6.30):
mount -t proc proc /proc
.get_sb = proc_get_sb,
proc_fill_super
root_inode = proc_get_inode(s, PROC_ROOT_INO, &proc_root); // 指定根结点的回调为 proc_root
proc_root
.proc_fops = &proc_root_operations,
.readdir = proc_root_readdir, // 当读 /proc目录时,该函数会被执行
proc_pid_readdir // 通过 next_tgid 来查找所有的进程,然后为每个进程创建目录
proc_pid_fill_cache