linux 设备子系统 摘要

Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而程序员只需要去学习接口就行了。

在内核里,有各种各样的总线,如 usb_bus_type、spi_bus_type、pci_bus_type、platform_bus_type、i2c_bus_type 等,内核通过总线将设备与驱动分离。此文,基于 Linux2.6.32.2 简单分析设备驱动模型,以后看具体的总线设备模型时会更加清晰。

设备模型是层次的结构,层次的每一个节点都是通过kobject实现的。在文件上则体现在sysfs文件系统。在开发中,我们都是在kernel中已有的总线上去开放设备驱动程序,如 usb_bus_type、spi_bus_type、pci_bus_type、platform_bus_type、i2c_bus_type 等,内核中已经实现了这些中线的总线驱动,我们只需实现设备device和驱动driver。

bus 负责维护 注册进来的devcie 与 driver ,每注册进来一个device 或者 driver 都会调用 Bus->match 函数 将device 与 driver 进行配对,并将它们加入链表,如果配对成功,调用Bus->probe或者driver->probe函数, 调用 kobject_uevent 函数设置环境变量,mdev进行创建设备节点等操作 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字病理图像分析的开源软件qupath学习 ①

介绍:QuPath是一种新的生物图像分析软件,旨在满足对用户友好、可扩展、开源解决方案日益增长的需求,用于数字病理学和全玻片图像分析。除了提供全面的肿瘤识别和高通量生物标志物评估工具外,QuPath 还为研究人员提供了强大的批处理…

写递归函数的一些思考

当编写递归函数时,有几个关键的思考点可以帮助你设计和实现递归算法: 定义递归的基本情况:确定递归函数应该在何时终止,即递归的基本情况。这是一个递归的出口条件,确保递归不会无限进行下去。基本情况应该是可以直接求…

FL Studio 21.1.0.3713中文版最新安装激活图文教程及系统配置要求

FL Studio 21.1.0.3713中文版是一款功能强大的编曲软件,它也能够剪辑、混音、录音,它的矢量界面,能更好用在4K、5K甚至8K显示器上。完全重新设计混音器、动态缩放、具有 6 种布局风格、外加 3个用户自定义面板管理音轨、多推子选择和调整、混…

正大杯获奖作品在哪可以看见

通过网盘分享的文件:2023年第十三届正大杯最新国家一等奖完整获奖作品报告等全套资料 链接:https://pan.baidu.com/s/1SPA4LumSCI4BZdCRXXnW6Q?pwdc8bj 提取码:c8bj 2023年第十三届最新正大杯国家一等奖完整获奖作品等全套资料获取方式链接https://ex59573j43x.fe…

root登录提示:Access denied

一、问题: 在使用xshell工具用root账号登录服务器时提示Access denied,拒绝访问,SSH服务器拒绝了密码,但用其它用户又可以连接. 二、原因 是因为sshd的设置不允许root用户用密码远程登录的问题 三、解决办法 使用可以登录的账…

【C++11特性篇】C++11中の【override】【final】关键字——帮助用户检测是否重写

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.【override】【final】关键字——帮…

实战经验:如何利用房产小程序提升客户满意度?

在当今的数字化时代,房产中介公司需要不断地适应市场变化,提供更加便捷、高效的服务。小程序作为一种轻量级的应用程序,具有无需下载、易于分享、随时可用等优点,可以为房产中介公司提供一个新的销售渠道。本文将介绍如何使用乔拓…

代码随想录算法训练营Day4 | 24.两两交换链表中的节点、19.删除链表的倒数第 N 个节点、面试题. 链表相交、142.环形链表II

LeetCode 24 两两交换链表中的节点 本题要注意的条件: 遍历终止条件改变引用指向的时候,需要保存一些节点记录 为了更好的操作链表,我定义了一个虚拟的头节点 dummyHead 指向链表。如下图所示 既然要交换链表中的节点,那么肯定…

