ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:72KB ,
资源ID:3101357      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3101357.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(强力卸载内核模块(一).doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

强力卸载内核模块(一).doc

1、内核为 2.6.32。卸载模块 target时,不管是否为强制卸载,都输出:ERROR:Module target is in use.用 lsmod查看 target,发现 Used by计数为 1,而据我所知,没有其它模块依赖 target。编写模块检查 target的 module结构,发现:target-state = 0 / 模块存活module_refcount(target) = 1 / 模块引用计数为 1list_empty(target-modules_which_use_me) = 1 / 模块依赖列表为空这个就很奇怪,模块的引用计数为 1,却没有引用者。这可能是模块插入内

2、核时出错而引起的,这里先不研究,先关注怎么把它强制卸载掉,虽然insmod加载是临时的,所以通过重启电脑可以解决一些问题,但是不能总是依靠重启啊。解决方法:编写模块 mymod中把问题模块 target的引用计数置为 0,就可以顺利卸载掉 target了!代码java view plaincopy1. #include 2. #include 3. #include 4. #include 5. #include 6. 7. static int _init mymod_init(void) 8. 9. struct module *mod,*relate; 10. int cpu; 11.

3、12. / 打印本模块的模块名和模块状态 13. printk(KERN_ALERT“insmod mymod name:%s state:%dn“,THIS_MODULE-name,THIS_MODULE-state); 14. 15. / 遍历模块列表,查找 target模块 16. list_for_each_entry(mod,THIS_MODULE-list.prev,list) 17. 18. if(strcmp(mod-name,“target“)=0) 19. 20. / 打印 target的模块名、模块状态、引用计数 21. printk(KERN_ALERT“name:%s

4、 state:%d refcnt:%u “,mod-name,mod-state,module_refcount(mod); 22. 23. / 打印出所有依赖 target的模块名 24. if(!list_empty( 27. else 28. printk(KERN_ALERT“used by NULLn“); 29. 30. / 把 target的引用计数置为 0 31. for_each_possible_cpu(cpu) 32. local_set(_module_ref_addr(mod,cpu),0); 33. 34. / 再看看 target的名称、状态、引用计数35. pr

5、intk(KERN_ALERT“name:%s state:%d refcnt:%un“,mod-name,mod-state,module_refcount(mod); 36. 37. 38. return 0; 39. 40. 41.static void _exit mymod_exit(void) 42. 43. printk(KERN_ALERT“rmmod mymod name:%s state:%dn“,THIS_MODULE-name,THIS_MODULE-state); 44. 45. 46.module_init(mymod_init); 47.module_exit(m

6、ymod_exit); 48. 49.MODULE_AUTHOR(“Zhangsk“); 50.MODULE_LICENSE(“GPL“); 51.MODULE_DESCRIPTION(“Why module can not be removed“); 内核include/linux/module.h:java view plaincopy1. extern struct module _this_module; 2. #define THIS_MODULE ( 3. 4. enum module_state 5. MODULE_STATE_LIVE; / 模块存活,0 6. MODULE_S

7、TATE_COMING; / 正在加载模块,1 7. MODULE_STATE_GOING; / 正在卸载模块,2 8. ; 9. 10.struct module 11. enum module_state state; / 模块状态 12. 13. /* Member of list of modules */ 14. struct list_head list; / 内核模块链表 15. 16. /* Unique handle for this module */ 17. char nameMODULE_NAME_LEN; /模块名称 18. 19. . 20. 21.#ifdef C

8、ONFIG_MODULE_UNLOAD 22. /* What modules depend on me? */ 23. struct list_head modules_which_use_me; 24. 25. /* Who is waiting for us to be unloaded */ 26. struct task_struct *waiter; 27. 28. /* Destruction function. */ 29. void (*exit) (void); 30. 31.#ifdef CONFIG_SMP 32. char *refptr; 33.#else 34.

9、local_t ref; 35.#endif 36.#endif 37. 38. . 39. 40.; 41. 42.static inline local_t *_module_ref_addr(struct module *mod, int cpu) 43.#ifdef CONFIG_SMP 44. return (local_t *) (mod-refptr + per_cpu_offset(cpu); 45.#else 46. return 47.#endif 48. include/asm-generic/atomic.h:java view plaincopy1. typedef

10、atomic64_t atomic_long_t; include/linux/types.h:java view plaincopy1. typedef struct 2. volatile int counter; 3. atomic_t; 4. 5. #ifdef CONFIG_64BIT 6. typedef struct 7. volatile long counter; 8. atomic64_t; 9. #endif arch/x86/include/asm/local.h:java view plaincopy1. typedef struct 2. atomic_long_t a; 3. local_t; 4. 5. #define local_read(l) atomic_long_read( 10.#define per_cpu_offset(x) (_per_cpu_offsetx) 11.#endif

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。