您的位置:首页 > 运维架构 > Linux

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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: