• 【打卡】【Linux 设备管理机制】21天学习挑战赛—RK3399平台开发入门到精通-Day17



    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…

    1.前言

    众所周知,Linux的特色就是一切皆文件,即各种设备在Linux系统下的表现方式是以文件的方式展现,如下图:
    在这里插入图片描述

    2.Linux设备模型

    Linux的设备驱动管理即是设备(devices)、总线(bus)和驱动(driver)的联合管理。
    在这里插入图片描述
    总线(bus):负责管理挂载对应总线的设备以及驱动;
    设备(devices):挂载在某个总线的物理设备;
    驱动(driver):这里是指的设备驱动,与特定设备相关的软件,负责初始化该设备以及提供一些操作该设备的操作方式;
    类(class):对于具有相同功能(或者某一共同类型)的设备,归结到一种类别,进行分类管理;

    如下图示:
    在这里插入图片描述

    3.kobject和kset

    kobject是组成设备模型的基本结构,它使得所有的设备在底层都有统一的接口。从面向对象的角度看。kobject可认为是最底层的一个基类,后续的bus_type、devices、device_driver都是它的子类。每一个在内核中注册的kobject对象都对应于sysfs文件系统中的一个目录。如图:

    kobject和kset是构成/sys目录下的目录节点和文件节点的核心,也是层次化组织总线、设备和驱动的核心数据结构,kobject、kset数据结构都能表示一个目录或者文件节点。

    kset不仅仅自己也包含kobject结构也还能挂载多个kobject,kset是kobject的集合容器。
    在这里插入图片描述

    3.1 kset和kobject层次

    在这里插入图片描述

  • 相关阅读:
    目前的一些关于机器学习的感悟
    C语言-写一个简单的Web服务器(二)
    GESP C++ 2024年06月一级真题卷
    时序分析 建立时间和保持时间
    【Java】字符串中的数据排序
    【笔试刷题训练】day_15
    java执行shell命令,Runtime.exec()和jsch谁更有优势?
    半量化交易(二)
    yarn安装报错:No license field
    Kubernetes部署+kubesphere管理平台安装
  • 原文地址:https://blog.csdn.net/qq_23327993/article/details/126450119