首页 帮助中心 装扮商城签到加速更新通知

关于linux 内核建立proc文件夹的问题

  在早期的 2.6内核(比如2.6.11),是定义在 include/linux/proc_fs.h 中,比如extern struct proc_dir_entry proc_root;extern struct proc_dir_entry *proc_root_fs;extern struct proc_dir_entry *proc_net;extern struct proc_dir_entry *proc_net_stat;extern struct proc_dir_entry *proc_bus;extern struct proc_dir_entry *proc_root_driver;extern struct proc_dir_entry *proc_root_kcore;而这些全局变量的真正定义和初始化,则是在 fs/proc/root.c里,比如:变量声明L21 struct proc_dir_entry *proc_net, *proc_net_stat, *proc_bus, *proc_root_fs, *proc_root_driver;在 void __init proc_root_init(void) 这个函数中,内核创建了proc文件系统的根目录及net,driver等子目录,比如在这个函数中,你可以看到类似于这样的语句,就是用来创建这些目录的L55 proc_net = proc_mkdir("net", NULL);L69 proc_root_driver = proc_mkdir("driver", NULL);但是我看了一下,在最新的内核中 (比如2.6.34),proc fs这个模块改动了不少,已经无法用上面的方法来找到 proc_net 这些全局变量了,不过说实话这些变量意义并不大,毕竟在 proc_mkdir的时候,只要用全路径名就可以了,比如proc_mkdir("test", proc_net)其实和proc_mkdir("net/test", NULL)没有区别的。