模块编程实验.pptVIP

  • 0
  • 0
  • 约6.22千字
  • 约 26页
  • 2023-08-11 发布于广东
  • 举报
模块编程实验模块编程实验 _ 1 成都信息工程学院 徐虹第一页,共二十六页,2022年,8月28日 . // 声明是一个模块... // 加载时,初始化模块的编码 } #include linux/kernel.h // 说明是个内核功能 // read()、ioctl()等函数 ... void cleanup_module() { ... // 卸载时,注销模块的编码 }模块编程实验 _ 2 成都信息工程学院 徐虹第二页,共二十六页,2022年,8月28日 6.2.2 模块的编译 #gcc ?O2 ?g ?Wall ?DMODULE ?D_KERNEL_?c filename.c // filename.c为自己编写的模块程序源代码文件 6.2.3 模块的加载 6.2.4 模块的卸载 6.2.5 模块链接到内核的示意图 6.2.6 模块程序中管理模块的几个文件操作模块编程实验 _ 3 成都信息工程学院 徐虹第三页,共二十六页,2022年,8月28日 int(*lseek)(),int(*read)(),int(*write)(),int(*readdir)(),int(*select)(),int (*ioctl)(),int (*mmap)(),int (*open)(),void (*release)(),?int(*fsync)(), int(*fasync)(), int(*check_media_change)(), int(*revalidate)() 模块编程实验 _ 4 成都信息工程学院 徐虹第四页,共二十六页,2022年,8月28日 图6-1 模块链接到内核的示意图模块编程实验 _ 5 成都信息工程学院 徐虹第五页,共二十六页,2022年,8月28日 NULL, // modulename_lseek, 改变模块结构中的操作位置 modulename_read, modulename_write, NULL, // modulename_readdir,读取某个子目录中的内容struct file_operations modulename_fops ={ NULL, // modulename_select,允许应用程序响应来自模块的事件 模块编程实验 _ 6 成都信息工程学院 徐虹第六页,共二十六页,2022年,8月28日 NULL, // modulename_ioctl,应用程序通过I/O控制系统的系统调 // 用来控制模块行为 NULL, // modulename_mmap,模块地址空间到用户地址空间的映射 modulename_open, modulename_release, NULL, // modulename_fsync,同步内存与磁盘上的数据状态,输模块编程实验 _ 7 成都信息工程学院 徐虹第七页,共二十六页,2022年,8月28日 // 出缓冲区里尚未写到磁盘的数据写出去 NULL, // modulename_fasync,改变模块行为 NULL, // modulename_check_media_change,检查自上次操作后, // 介质(软盘和CD-ROM)是否更换 NULL // modulename_revalidate,若更换了介质,则更新信息} 模块编程实验 _ 8 成都信息工程学院 徐虹第八页,共二十六页,2022年,8月28日 6.3 实验内容 6.3.1 编写一个简单的内核模块6.3.2 模块加载前后的比较6.3.3 向模块中再添加一些新函数6.4 实验指导 6.4.1 一个简单的内核模块模

文档评论(0)

1亿VIP精品文档

相关文档