当前位置: 首页 > news >正文

Linux 下驱动的编写与测试

一、驱动编写

// kernel_protect.c - 最简版本 #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> static int __init protect_init(void) { printk(KERN_INFO "myapp_protect: 模块加载成功\n"); return 0; } static void __exit protect_exit(void) { printk(KERN_INFO "myapp_protect: 模块卸载\n"); } module_init(protect_init); module_exit(protect_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("System Administrator"); MODULE_DESCRIPTION("保护模块测试"); MODULE_VERSION("1.0");

二、Makefile

# Makefile for kernel module obj-m += myapp_protect.o myapp_protect-objs := kernel_protect.o KERNEL_DIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules clean: $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean install: cp myapp_protect.ko /lib/modules/$(shell uname -r)/extra/ depmod -a echo "myapp_protect" > /etc/modules-load.d/myapp-protect.conf echo "options myapp_protect protection_enabled=1 hide_module=1 log_violations=1" > /etc/modprobe.d/myapp-protect.conf modprobe myapp_protect systemctl restart systemd-modules-load uninstall: modprobe -r myapp_protect rm -f /lib/modules/$(shell uname -r)/extra/myapp_protect.ko rm -f /etc/modules-load.d/myapp-protect.conf rm -f /etc/modprobe.d/myapp-protect.conf depmod -a

三、测试:

# 生成驱动

$make

# 加载模块测试

$sudo insmod myapp_protect.ko

# 检查内核日志

$sudo dmesg | tail -n 5

# 卸载模块

$sudo rmmod myapp_protect.ko

# 再次检查日志

$sudo dmesg | tail -n 5

http://www.jsqmd.com/news/280029/

相关文章:

  • 基于springboot+vue的传统文化交流交易平台
  • 26年寒假生活指导1.21
  • 2026年浙江洁净车间装修新风系统评测:品牌与效能,无尘室/净化车间/净化工程/净化工程公司/洁净室,洁净车间施工有哪些
  • 全网最全本科生必看!8款一键生成论文工具TOP8测评
  • ThinkLink 基于 RPC 的 LoRaWAN 告警通知机制
  • 2026儿童香氛新风尚:国内娱乐空间热门款评测,蜡烛香氛/香氛设备/助眠香薰/酒店香氛,香氛ODM代工厂排行榜单
  • git的基本使用
  • props,data函数,computed执行顺序
  • 数据语义层 vs 宽表模式:哪种架构更适合 AI 时代的数据分析?
  • 2026年浦东新区灵活用工企业推荐榜
  • 物体设计提示词
  • 测试用例管理“全流程”:Jira从“Bug提交”到“任务跟踪”,团队协作效率翻倍
  • 实测对比:不同租车公司的服务响应与车辆状况评测,跨境租车/商务车租赁/会展包车/自驾租车/大巴租赁,租车公司口碑推荐
  • pkg-config 使用指南
  • 关于vue2的响应式丢失的情况
  • 爆火技术Agent Skills深度解析:让Claude Code拥有专业技能,打造更美观UI,建议收藏!
  • springboot基于Java的停车场管理系统设计实现
  • Systemd 使用指南
  • 2025年新中式女装选购避坑指南与品牌推荐,市场上新中式女装品牌排行榜色麦新中式专注产品质量
  • 文档翻译在电力建设中常见的场景应用
  • 金融产品推广,为何总在左右为难?选对媒体是关键破局点
  • 2026主管护师护理学备考攻略与资源选择
  • 实用指南:12. AOP(记录日志)
  • springboot基于Java的外卖管理系统设计开发实现
  • 2026主管护师护理学怎么备考,全流程指南稳步通关不跑偏
  • ai做PPT正确打开方式:选对工具+用对方法,3分钟搞定专业演示
  • 谷歌发布AI广告与分析顾问:是SEO革命性产品,还是未来可期?
  • 深圳昊客/百度竞价开户推广代运营服务商:推荐排名前5的公司
  • git使用--depth参数参数快速拉取分支代码后无法切换到其他分支解决办法
  • springboot基于java的网吧管理系统设计实现