操作系统实验—设备管理

所有实验源码:

gitee:https://gitee.com/infiniteStars/os-project

github:https://github.com/helloworldzsq/OSproject

1. 实验内容

1、分析、设计与实现一个可读写的字符设备驱动程序,并作为可装入模块加载到系统中去。

2、设计相应的示例程序,在用户进程中对该设备驱动程序进行的功能进行测试验证。

2. 实验要求

(1)Linux 设备驱动程序的设计与实现(包括内核模块初始化/退出函数以及设备各类操作功能函数);

(2)相应的设备驱动测试例程的设计实现,或设备驱动测试所用的现有应用程序的相关功能关联分析说明;

(3)设备驱动的测试验证,包括设备驱动加载和卸载操作、设备基本信息显示、设备驱动运行全过程内核信息输出以及测试例程自身运行的结果截屏。

3. 实现方法

1.第一种方法

参考文章:https://blog.csdn.net/sandalphon4869/article/details/105900817

缺点

  • 需要修改代码(已经在下面给出了修改方法)
  • 写的时候不能从键盘上输入
1. 修改 rwbuf.c
//参考文章代码
static int __init rwbuf_init()
static void __exit rwbuf_exit()

//修改之后
static int __init rwbuf_init(void)
static void __exit rwbuf_exit(void)
2.实验结果
  • Makefile编译完产生的文件

image-20211216145857123

  • 运行读写测试程序

image-20211216150023370

  • 卸载设备驱动程序

image-20211216150219394

​ 在写操作成功之后,卸载驱动程序。再进行读操作就会报错。

  • 使用dmesg命令来查看驱动程序的状态

image-20211208205231412

2.第二种方法(推荐)

参考文章:https://blog.csdn.net/oax_knud/article/details/117125865

这篇博客解决了上一篇博客的缺点,既不用修改代码,也能从键盘输入。

1. 实验结果
  • Makefile编译完产生的文件

image-20211222112417909

  • 测试写程序

image-20211222112621106

  • 测试读程序

image-20211222112642113

  • 测试删除文件

image-20211222112745863

Logo

更多推荐