目標(biāo):查看內(nèi)核進(jìn)程的相關(guān)信息
第一步:創(chuàng)建工作目錄
工作目錄
第二步:根據(jù)老師給出的代碼創(chuàng)建文件并拷貝進(jìn)去
#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文件
第三步:編譯
第一次編譯失敗
無法辨認(rèn)相關(guān)命令
于是上網(wǎng)進(jìn)行了查詢耸采,沒有找到相關(guān)結(jié)果
最后想到,是不是編譯器版本的問題耍攘?
版本
發(fā)現(xiàn)版本被設(shè)置為4.7.4,應(yīng)該是之前為了方便做操作系統(tǒng)課程設(shè)計(jì)做的調(diào)整读跷,于是下載了最新版本的編譯器并進(jìn)行了版本調(diào)整底燎。
更改版本
重新進(jìn)行make
雖然有warning但是無傷大雅
第四步:開始ps
分別輸入一下的命令來查看ps及操作系統(tǒng)版本信息
insmod hellops.ko
lsmod | grep hello
dmesg | grep -A 2 Hello
dmesg | tail -5
rmmod hellops
dmesg | tail -1
uname -a
操作結(jié)果截圖
非root賬號rm需要sudo提權(quán)