首页 > 系统相关 >linux驱动总结

linux驱动总结

时间:2024-08-16 18:37:42浏览次数:8  
标签:总结 总线 dev sys linux 驱动 设备

一.前言

做linux开发也有一段时间了,对整个系统已经熟悉了很多,linux是一个非常大的系统,现在对常见的驱动做一个总结,以此来加深记忆和理解。

二.常见驱动及其子系统分类

1.Linux设备分类
linux系统抽象出的设备可以分为三类:char_dev,block_dev,net_dev。字符设备是产品开发用的最多的设备,其总类繁多,所以linux抽象出了许多子系统来适配不同设备,大大减少了代码量。

2.设备模型
设备模型通过几个数据结构来反映当前系统中总线、设备以及驱动的工作状况,提出了以下几个重要概念。

设备(device) :

挂载在某个总线的物理设备;

驱动(driver) :

与特定设备相关的软件,负责初始化该设备以及提供一些操作该设备的操作方式;

总线(bus) :

负责管理挂载对应总线的设备以及驱动;在“/sys/bus”目录下的每个子目录都是注册好了的总线类型,每个总线类型下包含两个子目录——devices和drivers文件夹;其中devices下是该总线类型下的所有设备(符号链接),它们分别指向真正的设备在"/sys/devices/"下;而drivers下是所有注册在这个总线上的驱动,每个driver子目录下 是一些可以观察和修改的driver参数。常见的总线类型参考如下:

类(class) :

对于具有相同功能的设备,归结到一种类别,进行分类管理;/sys/class目录下则是包含所有注册在kernel里面的设备类型,这是按照设备功能分类的设备模型, 我们知道每种设备都具有自己特定的功能,比如:鼠标的功能是作为人机交互的输入,按照设备功能分类无论它 挂载在哪条总线上都是归类到/sys/class/input下。

参考:https://blog.csdn.net/qq_42283749/article/details/138075759

标签:总结,总线,dev,sys,linux,驱动,设备
From: https://www.cnblogs.com/Charles-Hui/p/18363174

相关文章

  • 麒麟(linux)修改文件夹底下所有文件可执行权限
    1、命令find.-typef-execchmod+x{}\;解释:. 表示当前文件夹。-typef 表示只查找文件,不包括目录。-exec 后面跟的是对查找到的每个文件要执行的命令,这里是 chmod+x 添加执行权限。{} 是一个占位符,代表找到的文件名。\; 表示-exec参数......
  • linux创建github仓库并用git上传本地仓库到github仓库
    1.创建github仓库(1)点击右上角的头像(2)点击Yourrepositories(3)点击New(4)填写好Owner和Repositoryname点击AddaREADMEfile选择license,再点击Createrepository2.用git上传本地仓库到github仓库git工作流:(1)点击Code再点击Local查看github仓库地址(2)将git......
  • linux expect,linux ssh免密登录
    一、概述1.0ssh免密登录最佳实践二、expect工具实现免密交互Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。CentOS安装:yuminstallexpect-yCentOS离线安装方式:https://www.cnblogs.com/tozh/p/10096688.html安装结束记得看一下exp......
  • 【课程总结】day24(下):大模型部署调用(vLLM+LangChain)
    前言在上一章【课程总结】day24(上):大模型三阶段训练方法(LLaMaFactory)内容中主要了解一个大模型的训练过程,无论是第三方的大模型还是自研的大模型,都需要部署到服务端,提供对应API接口供上层应用使用。所以,本章将主要了解vLLm+langchain的基本使用方法。大模型应用框架......
  • Spring经典面试题总结
    spring是什么?轻量级的开源的J2EE框架。它是一个容器框架,用来装javabean(java对象),中间层框架(万能胶)可以起一个连接作用,比如说把Struts和hibernate粘合在一起运用,可以让我们的企业开发更快、更简洁Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架–从大小与开销......
  • 简单的linux系统学习笔记——01
    一、准备环境1.创建虚拟主机软件:vmware(是一个管理虚拟机的平台)vmware官网流程:1.点击创建新的虚拟机2.选择自定义3.兼容选最大4.选稍后安装操作系统5.选择想创建的系统6.命名,选择位置(保存位置)7.选择cpu和内存配置8.选nat模式9.选推荐10.创建新的虚拟磁盘11设置磁......
  • 简单的linux系统学习笔记——07
    一、虚拟机克隆本体删了,克隆机也会消失1.先关闭虚拟机2.右键虚拟机点管理,点击克隆3.克隆源选择“虚拟机中的当前状态”4.克隆类型选择“创建链接克隆”5.编辑虚拟机名字,设置存放路径6.点击完成7.修改主机名8.更改ip,修改网卡9.重启,保存快照二、文件文件属性:1)权限2......
  • Linux安装Nginx详细教程
    1.安装nginx依赖yum-yinstallgccgcc-c++pcrepcre-develzlibzlib-developensslopenssl-devel2.安装wgetyum-yinstallwget我这里是已经安装好的,运行代码会是下面的结果,不确定自己有没有安装,可以执行试下 3.创建nginx安装目录    /usr/local/目录下......
  • 韩顺平linux——centos安装
    centos安装选redhat红帽,centos是红帽的分支。 开发工具包含gccjdkmysql。 软件选择,默认最小安装,很多功能如gcc不带,学习过程需要一个桌面。磁盘分区boot分区1G设备类型:标准分区 文件类型ext4swap分区1G 设备类型:标准分区 文件类型swaproot分区17G 设备类......
  • JS中构造函数继承问题注意事项总结
    在JavaScript中,继承是通过原型链来实现的。当你想要创建一个子类(比如Student)继承一个父类(比如Person)时,通常会使用Object.create来创建Student的原型对象。这背后有一些重要的原因:1.共享与独立性当你执行Student.prototype=Person.prototype时,Student的原型......