- 博客(9)
- 资源 (8)
- 收藏
- 关注
原创 替换 printk 函数
在实际应用中我们希望把消息送到任何一个 tty。这在内核模块被释放时确认错误是很重要的,因为它将会在所有内核模块中使用。这样做的方法是使用一个指向当前运行任务的指针,来得到当前任务的 tty 结构。然后,我们到 tty 结构里寻找一个指向写串函数的指针,我们用这个函数把一个串写进 tty。/* printstr.c - send textual output to the tty you'
2012-06-22 14:12:20 481
原创 linux hook 初探
下面是一段代码可以实现系统调用的替换 linux 内部的系统调用 sys_mkdir :(code.c) 系统调用作为一个数组放在一个系统调用表sys_call_table之中, 由于sys_call_table在不同主机上的地址是不一样的。我们的直接赋值的办法是行不通的。那么我们就需要通过其他方式获取了。 具体的获取思路如下:每一个系统调用都是通过int 0x80中断进入核
2012-06-21 20:24:12 810
转载 阻塞进程(使用等待队列)
如果有人让你做你一时做不到的事情你会怎么办呢?如果你是个人被另一个人打扰,你唯一可以做的就是对他说:“现在不行,我很忙,走开!”但是如果你是内核模块,被进程打扰,你就有另一种选择。你可以让这个进程去挂起直到你可以为之提供服务。毕竟,进程是在不停的被内核挂起或唤醒(这就是多个进程看上去同时在一个处理器上运行的方法)。 这个内核模块就是一个这样的例子。这个文件(称作/proc/s
2012-06-21 14:33:00 1394
转载 内核模块参数示例
我们可以用“module_param(参数名,参数类型,参数读/写权限)”为模块定义一个参数,例如下列代码定义了一个整型参数和一个字符指针参数:static char *book_name = "Linux Driver";static int num = 4000;module_param(num, int, S_IRUGO);module_param(book_na
2012-06-20 10:18:24 702
转载 MOD_INC_USE_COUNT和MOD_DEC_USE_COUNT
2.4内核中,模块自身通过 MOD_INC_USE_COUNT, MOD_DEC_USE_COUNT宏来管理自己被使用的计数。 2.6内核提供了更健壮、灵活的模块计数管理接口 try_module_get(&module), module_put(&module)取代2.4中的模块使用计数管理宏;模块的使用计数不必由自身管理,而且在管理模块使用计数时考虑到 SMP与PREEMPT机制的影响
2012-06-19 21:12:12 1871
原创 测试ioctl函数
在linux设备驱动开发详解中源码:http://blog.csdn.net/gudujianjsk/article/details/7656042makefile 脚本:KVERS = $(shell uname -r)obj-m += globalmem.oEXTRA_CFLAGS=-g -O0build:kernel_moduleskernel_modules
2012-06-19 21:04:22 1039
原创 使用/proc测试
下面所示清单为一个简单的 /proc 使用范例,这段代码在模块加载函数中创建 /proc 文件节点,在模块卸载函数中撤销 /proc 节点,文件中保存了一个32位无符号整形值。#include #include #include static struct proc_dir_entry *proc_entry;static unsigned long val = 0x12
2012-06-19 19:16:39 749
转载 如何解决Install ncurses(ncurses-devel) and try again
今天在 make menuconfig 时遇到错误: *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses (ncur
2012-06-07 21:41:39 1138
原创 将一个目录下所有指定文件里面的特定字符串替换
想把自己以前完成的一个工程里面特定字符串替换,本来用脚本是很简单的,但是自己还不会只得用VC写了一个程序,蛋疼啊。程序涉及到知识点: 指针 链表 文件遍历 内存映射文件代码如下: // Test2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#inc
2012-06-05 09:20:06 1112
先进的反病毒引擎设计
2009-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人