udev自动创建设备节点的机制

流程框图如下

自动创建

1 内核检测到设备插入后,会发送一个uevent事件到内核中,并提供有关硬件设备的信息。

2 udevd守护程序收到uevent事件后,创建一个设备类,(向上提交目录信息),会在内核中申请一个struct class对象,并且初始化,然后会在根目录下/dev/class下创建一个文件夹,/dev/class/类名

3.创建一个设备对象,(向上提交设备节点信息),在内核中申请一个struct device对象,并且初始化,然后会在 /dev/class/类名创建一个存放设备节点信息的文件

4.创建存放设备节点信息的文件后,系统会自动在驱动发起一个hotplug event事件,用户空间存在一个进程hotplug,hotplug会被唤醒,hotplug通知udev进程,udev会去创建的向上提交的设备节点信息目录里查询设备节点相关信息
5.udev进程在/dev下创建设备节点

实现步骤和主要函数

1.申请一个设备类并初始化,向上提交目录信息
struct class * class_create(struct module *owner,const char *name );2.向上提交节点信息
struct device *device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata, const char *fmt, ...)3.销毁目录信息
void class_destroy( struct class *cls);4.销毁设备节点信息
void device_destroy( struct class *class, dev_t devt)

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

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

相关文章

8个免费的AI和LLM游乐场

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 在本文中,我们的目标是通过引入八个用户友好的平台来弥合这一差距,这些平台使任何人都可以免费测试和比较开源AI模型。此外,它们还提供多种更新型号,确保您及时了解最新进…

数据库系统概念学习1

第一章 引言 数据库管理系统是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称为数据库 特定时刻存储在数据库中的信息的集合称为数据库的一个实例,而数据库的总体设计称为数据库模式 数据库结构的基础是数据模型,…

总结 NAT 机制的工作流程及优缺点

什么是NAT NAT定义 **NAT(Network Address Translator,网络地址转换)**是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术. 实际上是为解决IPv4地址短缺而开发的技术: NAT技术作为当前解决IP地址不够用的主要手段&a…

【杂】环形时钟配色笔记

配色网站笔记 coolorsflatuicolorscolordrophttps://www.webdesignrankings.com/resources/lolcolors/ 配色2

redis八股1

参考Redis连环60问(八股文背诵版) - 知乎 (zhihu.com) 1.是什么 本质上是一个key-val数据库,把整个数据库加载到内存中操作,定期通过异步操作把数据flush到硬盘持久化。因为纯内存操作,所以性能很出色,每秒可以超过10…

JAVAEE初阶相关内容第八弹--多线程(初阶)

本文目录 阻塞队列 阻塞队列是什么? 标准库中的阻塞队列 生产者消费者模型 阻塞队列的实现 普通队列实现: 入队列: 出队列: 完整代码: 加阻塞 加锁 加阻塞 阻塞队列 队列:先进先出,…

Python基于Flask的招聘信息爬取,招聘岗位分析、招聘可视化系统

Python基于Flask招聘信息可视化系统 一、介绍 今天为大家带来的是Python基于Flask的招聘信息爬取,招聘岗位分析、招聘可视化系统。视频演示地址:https://www.bilibili.com/video/BV1Tp4y1A7nW/ Python基于flask的招聘数据可视化,招聘岗位分…

不关闭Tamper Protection(篡改保护)下强制卸载Windows Defender和安全中心所有组件

个人博客: xzajyjs.cn 背景介绍 由于微软不再更新arm版本的win10系统,因此只能通过安装insider preview的镜像来使用。而能找到的win10 on arm最新版镜像在安装之后由于内核版本过期,无法打开Windows安全中心面板了,提示如下: 尝…

常用百宝箱——日志处理

目录 前言 一、logging库 二、logging日志等级 三、logging四大组件 四、封装示例 总结 前言 日志是记录特定时间段或事件的详细信息的文件或记录。它们通过时间戳和关键词或描述符来标识事件或行动。日志可以用于许多目的,例如:故障排除、网络安全…

小白备战大厂算法笔试(三)——栈、队列、双向队列

文章目录 栈栈常用操作栈的实现基于链表的实现基于数组的实现 两种实现对比栈典型应用 队列队列常用操作队列实现基于链表的实现基于数组的实现 队列典型应用 双向队列双向队列常用操作双向队列实现基于双向链表的实现基于数组的实现 双向队列应用 栈 栈是一种遵循先入后出的逻…

solidworks底部状态栏显示不出来

如下图所示,solidworks主界面下面的状态栏突然不见了。 怎么调出来? 第一步:点击视图菜单,用户界面,把状态栏前的勾勾上。 第二步:把视图下面的触摸模式关掉,这一点很容易被大家忽略。

天津web前端培训班 前端是否适合零基础学?

随着HTML 5和ECMAScript 6的正式发布,大量的前端业务逻辑,极大地增加了前端的代码量,前端代码的模块化、按需加载和依赖管理势在必行,因此Web前端越来越被人们重视。 Web前端的就业前景 Web前端开发工程师薪资持续走高&#xff…