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
学习时间 94分钟
操作时间 57分钟
按键次数 1179次
实验次数 4次
报告字数 2385字
是否完成 完成