linux 4自定义系统调用,在linux下的终端下使用自定义的系统调用(紧急~~)

各位大虾

偶是linux菜鸟,现在正忙着做操作系统课程设计

我的问题具体是这样的:

我自定义了一个系统调用:

asmlinkage void sys_mycall(void){

printk("you are my life ..");

}

完成了注册,编译通过,也能够进入自己修改的linux内核

现在,我要使用该系统调用,编了一个测试程序(zhuzhu.c):

#include

_syscall0(void,mycall);

main(){

mycall();

}

然后编译该测试程序

gcc -o test zhuzhu.c

编译通过

执行test   。/test

没有任何输出,也没报告错误

这是为什么??

希望大虾们支招~~

谢谢~~

|

o 看错了

你应该去看看 /var/log/messages 有没有打印信息

|

系统调用要通过int 0x80进入,而且将系统调用号放入eax寄存器中,这里你要写汇编才行

其实平时用的glibc的内部就是这样做的

|

参考 Linux Kernel Development 2nd这本书的  System Call Context 一节 看看 有没有什么遗漏了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值