(1) 设计一个模块,要求列出系统中所有内核线程的程序名、PID 号、进程状态及进程优先级、父进程的PID。
1.首先,我们开始编写模块代码,这是Linux内核编程的核心代码,代码如下:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/init_task.h>
// 初始化函数
static int hello_init(void)
{
struct task_struct *p;
p = NULL;
p = &init_task;
printk(KERN_ALERT"名称\t进程号\t状态\t优先级\t父进程号\t");
for_each_process(p)
{
if(p->mm == NULL){ //内核线程的mm成员为空
printk(KERN_ALERT"%s\t%d\t%ld\t%d\n",p->comm,p->pid,