美文网首页
内核模块:hellops

内核模块:hellops

作者: 林木木_f297 | 来源:发表于2020-02-19 11:24 被阅读0次

    目标:查看内核进程的相关信息

    第一步:创建工作目录

    工作目录

    第二步:根据老师给出的代码创建文件并拷贝进去

    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/sched.h>
    int init_module()
    {
       printk("Hello world\n");
       extern unsigned long volatile jiffies;
       struct task_struct *p = &init_task;
       do
       {
         printk("%d %s\n",p->pid,p->comm);
         p = next_task(p);
       }
       while(p!=&init_task);
       return 0;
    }
    void cleanup_module()
    {
       printk("bye\n");
    }
    MODULE_LICENSE("GPL");
    
    .c文件
    obj-m := hellops.o
    KDIR := /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)
    default:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    
    makefile文件

    第三步:编译

    第一次编译失败

    无法辨认相关命令
    于是上网进行了查询,没有找到相关结果
    最后想到,是不是编译器版本的问题?


    版本

    发现版本被设置为4.7.4,应该是之前为了方便做操作系统课程设计做的调整,于是下载了最新版本的编译器并进行了版本调整。


    更改版本
    重新进行make
    虽然有warning但是无伤大雅

    第四步:开始ps

    分别输入一下的命令来查看ps及操作系统版本信息

    insmod hellops.ko
    lsmod | grep hello
    dmesg | grep -A 2 Hello
    dmesg | tail -5
    rmmod hellops
    dmesg | tail -1
    uname -a
    

    操作结果截图





    非root账号rm需要sudo提权

    实验结束

    相关文章

      网友评论

          本文标题:内核模块:hellops

          本文链接:https://www.haomeiwen.com/subject/maoofhtx.html