读书笔记之《Linux设备驱动开发详解4.0》
主要记录linux内核驱动硬件逻辑,驱动逻辑等内容
楼兰公子
这个作者很懒,什么都没留下…
展开
-
Linux内核安全漏洞
在内核空间与用户空间的界面处, 内核检查用户空间缓冲区的合法性显得尤其必要, Linux内核的许多安全漏洞都是因为遗忘了这一检查造成的, 非法侵入者可以伪造一片内核空间的缓冲区地址传入系统调用的接口, 让内核对这个evil指针指向的内核空间填充数据。 有兴趣的读者可以从http://www.cvedetails.com/网站查阅Linux CVE(Common Vulnerabilities and Exposures) 列表...原创 2020-08-31 17:00:01 · 166 阅读 · 0 评论 -
目录
第一章 -开端第二章 各类设备硬件通信逻辑第三章-Linux内核及内核编程第四章-linux内核模块第五章-Linux文件系统与设备文件第六章-字符设备驱动第七章-Linux设备驱动中的并发控制第八章-linux设备驱动中的阻塞与非阻塞第九章-linux设备驱动中的异步通知与异步IO第十章-中断与时钟第十一章-内存与IO访问第十二章-linux设备驱动的软件架构思想第十三章-linux块设备驱动第十四章-linux网路设备驱动第十五章-linux I2C核心、总线与原创 2020-08-31 15:36:34 · 142 阅读 · 0 评论 -
第二章-各类设备硬件通信逻辑
Linux 块设备访问方法 1.类似dd命令对应的原始块设备,如/dev/sdb1 2.在块设备上建立fat,ext4,brtfs等文件系统然后以文件路径方式访问Linux 针对NOR,Nand提供独立内存技术设备(MTD)子系统,其上运行yaffs2,jffs2,ubifs等具备擦除和负载均衡的文件系统。针对磁盘或者Flash设备的fat,ext4,yaffs2,ubifs等文件系统定义文件和目录在存储介质的组织。以上内容linux虚拟文件系统统一进行抽象*************...原创 2020-08-20 14:44:33 · 656 阅读 · 0 评论 -
第三章--Linux内核及内核编程
第三章--Linux内核及内核编程 3.1 内核演变 --Unix、minix、GNU计划、POSIX标准、互联网 --具体版本变更参考网页https://kernelnewbies.org/Linux_5.8 --内核开发无计划,根据个人和企业的需要不断演变 https://www.linux.com/news/linux-weather-forecast/ https://kernelnewbies....原创 2020-08-27 16:12:38 · 319 阅读 · 0 评论 -
第四章 Linux内核模块
4.1 概念与结构 --模块本身不被编入内核镜像,控制内核大小 --模块一旦加载,就会成为内核一部分 --modprobe比insmod强大,会同时加载模块依赖 --模块间依赖关系在/lib/modules/<kernel-version>/modules.dep,由depmod工具生成 ******************依赖生成文件关系图******************** ...原创 2020-08-27 19:26:58 · 165 阅读 · 0 评论 -
第五章 Linux文件系统与设备文件
第五章 Linux文件系统与设备文件 5.1 API和libc规范 linux:create/open/close/write/read/lseek/ libc fopen/fgetc/fputc/fgets/fputs/fread/fwrite/fgetpos/fsetpos/fseek/fclose/ 5.2 文件系统目录结构 1./bin 2./sbin 3./dev 4./etc 5./lib 6./mnt ...原创 2020-08-31 15:26:11 · 188 阅读 · 0 评论 -
第六章-字符设备驱动
第六章-字符设备驱动原创 2020-08-31 15:36:09 · 74 阅读 · 0 评论 -
第七章-Linux设备驱动中的并发控制
第七章-Linux设备驱动中的并发控制原创 2020-08-31 15:41:32 · 131 阅读 · 0 评论 -
第八章-linux设备驱动中的阻塞与非阻塞
第八章-linux设备驱动中的阻塞与非阻塞原创 2020-08-31 15:43:45 · 126 阅读 · 0 评论 -
遍历设备信息
#!/bin/bash #populate block devices for i in /sys/block/*/dev /sys/block/*/*/dev do if [ -f $i ] then MAJOR=$(sed 's/:.*//' < $i) MINOR=$(sed 's/.*://' < $i) DEVNAME=$(echo $i |sed -e 's@/dev@@' -e 's@.*/@@') echo /d.原创 2020-08-28 17:17:27 · 155 阅读 · 0 评论 -
netlink交叉编译arm-linux-gnueabihf-gcc 编译结果
//============================================================================// Name : test_linuxdriver.cpp// Author : damon// Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//=========.原创 2020-08-28 15:33:09 · 275 阅读 · 0 评论