• sysfs


    太难了吧,看着看着就晕了,还是一个一个地仔细研究一下再写大作业吧

    0x01 定义(参考书本)

    表示系统中设备树的一个文件系统

    0x02 前置知识(kobject,kset)

    kobject

    内核中有一个统一设备模型,提供了一个独立的机制专门来表示设备,并描述其在系统中的拓扑结构。设备模型的核心部分就是kobject,类似于java中的对象类,提供了诸如引用计数、名称和父指针等字段可以创建对象的层次结构

    kobject通常是嵌入其他结构的,单独意义其实不大,例如cdev结构体中用到的kobject

    这样子理解的话就是一个通用的对象结构体,我们在创建我们需要的对象的结构体时候,其结构体中会嵌入该kpbject结构体,从而可以拥有引用计数等那些功能

    ktype

    描述kobject所具有的普遍特性,对应的结构体为kobj_type结构体

     sysfs_ops变量指向sysfs_ops结构体,该结构体描述了sysfs文件读写时的特性;default_attrs指向一个attribute结构体数组,该结构体定义了该kobject相关默认属性

    kset

    kset是kobject对象的集合体。把它看成是一个容器,将所有相关的kobject对象置于同一位置

    0x03 sysfs具体解释

    是一个虚拟文件系统,为我们提供了kobject对象层次结构视图,将kobject对象和目录项紧密联系起来(kobject对象中的dentry(目录项结构体)实现的),将kobject映射到某目录上

    个人理解,sysfs实际上就是目录结构图???每个目录又对应的是一个kobject,sysfs仅仅是一颗树,不提供任何实际数据的文件。

    所有具有相同类型的kobject在它们对应的sysfs目录下拥有相同的默认文件集合,属性文件

     

     当从用户空间读取sysfs的项时调用show()方法,拷贝由sttr提供的属性值到buffer指定的缓冲区中,缓冲区大小为PAGE_SIZE字节;store()方法在写操作时调用,它会从buffer中读取size大小字节,将其放入attr表示的属性结构体变量中。

     

  • 相关阅读:
    模拟赛T5 : domino ——深搜+剪枝+位运算优化
    校内模拟赛T5:连续的“包含”子串长度( nekameleoni?) —— 线段树单点修改,区间查询 + 尺取法合并
    C++[Tarjan求点双连通分量,割点][HNOI2012]矿场搭建
    C++二分图匹配基础:zoj1002 FireNet 火力网
    迭代加深搜索 C++解题报告 :[SCOI2005]骑士精神
    Linux 常用命令
    Microservices and exception handling in Java with Feign and reflection
    微服务摘要
    Javac编译与JIT编译
    GC调优思路
  • 原文地址:https://www.cnblogs.com/dx-yll/p/12993914.html
Copyright © 2020-2023  润新知