linux入门:添加自定义系统调用
2015-04-21 15:50
260 查看
Lab4添加系统调用
131242023李峻凡
实验要求:
1.给linux内核添加一个自定义系统调用,实现调用该系统调用能输出自己的姓名与学号。
2.添加自定义系统调用,使得当前用户的UID为0.
实验步骤:
cd/usr/src/linux-source-3.13.0
1.在系统调用表中添加系统调用
打开arch/x86/syscalls/syscall_64.tbl
2.在头文件中声明函数
打开include/linux/syscalls.h
3.添加函数原型
打开kernel/sys.c
4.重新编译内核并安装
makemenuconfig进行设置
make编译。时间较长。约1~2小时。linux3.13的内核make后大约为11G。
当初装双系统时分配的空间不足,爆了一次。通过重装系统解决。
makemodules
makeinstall这时/boot中生成了一个巨大的新initrd.img,占约170m,而原来的initrd.img仅不到20M。可能设置中有问题。引导系统启动的文件似乎不该这么大。
5.重新启动计算机,编写程序验证。
测试1
一开始没有添加第15行。运行无反应。后来添加第15行后,输出1,可知调用成功。通过查阅资料,得知printk的输出因为优先级的问题并不会输出到控制台。
通过访问系统日志可以找到printk的输出。
测试2
131242023李峻凡
实验要求:
1.给linux内核添加一个自定义系统调用,实现调用该系统调用能输出自己的姓名与学号。
2.添加自定义系统调用,使得当前用户的UID为0.
实验步骤:
cd/usr/src/linux-source-3.13.0
1.在系统调用表中添加系统调用
打开arch/x86/syscalls/syscall_64.tbl
2.在头文件中声明函数
打开include/linux/syscalls.h
3.添加函数原型
打开kernel/sys.c
4.重新编译内核并安装
makemenuconfig进行设置
make编译。时间较长。约1~2小时。linux3.13的内核make后大约为11G。
当初装双系统时分配的空间不足,爆了一次。通过重装系统解决。
makemodules
makeinstall这时/boot中生成了一个巨大的新initrd.img,占约170m,而原来的initrd.img仅不到20M。可能设置中有问题。引导系统启动的文件似乎不该这么大。
5.重新启动计算机,编写程序验证。
测试1
一开始没有添加第15行。运行无反应。后来添加第15行后,输出1,可知调用成功。通过查阅资料,得知printk的输出因为优先级的问题并不会输出到控制台。
通过访问系统日志可以找到printk的输出。
测试2
相关文章推荐
- 添加自定义Linux系统调用
- Linux添加自定义系统调用
- Linux添加自定义系统调用
- Linux添加自定义系统调用
- ARM Linux下添加自定义系统调用
- linux下添加系统调用
- linux修改内核、添加系统调用过程
- Linux添加系统调用
- Linux添加系统调用
- Linux 内核编译 添加系统调用
- Linux 内核编译 添加系统调用
- Linux添加内核系统调用报告
- Linux添加内核系统调用报告
- 如何添加linux系统调用
- 为linux添加系统调用
- Linux添加一个新的系统调用
- 模块的方式添加系统调用 Linux
- 怎么在Linux中添加新的系统调用
- 怎么在Linux中添加新的系统调用
- Linux下添加系统调用实例