多线程使用时候的锁

信号量structsemaphoresem;读写信号量structrw_semaphorerwsem;一个线程告诉另一个线程,某个工作已经完成structcomletionmycomletion;自旋锁spinlock_tmylock;读写自旋锁rwlock_tmy_rwlock;原子变量(自带锁)
驱动设计 c/c++ 2020年02月24日 309次浏览

字符设备常用申请方法

申请staticint__initglobalmem_init(void){intret;dev_tdevno=MKDEV(globalmem_major,0);//分配cdev结构体,如果major是0,自动分配一个majorif(globalmem_major)//手动分配ret=registe
驱动设计 c/c++ LKM 2020年02月24日 272次浏览

LKM模块参数的传递

模块参数的传递module_param(book_num,int,S_IRUGO);第一个参数是参数的name,自己定义第二个参数是变量的类型,比如int,long,char,float等第三个参数是权限,类似于文件的权限S_IRUGO=(S_IRUSR|S_IRGRP|S_IROTH)S_IRUS
工具 驱动设计 2020年02月21日 316次浏览

LKM的Makefile编写,适用于ubuntu

KVERS=$(shelluname-r)#Kernelmodulesobj-m+=hello.o#Specifyflagsforthemodulecompilation.#EXTRA_CFLAGS=-g-O0build:kernel_moduleskernel_modules:make-C/lib
工具 驱动设计 2020年02月21日 291次浏览

Openwrt 系统结构

Openwrt系统宏观结构openwrt目录结构系统自带目录config:存着系统的配置文件.in--->.config--->编译脚本解析CONFIG_HAVE_DOT_CONFIG=y作用:控制整个编译过程,是整个系统的配置文件,默认配置的控制脚本,如果需要增加新的编译选项,需要按照
工具 驱动设计 2020年02月21日 337次浏览

构建可编译的Openwrt系统

交叉编译环境的搭建构建Openwrt系统Ubuntu16.04安装依赖库apt-getinstallg++apt-getinstalllibncurses5-devapt-getinstallzlib1g-devapt-getinstallbisonapt-getinstallflexapt-get
工具 驱动设计 2020年02月21日 322次浏览

如何实现文件隐藏

方法:劫持系统中用于读取文件列表的系统调用劫持文件系统中的库函数,实现对于文件的隐藏一、如何通过劫持库函数实现:通过preload预加载库机制进行编写注入劫持函数,并编译成动态链接库gcc-fPIC-sharedparock.c-olibmycmp.so加载预加载库exportLD_PRELOAD=
驱动设计 2020年02月21日 308次浏览

Linux驱动设计之系统调用

Linux驱动设计之系统调用Linux系统调用结构特点一:系统调用就像快递员,只传送命令,不实现相关命令特点二:会调用VFS进行分类字符设备驱动内核的对象为structcdev每个字符设备驱动都有主设备号从设备号主设备号:类型---从内核中找到对应cdev对象链表从设备号:该类型下具体哪个设备
驱动设计 2020年02月21日 313次浏览