小姐姐跳舞,AI 视频生成太酷了

大家好,我是章北海 最近AI视频领域的研究进展神速,看得眼花缭乱。 这里老章就把最近几天看过印象深刻的四个项目介绍给大家,同时附上项目相关简介、论文、代码等资料,感兴趣的同学可以深度研究一下。 《SMPLer-X:放大表达性人体…

uniapp实现地图电子围栏功能

该功能使用uniapp中内置组件map实现 效果图预览&#xff1a; 实现过程&#xff1a; 1.文档&#xff1a; 2.代码&#xff1a; <template><view><map :style"width: 100%; height:screenHeight" :latitude"latitude" :longitude"longit…

04 开发第一个组件

概述 在Vue3中&#xff0c;一个组件就是一个.vue文件。 在本小节中&#xff0c;我们来开发第一个Vue3组件。这个组件的功能非常的简单&#xff0c;只需要在浏览器上输出一个固定的字符串”欢迎跟着Python私教一起学Vue3“即可。 实现步骤 第一步&#xff1a;新增src/compon…

SpringCloud 和 Linux 八股文第一期五问五答

SpringCloud 和 Linux 八股文第一期五问五答 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1.Linux怎么查看文件内容 在 Linux 系统中&#xff0c;有多种方式可以…

mysql8支持远程访问

上面的localhost要改为%号就打开了远程访问 ALTER USER root% IDENTIFIED WITH mysql_native_password BY fengzi2141;

【第1期】SpringSecurity基于角色和权限的细粒度接口权限控制

SpringSecurity 细粒度权限控制 一、Role 和 Authority的区别 角色用来表示某一类权限的集合&#xff0c;权限粒度更小&#xff0c;方便细粒度控制 二、创建用户、角色、权限相关表&#xff1a; CREATE TABLE common_user (id bigint(20) NOT NULL COMMENT 主键id,login_na…

ES查询流程

在ES中查询分为两类&#xff1a;1.基于文档ID查询&#xff0c;2.按照非文档ID查询。 基于文档id查询 1.基于文档ID查询 当执行如下查询时&#xff1a; GET /megacorp/employee/1ES在执行上述查询的具体过程如下&#xff1a; 1、客户端向 Node 1 发送获取请求&#xff0c;此…

【注解和反射】--05 反射的性能对比、反射操作泛型和注解

反射 05 性能对比分析 下面对比了通过普通new方式、反射方式及关闭Java语言安全检测的反射方式三种情况下&#xff0c;程序的性能(所需时间)。 package com.duo.reflection;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;//性能测试…

WPF——命令commond的实现方法

命令commond的实现方法 属性通知的方式 鼠标监听绑定事件 行为&#xff1a;可以传递界面控件的参数 第一种&#xff1a; 第二种&#xff1a; 附加属性 propa&#xff1a;附加属性快捷方式

第25节: Vue3 带组件

在UniApp中使用Vue3框架时&#xff0c;你可以使用组件来封装可复用的代码块&#xff0c;并在需要的地方进行渲染。下面是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用带组件&#xff1a; <template> <view> <button click"toggleActive&q…

解决引入外部文件(图片、js等)出现 403 net::ERR_ABORTED 的问题

页面中引入外网的连接资源&#xff0c;会产生一个新的http请求。为了安全&#xff08;URL里可能包含用户信息&#xff09;&#xff0c;浏览器通常都会给这写请求头加上表示来源的referrer 字段。 因此&#xff0c;此时咱们须要隐藏外部连接中的referrer&#xff0c;在head标签…

React的JSX

React JSX 大家好,欢迎来到 React JSX 的课程。在这一课中,我们将学习如何在 React 中使用 JSX。 什么是 JSX? JSX 是一种 JavaScript 的语法扩展,它看起来很像 XML。 const element = <h1>Hello, world!</h1>;这种看起来可能有些奇怪的标签语法既不是字符…