proc_mnt = kern_mount_data(&proc_fs_type, &init_pid_ns);//挂载文件系统 err = PTR_ERR(proc_mnt); if (IS_ERR(proc_mnt)) { unregister_filesystem(&proc_fs_type); return; } proc_misc_init();//创建proc主目录中的各种文件项 proc_net_init(); #ifdef CONFIG_SYSVIPC proc_mkdir("sysv...
首先我们需要弄清楚proc机制,来看看fs/proc/proc_misc.c这个文件,从入口函数开始看: proc_misc_init(void) #ifdef CONFIG_PRINTK { struct proc_dir_entry *entry; entry = create_proc_entry("kmsg", S_IRUSR, &proc_root);//这里创建了一个proc入口kmsg if (entry) entry->proc_fops = &proc_kmsg_o...
实例代码: #include<linux/module.h>#include<linux/kernel.h>#include<linux/init.h>#include<linux/proc_fs.h>#include<linux/jiffies.h>#include<asm/uaccess.h>#define MODULE_VERS "1.0"#define MODULE_NAME "procfs_example"#define FOOBAR_LEN 8structfb_data_t{charname[FOOBAR_LEN+1];charvalue[FO...
void__initproc_misc_init(void){ ...structproc_dir_entry *entry;//这里创建了一个proc入口kmsg entry = create_proc_entry("kmsg", S_IRUSR, &proc_root); if (entry) /*构造一个proc_fops结构*/ entry->proc_fops = &proc_kmsg_operations;... } AI代码助手复制代码 在Kmsg.c (fs\proc) 文件...
misc:杂项 。modules:已经加载的模块列表,对应lsmod命令 。mounts:已加载的文件系统的列表,对应mount命令,无参数。partitions:系统识别的分区表 。slabinfo:sla池信息。stat:全面统计状态表,CPU内存的利用率等都是从这里提取数据。对应ps命令。swaps:对换空间的利用情况。version:指明了当前正在运行的内核版本。
void __init proc_misc_init(void){ ... struct proc_dir_entry *entry; //这里创建了一个proc入口kmsg entry = create_proc_entry("kmsg", S_IRUSR, &proc_root); if (entry) /*构造一个proc_fops结构*/ entry->proc_fops = &proc_kmsg_...
misc:杂项 。 modules:已经加载的模块列表,对应lsmod命令 。 mounts:已加载的文件系统的列表,对应mount命令,无参数。 partitions:系统识别的分区表 。 slabinfo:sla池信息。 stat:全面统计状态表,CPU内存的利用率等都是从这里提取数据。对应ps命令。 swaps:对换空间的利用情况。
(1)首先是直接在/proc下面的叶子节点,即文件节点,这是由proc_misc_init()创建的。 函数proc_misc_init()调用函数create_proc_read_entry()进行分配结构,而create_proc_read_entry()则调用函数create_proc_entry(),下面对函数create_proc_entry()进行解析: ...
在Proc_misc.c (fs\proc) 文件中: 复制 void __init proc_misc_init(void){...struct proc_dir_entry *entry;//这里创建了一个proc入口kmsgentry = create_proc_entry("kmsg", S_IRUSR, &proc_root);if (entry) /*构造一个proc_fops结构*/entry->proc_fops = &proc_kmsg_operations; ... } 1...
void __init proc_misc_init(void){ ... struct proc_dir_entry *entry; //这里创建了一个proc入口kmsg entry = create_proc_entry("kmsg", S_IRUSR, &proc_root); if (entry) /*构造一个proc_fops结构*/ entry->proc_fops = &proc_kmsg_...