第八章随笔

读书笔记:

第八章:

    如果a.c使用了b.c文件中的函数,需要在a.c文件中使用extern预先定义b.c中的函数,extern的作用就是告诉编译器该函数的函数名,参数个数,参数类型和返回值类型,等到a.o和b.o链接成可执行文件或程序时,编译器再到b.o中寻找函数的具体实现,也就是说,extern只在编译阶段起作用;

    由于symbol_consumer驱动使用了symbol_producer驱动中导出的符号,因此,在安装symbol_consumer之前,需要先安装symbol_producer,卸载时顺序正好相反;

    modprobe命令会根据depmod命令生成的linux模块依赖关系来装载linux模块;

    卸载linux驱动:

    当卸载函数被阻塞时,rmmod命令也会被阻塞,也就是永远不会执行到卸载linux驱动模块的代码:

    (1)引用计数器的值和引用者不一致,实际上引用者是不存在的,因此,只需要将当前的linux驱动模块的引用计数器清零即可;

     (2)将原来的卸载函数替换成一个空的卸载函数即可;

上面的两种情况都需要获取表示要卸载的linux驱动模块的module结构体指针,struct module表示了linux驱动的相关信息,从/proc/kallsyms文件中查找系统分配给要卸载的linux驱动的module结构体的首地址,然后将首地址强行转换成module结构体指针。

 

时间: 2024-10-11 18:21:19

第八章随笔的相关文章

《软件工程》第八章随笔

本章主要讲解面向对象的设计.设计也是一个建模的活动.设计的原则有三:模块化,耦合度和内聚性,复用性. 软件设计有几种体系结构.一是仓库体系结构,有两种不同的软件部件:一个表示当前的中心数据结构和一组相互独立的处理中心数据的子系统.二是分层体系结构,将软件设计组织成为类或组件的层次或集合,在同一个层次上的类或组件完成一个特定的目的.三是MVC体系结构.四是客户机/服务器体系结构作为服务器的子系统为其他客户机的子系统提供服务.五是管道和过滤体系结构. 系统设计阶段,需要注意三点:识别设计元素,数据存

汇编第七、八章知识点

第七章,第八章知识点 1. and命令:逻辑与指令,按位进行与运算 通过该指令可将操作对象的相应位设为0,其他位不变 (原来为1或0则与1相与后还是原数:原来为1或0则与0相与后肯定为0→实现特定位置0) 2. or命令:逻辑或命令,按位进行或运算 通过该指令可将操作对象的相应位设为1,其他位不变 (原来为1或0则与1相或后肯定为1:原来为1或0与0相或后为原数→实现特定位置1) 3.在汇编程序中,用'--'的方式指明数据是以字符的形式给出的,编译器将它们转化为相应的ASCII码 4.大小写转换

《Linux内核设计与实现》读书笔记 第十八章 调试

第十八章调试 18.1 准备开始          需要准备的东西: l  一个bug:大部分bug通常都不是行为可靠而且定义明确的 l  一个藏匿bug的内核版本:找出bug首先出现的版本 l  相关内核代码的知识和运气 最好能让bug重现,有一些bug存在而且有人没办法让他重现,因为内核与用户程序和硬件间的交互很微妙. 18.2内核中的bug 可以有无数种原因产生,表象也变化多端.代码中的错误往往引发一系列连锁反应,目击者才看到bug. 18.3通过打印来调试 内核提供了打印函数printk

C#博客随笔之六:数据绑定

这一篇随笔记录的是在完成程序中遇到的一些情况 首先要讲的是MVVM 所谓MVVM就是Model,View,ViewModel 下面是MVVM的优点(引用自百度百科): MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点1. 低耦合.视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变.2. 可重用性.你可以把一些视图

Abby's 学习php5随笔

2017.6.27 Abby's cakephp2 学习之旅 下载了XAMPP集成开发环境,然后配置其数据库,参考学习教程, 1.建立表单. 配置完信息如下,Cache Apache默认在windows下是system用户,所以权限最高,但xampp集成环境中的apache确是administor 如何更改apache用户为system 静默开发.(一种开发方法,番茄ToDo中的学霸模式有些相似) 如何设置.ctp的显示 http://cakephp2.local/posts/index怎么就可

java基础随笔 字符数据类型char的单引号

public class Love{ public static void main(String[] args){ System.out.println('*'+'\t'+'*'); System.out.println("*"+"\t"+"*") } } 运行结果   第一行为  93 第二行为  *        * 原因 第一行中'\t' 单引号  识别为字符数据类型char,char类型是可以运算的,在第一行中+做了运算符. 第二行&q

第八章、Linux 磁盘与文件系统管理

第八章.Linux 磁盘与文件系统管理 1. 认识 EXT2 文件系统 1.1 硬盘组成与分割的复习 1.2 文件系统特性: 索引式文件系统 1.3 Linux 的 EXT2 文件系统(inode): data block, inode table, superblock, dumpe2fs 1.4 与目录树的关系 1.5 EXT2/EXT3 文件的存取与日志式文件系统的功能 1.6 Linux 文件系统的运行 1.7 挂载点的意义 (mount point) 1.8 其他 Linux 支持的文

web前端学习随笔

好好算下来,学习web前端已有半个月了,这半个月来主要学习的是HTML和CSS部分,期间有困惑,也有解决困惑时的快感,所以想把这段时间感受到的一些东西记下来,因为内容比较杂,所以干脆叫随笔吧.这里面不会说前端的相关基础知识,只是说一些自己对前端的一些认识. html是用来控制页面结构的我曾经对这句话有过疑问,觉得html应该是控制页面内容的,为什么要说是控制页面结构的呢?在查看京东首页的代码时,我恍然大悟,html确实是定义页面内容的,但同时它也要控制页面的结构.举例来说,京东商品分类的div包

JavaWeb学习随笔

Servlet学习随笔 1.HttpServlet init(ServletConfig)------Servlet生命周期中的初始方法,默认情况是服务器创建后第一次访问这个Servlet时调用,可以修改配置信息,使其在服务器一创建时就被调用; 修改配置信息的方法-----在web.xml的<servlet>下添加<load-on-startup>x<load-on-startup>,x是正整数,越小表示优先级越高 url路径的配置,完全匹配>目录匹配>(.