os practices-3-3
操作系统原理与实践-哈工大 实验楼-实验3(系统调用)
实验地址:https://www.lanqiao.cn/courses/115
https://blog.csdn.net/watson2016/article/details/72230850
https://blog.csdn.net/yuebowhu/article/details/78755728
1、添加系统调用号以及系统调用函数头
修改linux-0.11/include/unistd.h文件
因为在 0.11 环境下编译 C 程序,包含的头文件都在 /usr/include 目录下,后续应用程序需要用到unistd.h文件中的系统调用号以及函数头,
所以将修改后的unistd.h复制到挂载的hdc/use/include中 替换原来的unistd.h文件
挂载命令为:sudo ./mount-hdc
2、进入内核函数
在中断 0x80 发生后,自动调用函数 system_call,所以我们要修改对应的system_call文件
修改linux-0.11/kernel/system_call.s
修改系统总调用数 因为增加了两个 变为74
修改include/linux/sys.h
增加实验要求的系统调用,需要在sys_call_table这个函数表中增加两个函数引用
3、在内核中实现函数 sys_iam() 和 sys_whoami()。
在linux-0.11/kernel文件下新建文件who.c
4、修改makefile让我们添加的 kernel/who.c 可以和其它 Linux 代码编译链接到一起
修改linux-0.11/kernel/makefile
随后执行make all
5、编写应用测试程序
注意,要在挂载的hdc/usr/root中编写
具体代码含义:
6、运行虚拟机 运行应用程序
运行虚拟机:
运行应用程序:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HM!