姓名:孔龙班级:0451202 学号2012211766
姓名:揭大千班级:0451202 学号 2012211858
1.实验目的:
1.1在虚拟机下安装某一linux的发行版(推荐centos)
1.2从内核官网**某一新的内核版本,并进行编译。
1.3设置系统引导管理器(推荐grub),使得系统可以从新内核启动。
1.4编写一个简单的模块化字符设备驱动程序,动态地装载和卸载以模块形式存在的字符设备驱动程序。同时,学会对所编写的字符设备驱动程序进行测试,最终了解linux 操作系统是如何管理字符设备的。
2.实验内容和步骤。
1.编译内核。
1.1. 安装虚拟机软件:vmware workstation以及centos操作系统,我选择的版本6.5final
1.2. 使用uname –r,查看系统的内核版本:
1.3. 从内核官网**某一新的内核版本。是完整的内核包。
1.4. 解压文件,使用 tar -jxvf -c /usr/src/ 把文件解压到 /usr/src中(在root用户下才有效)解压到目录/usr/src,或者先解压然后移动到该目录也行。
如图:1.5. 运行命令make mrproper(第一次编译内核,并没有上次的残留文件可以可以跳过运行命令make menuconfig设置内核配置文件,此处需要两个包,选择最简单的yum 安装yum -y install gcc和yum install ncurses ncurses-devel。
1.6. 对新的内核功能选择,并生成一个 .config 的文件:
1.7. 编译内核 make和makemodules_install:
1.8. 安装内核make install:
1.9. 修改默认启动的内核(把光标处的default值改成0,就为默认启动,编译成功后默认1)
vim /boot/grub/ :
1.10. 重新启动系统,默认内核就是上面编译成功的。
1.11. 进入系统后再次使用命令 uname –r 查看内核信息 :
2. 编写测试模块。
#include
#include
#include
module_license("dual bsd/gpl");
int hello_init(void)
printk("<0>hello, world!/n");
return 0;
void hello_exit(void)
printk("<0>goodbye, cruel world!/n");
module_init(hello_init);
module_exit(hello_exit);
3.编写makefile文件:
obj-m :=
kerneldir :=lib/modules/3.18.0/build
pwd :=shell pwd)
modules:
$(make) -c $(kerneldir) m=$(pwd) modules
modules_install:
$(make) -c $(kerneldir) m=$(pwd) modules_install
4.编译模块。
在模块目录执行make命令编译:
发现目录下多了一些文件。
5.安装模块。
在此之前用lsmod命令查看当前的模块列表。
然后使用 insmod 安装模块。
再次使用lsmod 发现多出 hello说明模块安装成功。
3.遇到的问题与解决办法。
在编译内核过程中,老是出错,首先是make menuconfig命令不能正确的执行,后来发现是缺少了2个运行的包,后来在网上查到是此处需要两个包gcc和ncurses-devel。后来使用yu安装后就成功了。最后是make install的时候,出现如下图所示的错误,以为功亏一篑了,后来在网上查找资料说,因为是在虚拟机里,所以会有些模块找不到,不过不影响内核的正常运行。
4.任务分配。
孔龙负责内核编译以及编写实验报告,揭大千负责模块的编写和测试。
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....