linux 内核 sdram初始化,关于linux内核和SDRAM的問題

这篇博客探讨了Linux早期内核2.6.11中的procfs文件系统,如何通过全局变量在include/linux/proc_fs.h和fs/proc/root.c中定义并初始化proc目录及其子目录。随着版本演进到2.6.34,procfs模块发生了变化,全局变量的使用方式不再适用,现在可以通过全路径名直接创建目录,如proc_mkdir()函数。这表明内核代码的简化和优化。
摘要由CSDN通过智能技术生成

在早期的 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)

没有区别的。

取消

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值