proc sys文件系统对比

一、proc文件系统

proc文件系统常常被放置于Linux系统的/proc目录下,常常用于查看有关硬件、进程的状态,可以通过

操作proc文件系统进行控制工作

在include/proc_fs.h中,定义创建proc文件系统的函数

extern struct proc_dir_entry *create_proc_entry(const char *name,mode_t mode,struct proc_dir_entry *praent);

struct proc_dir_entry *proc_create_data(const char *name ,mode_t mode,const struct file_operations *proc_fops,void *data);

extern void remove_proc_entry(const char *name,structproc_dir_entry*parent)

二、sys文件系统

sys文件系统是linux内核中设计的脚心的一种基于内存的文件系统,它的作用于proc有些相似,但是除了鱼proc相同的具有查看和设定内核参数

功能之外,还有位linux同意设备模型作为管理之用

sys文件系统只有读和写两个接口,比较简单,因此不能支持复杂的操作,例如:复杂的参数传递,大规模数据块操作等

sys文件系统被挂接到linux文件系统的/sys目录中,各个项目的内容如下:

/sys/block:系统中当前所有的块设备所在

/sys/bus:这是内核设备按总线类型分层放置的内核结构,device的所有设备都连接于某种总线之下

/sys/class:这是按照设备功能分类的设备模型

/sys/devices:内核对系统中所有设备的分层次表达模型

/sys/dev:字符设备和块设备的主次号,连接到真正的设备(/sys/devices)中

/sys/fs:按照设计是用于描述系统中所有文件系统

/sys/kernel:内核所有可调整的参数的位置

/sys/module:系统中所有模块的信息

/sys/power:系统中电源管理

可以通过sys文件系统操作其中的文件实现两方面的功能:

显示信息:可以通过cat命令

控制:可以通过cat命令或者echo命令实现。使用重定向的方式输入

例如 查看系统所支持的各种休眠模式的命令:cat /sys/power/state

控制进入休眠的命令:echo standby>/sys/power/state

sys文件系统的构建主要使用include/linux/sysfs.h目录中的__ATTR和__ATTR_RO

#define __ATTR(_name,_mode,_show,_store){

        .attr ={.name= __stringify(_name),.mode =_mode},

       .show =_show,

      .store =_store,

}

#defiene __ATTR_RO(_name){

       .attr  ={.name =__stringify(_name),.mode = 0x0444},

       .show = _name##_show

}

创建sysfs中的文件 在内核中额可以使用如下函数:

int __must_check sysfs_create_file(struct kobject *kobj,const struct attribute *attr);

其中在文件被读取的时候调用show接口,在文件被写入的时候使用store,其中字符串的内容,将有实现者解析和构成

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值