100分求教:请教proc/net下面的文件的生成和填写方法

denverbenjamin2000 2004-09-08 01:11:57


小弟最近在把linux下的nettool,如netstat等,向freebsd移植,需要使用linprocfs来在net目录下添加一些新的文件,如tcp,udp, netstatd,但是刚刚涉及这个领域,非常希望看到linux下的proc/net/中tcp,udp这些文件的填写过程,但我找不到具体的函数,据说他们是分散在各个驱动中的,众说不一。希望各位指教,再拜!!

proc目录下的文件有的是系统启动的时候建立的,有的是在用户访问这个目录时才创建的,但我不知道net目录下的那些文件到底是由哪段代码创建的,希望达人指教!!


我发现,大多数在后缀为init的函数中

如 ip_init
void __init ip_init(void)
{
dev_add_pack(&ip_packet_type);

ip_rt_init();
inet_initpeers();

#if defined(CONFIG_IP_MULTICAST) && defined(CONFIG_PROC_FS)
igmp_mc_proc_init(); //看到没有??
#endif
}


在ip_rt_init();中又有如下的代码

#ifdef CONFIG_PROC_FS
if (!proc_net_fops_create("rt_cache", S_IRUGO, &rt_cache_seq_fops) ||
!proc_net_fops_create("rt_cache_stat", S_IRUGO, &rt_cpu_seq_fops)) {
free_percpu(rt_cache_stat);
return -ENOMEM;
}

#ifdef CONFIG_NET_CLS_ROUTE
create_proc_read_entry("rt_acct", 0, proc_net, ip_rt_acct_read, NULL);
#endif





但是如果我使用Linprocfs.c向freebsd移植linux的proc/net,也要这样来做么,还是直接在×init中填入代码?

PS:我也是刚刚接触freebsd,他也有Proc fs文件系统,但是与linux的不兼容,为了可以在freebsd下使用linux下用的一些软件,必须模拟linux下的proc,所以有人为freebsd添加了compat/linux/linprocfs.c来专门管理这项工作,我想对Linprocfs.c进一步完善,以让他支持linux下的net_tool,such as netstat and route.thus need to add tcp ,udp ,netstat under the compat/linux/proc/net dictionary in Freebsd

...全文
197 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
denverbenjamin2000 2004-09-09
  • 打赏
  • 举报
回复
请问freebsd下的compat文件夹是如何解决兼容性问题的?
denverbenjamin2000 2004-09-09
  • 打赏
  • 举报
回复
当然有必要了,一个是兼容性的问题,另外大家有空可以试试,freebsd的netstat 看不了tcp,udp流量,还是linux下软件多啊,而其中许多都依赖proc文件系统,我懂得也不是很多,不过谢谢大家关注!我发现/proc/net下的文件基本是在Af_inet.c下由proc_net_create生成的。我现在已经在读相关的代码了,现在的难点就在于读懂这边的,然后在freebsd下给出对应的实现。继续关注。。。。。,谢谢
yuanlei1978113 2004-09-09
  • 打赏
  • 举报
回复
可以看看内核源代码.
XChilde 2004-09-09
  • 打赏
  • 举报
回复
不过移植这些东西有什么意义吗?
BSD的对应工具不行吗?
denverbenjamin2000 2004-09-09
  • 打赏
  • 举报
回复
找到了,搜索proc_dir_create
101monster 2004-09-09
  • 打赏
  • 举报
回复
呵呵,UP!

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