设备驱动开发_1
可加载模块如何工作的
主要内容
- 描述可加载模块优势
- 使用模块命令效率
- 使用和定义模块
- 密钥和模块工作
1 描述可加载模块优势
开发周期优势: 静态模块在/boot下的vmlinuz中,需要配置、编译、重启。 开发周期长。 LKM 不需要重启。 开发周期优于静态模块。
2 使用模块命令效率
模块命令 : lsmod insmod depmod modprobe rmmod modinfo
模块位置: /lib/modules/$(uname -r)/kernel/fs
root@ubuntu:~# ls /lib/modules/$(uname -r)/kernel/fs
9p btrfs exfat hpfs nfs_common overlayfs sysv
adfs cachefiles f2fs isofs nfsd pstore ubifs
affs ceph fat jffs2 nilfs2 qnx4 udf
afs cifs freevxfs jfs nls qnx6 ufs
aufs coda fscache ksmbd ntfs quota vboxsf
autofs cramfs fuse lockd ntfs3 reiserfs xfs
befs dlm gfs2 minix ocfs2 romfs zonefs
bfs efs hfs netfs omfs shiftfs.ko
binfmt_misc.ko erofs hfsplus nfs orangefs smbfs_common
rmmod 产品代码中禁用该命令 -> 残留一些指针信息在其他模块中
rmmod -f 强制删除模块
lsmod -> 显示加载的模块
tan@ubuntu:~/samba_workspaces/linux-5.8.6/drivers/net/ethernet/intel/e1000e$ lsmod |grep btrfs
btrfs 1540096 0
zstd_compress 225280 1 btrfs
xor 24576 2 async_xor,btrfs
raid6_pq 122880 4 async_pq,btrfs,raid456,async_raid6_recov
libcrc32c 16384 3 btrfs,xfs,raid456root@ubuntu:~# lsmod | head
Module Size Used by
cpuid 16384 0
btrfs 1540096 0
blake2b_generic 20480 0
zstd_compress 225280 1 btrfs
ufs 106496 0
qnx4 16384 0
hfsplus 118784 0
hfs 65536 0
minix 49152 0root@ubuntu:~# lsmod | tail
ahci 45056 0
e1000 155648 0
libahci 45056 1 ahci
hid 147456 2 usbhid,hid_generic
i2c_piix4 28672 0
mptspi 24576 2
mptscsih 45056 1 mptspi
mptbase 106496 2 mptspi,mptscsih
pata_acpi 16384 0
scsi_transport_spi 32768 1 mptspi
所有加载到内核的模块列表
/proc/modules /sys/modules/* ->
root@ubuntu:~# cat /proc/modules | head
cpuid 16384 0 - Live 0xffffffffc108e000
btrfs 1540096 0 - Live 0xffffffffc0ef6000
blake2b_generic 20480 0 - Live 0xffffffffc0c61000
zstd_compress 225280 1 btrfs, Live 0xffffffffc0cb1000
ufs 106496 0 - Live 0xffffffffc0c96000
qnx4 16384 0 - Live 0xffffffffc0b6b000
hfsplus 118784 0 - Live 0xffffffffc0c78000
hfs 65536 0 - Live 0xffffffffc0c50000
minix 49152 0 - Live 0xffffffffc0bed000
ntfs 122880 0 - Liv相关文章:
设备驱动开发_1
可加载模块如何工作的 主要内容 描述可加载模块优势使用模块命令效率使用和定义模块密钥和模块工作1 描述可加载模块优势 开发周期优势: 静态模块在/boot下的vmlinuz中,需要配置、编译、重启。 开发周期长。 LKM 不需要重启。 开发周期优于静态模块。 2 使用模块命令效率…...
C语言位域(Bit Fields)知识点精要解析
在C语言中,位域(Bit Field)是一种独特的数据结构特性,它允许程序员在结构体(struct)中定义成员变量,并精确指定其占用的位数。通过使用位域,我们可以更高效地利用存储空间࿰…...
离散数学——图论(笔记及思维导图)
离散数学——图论(笔记及思维导图) 目录 大纲 内容 参考 大纲 内容 参考 笔记来自【电子科大】离散数学 王丽杰...
opencv图像像素的读写操作
void QuickDemo::pixel_visit_demo(Mat & image) {int w image.cols;//宽度int h image.rows;//高度int dims image.channels();//通道数 图像为灰度dims等于一 图像为彩色时dims等于三 for (int row 0; row < h; row) {for (int col 0; col < w; col) {if…...
Java学习第十四节之冒泡排序
冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置 //2.每一次比较,都会产生出一个最大,或者最小的数字 //3.下一轮则可以少…...
第1章 计算机网络体系结构-1.1计算机网络概述
1.1.1计算机网络概念 计算机网络是将一个分散的,具有独立功能的计算机系统通过通信设备与路线连接起来,由功能完善的软件实现资源共享和信息传递的系统。(计算机网络就是一些互连的,自治的计算机系统的集合) 1.1.2计算机网络的组成 从不同角…...
蓝桥杯:C++排序
排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的,而是对数值按位划分,按照以空间换取时间的思路来排序。看起来它们的复杂度更好,但实际…...
数据结构-堆
1.容器 容器用于容纳元素集合,并对元素集合进行管理和维护. 传统意义上的管理和维护就是:增,删,改,查. 我们分析每种类型容器时,主要分析其增,删,改ÿ…...
奔跑吧小恐龙(Java)
前言 Google浏览器内含了一个小彩蛋当没有网络连接时,浏览器会弹出一个小恐龙,当我们点击它时游戏就会开始进行,大家也可以玩一下试试,网址:恐龙快跑 - 霸王龙游戏. (ur1.fun) 今天我们也可以用Java来简单的实现一下这…...
Ubuntu 1804 And Above Coredump Settings
查看 coredump 是否开启 # 查询, 0 未开启, unlimited 开启 xiaoUbuntu:/var/core$ ulimit -c 0# 开启 xiaoUbuntu:/var/core$ ulimit -c unlimited查看 coredump 保存路径 默认情况下,Ubuntu 使用 apport 服务处理 coredump 文件ÿ…...
docker 2:安装
docker 2:安装 ubuntu 安装 docker sudo apt install docker.io 把当前用户放进 docker 用户组,避免每次运行 docker 命都要使用 sudo 或者 root 权限。 sudo usermod -aG docker $USERid $USER 看到用户已加入 docker 组 …...
LeetCode Python - 19.删除链表的倒数第N个结点
目录 题目答案运行结果 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 输出&a…...
Spring Boot 笔记 005 环境搭建
1.1 创建数据库和表(略) 2.1 创建Maven工程 2.2 补齐resource文件夹和application.yml文件 2.3 porn.xml中引入web,mybatis,mysql等依赖 2.3.1 引入springboot parent 2.3.2 删除junit 依赖--不能删,删了会报错 2.3.3 引入spring web依赖…...
【解决(几乎)任何机器学习问题】:超参数优化篇(超详细)
这篇文章相当长,您可以添加至收藏夹,以便在后续有空时候悠闲地阅读。 有了优秀的模型,就有了优化超参数以获得最佳得分模型的难题。那么,什么是超参数优化呢?假设您的机器学习项⽬有⼀个简单的流程。有⼀个数据集&…...
面试计算机网络框架八股文十问十答第七期
面试计算机网络框架八股文十问十答第七期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)UDP协议为什么不可…...
Codeforces Round 926 (Div. 2)
A. Sasha and the Beautiful Array(模拟) 思路 最大值减去最小值 #include<iostream> #include<algorithm> using namespace std; const int N 110; int a[N];int main(){int t, n;cin>>t;while(t--){cin>>n;for(int i 0; i…...
构建智慧交通平台:架构设计与实现
随着城市交通的不断发展和智能化技术的迅速进步,智慧交通平台作为提升城市交通管理效率和水平的重要手段备受关注。本文将探讨如何设计和实现智慧交通平台的系统架构,以应对日益增长的城市交通需求,并提高交通管理的智能化水平。 ### 1. 智慧…...
移动端设置position: fixed;固定定位,底部出现一条缝隙,不知原因,欢迎探讨!!!
1、问题 在父盒子中有一个子盒子,父盒子加了固定定位,需要子盒子上下都有要边距,用margin或者padding挤开时,会出现缝隙是子盒子背景颜色的。 测试过了,有些手机型号有,有些没有,微信小程序同移…...
有关网络安全的课程学习网页
1.思科网络学院 免费学习skillsforall的课程 课程链接:Introduction to Cybersecurity by Cisco: Free Online Course (skillsforall.com) 2.斯坦福大学计算机和网络安全基础 该证书对于初学者来说最有价值,它由最著名的大学之一斯坦福大学提供。您可…...
计算机网络-面试题
一、基础 1、网络编程 网络编程的本质是多台计算机之间的数据交换存在问题 如何准确的定位网络上一台或多台主机如何进行可靠传输2、网络协议 在计算机网络有序的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络…...
CHI协议WriteZero事务的DBIDResp与Comp响应机制解析
1. CHI协议中WriteZero事务的响应机制解析在AMBA 5 CHI协议中,WriteZero类事务(包括WriteUniqueZero和WriteNoSnpZero)的响应流程存在一个看似冗余的设计特点:它们会同时接收DBIDResp和Comp两种响应。这种现象常常让硬件设计工程师…...
金融涉外业务赋能,守护跨境金融安全
随着跨境金融业务的快速发展,银行、保险等金融机构的涉外业务日益增多,外籍客户开户、跨境转账、保险投保等业务,都需要进行严格的证件核验与身份确认。传统的人工核验模式,不仅效率低下,还难以应对复杂的证件伪造手段…...
告别环境焦虑:用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本
告别环境焦虑:用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本 深度学习框架的版本冲突问题,一直是开发者心中的痛。你是否经历过这样的场景:昨天还能正常运行的 TensorFlow 项目,今天更新了 CUDA 驱动后就…...
从‘密码长度’到‘任意代码执行’:手把手复现攻防世界int_overflow靶场(附Python3 EXP)
从密码长度到系统控制:整数溢出漏洞实战攻防全解析 在网络安全领域,整数溢出漏洞往往因其隐蔽性而被开发者忽视,却可能成为攻击者打开系统大门的金钥匙。本文将带您深入一个典型场景:如何通过精心构造的密码输入,从简单…...
多智能体时代,Workflow 为什么开始失效?
子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...
168MHz Cortex-M4+FPU+1MB Flash:STM32F405RGT6的高性能工业MCU参数解析
STM32F405RGT6:168MHz Cortex-M4工业MCU的高性能标杆在工业控制、电机驱动和物联网网关等嵌入式应用中,微控制器需要在处理性能、存储容量和外设集成度之间取得平衡。STM32F405RGT6是意法半导体STM32F4系列中的经典型号,基于ARM Cortex-M4内核…...
STC8H8K64U USB下载避坑指南:实测与手册不一样的P3.2引脚操作细节
STC8H8K64U USB下载实战:破解P3.2引脚的操作玄机 第一次接触STC8H8K64U的USB下载功能时,本以为按照官方手册按部就班就能轻松搞定,没想到实际操作中P3.2引脚的行为完全出乎意料。这个看似简单的接地操作背后,隐藏着芯片内部状态机…...
硬件工程师避坑指南:从原理到实战,搞定ESD防护设计与IEC 61000-4-2测试
硬件工程师避坑指南:从原理到实战,搞定ESD防护设计与IEC 61000-4-2测试 在北方干燥的冬季,脱下毛衣时噼啪作响的静电火花或许只是生活中的小插曲,但对于价值数百万的医疗设备或自动驾驶系统而言,同样的静电放电&#x…...
Seraphine英雄联盟战绩查询工具终极指南:智能排位助手完全教程
Seraphine英雄联盟战绩查询工具终极指南:智能排位助手完全教程 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 你是否在英雄联盟排位赛中经常因为BP阶段手忙脚乱而错失先机?是否希望快…...
MATLAB Robotics Toolbox:从基础旋转变换到机器人运动学建模
1. 初识MATLAB Robotics Toolbox 第一次接触MATLAB Robotics Toolbox时,我完全被它强大的功能震撼到了。这个工具箱就像是为机器人工程师量身定制的瑞士军刀,从最基本的旋转变换到复杂的运动学建模,应有尽有。记得当时我正在做一个机械臂控制…...
