
Linux 内核编程基础
文章平均质量分 76
iczyh
这个作者很懒,什么都没留下…
展开
-
最简单的内核模块编程 -- 一切从这里开始
代码:/* hello.c */#include #include /* Optional, to include printk() prototype */#include /* Optional, to include module_init() macros */static int __init hello_init(void){ printk("Hello,原创 2008-10-26 10:02:00 · 847 阅读 · 0 评论 -
模块参数使用示例
代码:#include #include /* Optional, to include module_param() macros */#include /* Optional, to include prink() prototype */#include /* Optional, to include module_init() macros */#inclu原创 2008-10-26 14:53:00 · 3641 阅读 · 0 评论 -
proc_fs 使用说明
创建一个 proc 文件根据对 proc 文件的不同使用,内核提供了多种包装函数来创建一个 proc 文件。方法一:struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent)这是最直接,包装最少的创建方法。参数 name 是要创建的 proc 文件名。m原创 2008-11-02 09:51:00 · 11195 阅读 · 1 评论 -
一个使用 seq_file 接口的 proc_fs 例子
#include #include #include #include static struct proc_dir_entry *pfile;static char *myfruits[5] = {"apple", "orange", "banana", "watermelon", "pear"};static void *my_seq_start(struct seq_file *s, lof原创 2008-11-02 10:05:00 · 2071 阅读 · 2 评论 -
内核定时器的使用
概要内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 和 kernel/timer.c 文件中。被调度的函数肯定是异步执行的,它类似于一种“软件中断”,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则:1) 没有 current 指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。2) 不能执行休眠(或可能原创 2008-11-08 11:51:00 · 4128 阅读 · 2 评论 -
进程休眠的方法
休眠的步骤将一个进程置于休眠状态,一般步骤如下:0. 定义并初始化(如果还没有的话)一个等待队列头(wait_queue_head_t),这个等待队列头应该是能被要休眠的进程和负责唤醒的进程都能访问到。1. 对进程的每次休眠,定义并初始化一个等待队列(wait_queue_t)2. 把等待队列加入到相应的等待队列头中。3. 把进程状态置为 TASK_INTERRUPTIBLE 或 TASK_UNI原创 2008-11-09 11:05:00 · 3489 阅读 · 0 评论