刘梦杰 L13 2018-04-13 17:29:08 系统调用
294 0

“操作系统原理与实践(南阳理工学院)”实验报告

系统调用

1.解压linux的压缩包,进入解压后生成的文件夹oslab/linux/include实验楼, 2.打开文件unistd.h实验楼 在131行后添加在原第131行和第132行之间增加如下代码: #define __NR_iam 72 #define __NR_whoami 73 254行添加 int iam(const char * name); int whami(char * name,unsigned int size); 实验楼 3.修改"system_call.s"文件,扩大系统调用函数的数量: cd /home/shiyanlou/oslab/oslab/linux-0.11/kernel gedit system_call.s 将文件第61行改为: nr_system_calls = 74 实验楼 4.修改"sys.h"文件,使0x80号中断能调用相应的系统函数: 打开"/home/shiyanlou/oslab/linux-0.11/include/linux"目录,然后用"gedit"软件打开"sys.h", 在原第72行和第73行之间增加如下代码: extern int sys_iam(); extern int sys_whoami(); 在88行添加 sys_iam,sys_whoami 实验楼 5.进入"/home/shiyanlou/oslab/linux-0.11/kernel"目录,创建"who.c"文件 - 列表项目 实验楼,输入实验楼 6.修改"Makefile"文件: 打开"/home/shiyanlou/oslab/linux-0.11/kernel"目录,然后用"gedit"软件打开"Makefile",将文件第29行修改为: signal.o mktime.o who.o 在原第50行和第51行之间增加如下代码: who.s who.o:who.c ../include/unistd.h ../include/errno.h
../include/asm/segment.h 实验楼 7.挂载虚拟机硬盘 cd linux-0.11/ make all实验楼彻底。。 cd .. sudo ./mount-hdc实验楼 8.(在oslab目录下执行命令$ ./mount-hdc),打开目录"/home/shiyanlou/oslab/hdc/usr/include",添加头文件"usname.h":实验楼 9.将文件: "/home/shiyanlou/oslab/linux-0.11/include/unistd.h" 复制到以下路径: "/home/shiyanlou/oslab/hdc/usr/include"; 将文件: "/home/shiyanlou/oslab/linux-0.11/include/linux/sys.h" 复制到以下路径: "/home/shiyanlou/oslab/hdc/usr/include/linux"; 在"/home/shiyanlou/oslab/hdc/usr/root"目录下编写程序"iam.c"和"whoami.c": 实验楼实验楼 10.从"/home/teacher"拷贝文件"testlab2.c"和"testlab.sh"至以下路径: "/home/shiyanlou/oslab/hdc/usr/root" 取消虚拟机硬盘挂载,运行虚拟机: 在oslab目录下执行命令$ sudo umount hdc ./run实验楼

最新评论
暂无评论~