HDU操作系统实验二:Linux 内核模块编程(网安,基于华为云arm架构)

阅读: 评论:0

HDU操作系统实验二:Linux 内核模块编程(网安,基于华为云arm架构)

HDU操作系统实验二:Linux 内核模块编程(网安,基于华为云arm架构)

实验介绍

本实验通过编写Linux内核模块,加载内核模块,并测试结果,了解Linux内核模块的概念、编译方法、安装和测试方法。

任务描述

  • Linux 内核模块的基本概念
  • Linux 内核模块的编写方法
  • Linux 内核模块的加载和移除
  • Linux内核模块的测试方法

实验目的

  • 学习掌握Linux 内核模块的编写
  • 学习掌握Linux 内核模块的加载和移除
  • 学习掌握测试Linux内核模块

实验内容

1. 掌握Linux 内核模块的基本概念

1.1 解Linux内核模块的基本概念。

1.2 网上查找资料(.6/html/index.html),了解Linux内核模块的编写方法。

2. 设计和添加Linux 内核模块

2.1 打印“hello,world”

a.切换至home目录(该目录初始应该是空目录)下输入“mkdir hello”新建hello文件,“cd hello”进入hello文件。
b.输入"vim myhello.c",输入以下代码

#include<linux/init.h>
#include<linux/module.h>
#include<linux/kernel.h>static int  hello_init(void)
{printk(KERN_ALERT"hello,wordn");return 0;
}
static void  hello_exit(void)
{printk(KERN_ALERT"goodbyen");
}module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");

保存并退出(“esc”退出编辑模式,“:wq”保存并退出)
c.输入"vim Makefile",输入以下代码

obj-m :=hello.o
hello-objs:=myhello.o
KDIR :=/lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
default:make -C $(KDIR) M=$(PWD) modules//make前面为Tab,并不是空格,直接复制需要改下
clean:make -C $(KDIR) M=$(PWD) clean

保存并退出(“esc”退出编辑模式,“:wq”保存并退出)
d.输入“make”,进行模块编译,如果报错很可能是代码格式问题,请仔细检查,一段代码前不是空格(直接“CV大法”导致的后果)
e.输入“insmod hello.ko”,加载模块
f.输入"dmesg",查看

g.输入“rmmod hello”,卸载模块

2.2 设计一个带参数的模块,其参数为某个进程的PID号,模块的功能是列出该进程的家族信息,包括父进程、兄弟进程和子进程的程序名、PID号、进程状态。

a.切换至home目录下输入“mkdir test1”新建test1文件,“cd test1”进入test1文件。
b.输入"vim module1.c",输入以下代码

#include <linux/kernel.h>
#

本文发布于:2024-01-31 10:20:01,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170666760427820.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:华为   内核   架构   模块   操作系统
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23