实现计时器

计时器对于在内核空间中处理定时操作至关重要。

示例

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/timer.h>

static struct timer_list my_timer;

void timer_callback(struct timer_list *t)
{
    printk(KERN_INFO "Timer expired and callback executed\n");
}

static int __init timer_init(void)
{
    printk(KERN_INFO "Initializing Timer Module\n");

    timer_setup(&my_timer, timer_callback, 0);
    mod_timer(&my_timer, jiffies + msecs_to_jiffies(2000));  // 2 seconds

    return 0;
}

static void __exit timer_exit(void)
{
    del_timer(&my_timer);
    printk(KERN_INFO "Timer Module Unloaded\n");
}

module_init(timer_init);
module_exit(timer_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A simple timer module");

编译运行调试

加载模块:

sudo insmod timer.ko

卸载模块:

sudo rmmod timer

查看日志:

dmesg

在日志中可以看到打印的时间信息。