首页 / 虚拟机 / 虚拟机ubuntu-自行实现系统调用
虚拟机ubuntu-自行实现系统调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了虚拟机ubuntu-自行实现系统调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1583字,纯文字阅读大概需要3分钟。
内容图文
![虚拟机ubuntu-自行实现系统调用](/upload/InfoBanner/zyjiaocheng/938/910ed546a88943ed9a4e43ba597c35e6.jpg)
一、前言
第二次实验是实现与学号有关系统调用,在第一次实验基础上进行。
第一次实验是编译自己的linux内核https://www.cnblogs.com/cs-weilai/p/13036884.html。
环境还是ubuntu18.04 + linux5.6.14内核 + vmware
二、实验过程记录
1. 输入命令 cd /usr/src/linux-5.6.14/ 进入内核目录。
输入 sudo vim arch/x86/entry/syscalls/syscall_64.tbl , 在此文件中添加自己的系统调用编号
编号依次增加,注意 name 与 entry point名称啊!
修改完成保存!!!
2. 系统调用号已经添加了,内核就知道有这么个东西。接下来我们需要实现系统调用。
以函数的形式,进行函数声明和函数定义。现在先来声明函数吧。
执行命令 sudo vim include/linux/syscalls.h 。
在文件最后添加函数声明(vim下,shift+G迅速到达),完成后保存!
3. 声明添加了,接下来就是函数定义了。输入命令 sudo vim kernel/sys.c。
同样在文件最后进行函数定义。
注意内核打印函数是 printk();
我这里第一个函数是文本测试,第二个是实验要求:
奇数学号输出后五位,偶数学号输出后六位。完成后保存!
4. 好了,现在系统调用做完了。重新编译内核吧~
依次执行以下命令,这些命令都很熟悉了,不再做解释。
1. sudo make mrproper
2. sudo make clean
3. sudo make nconfig (进入界面后保存退出,可参考上一篇博客!)
4. sudo make -j4 (仍旧是四个线程跑,会快很多!)
5. sudo make modules_install (make完成后执行)
6. sudo make install
5. 上述步骤完成后重启!
三、测试
好了,现在系统调用模块完成了,我们做一些测试。
终端输入 sudo touch test.c
使用vim编写 sudo vim test.c
(syscall第一个参数是系统调用编号,就是第一步你设置过的。后面的就是参数,这点和函数类似)
终端编译 sudo gcc -o test test.c
运行 sudo ./test
因为内核打印不一定会显示,但会保存在内核缓冲区。
我们执行命令 sudo dmesg就可看到结果。
内容总结
以上是互联网集市为您收集整理的虚拟机ubuntu-自行实现系统调用全部内容,希望文章能够帮你解决虚拟机ubuntu-自行实现系统调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。