• 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表示的属性结构体变量中。

     

  • 相关阅读:
    快速幂
    某年元宵节大礼包 矩阵快速幂
    HDU 3303 Harmony Forever 前缀和+树状数组||线段树
    HDU 4325 Flowers 树状数组+离散化
    11、【设计模式】构建器模式
    【基础】数据类型
    【Mybatis】Mybatis缓存
    【FTP】FTP(文件传输协议)工作原理(SFTP)
    Docker是什么
    【RabbitMQ】使用RabbitMQ实现延迟任务
  • 原文地址:https://www.cnblogs.com/dx-yll/p/12993914.html
Copyright © 2020-2023  润新知