当前位置: 技术问答>linux和unix
linux的系统调用问题
来源: 互联网 发布时间:2016-01-01
本文导语: 在linux中要进行系统调用 在kernel/sys.c中添加如下代码 asmlinkage int sys_mycall(int number) { return number; } 在写程序调用时systemcall程序怎么写。 #include _syscall1(int,mycall,int,ret) main() { printf("...
在linux中要进行系统调用
在kernel/sys.c中添加如下代码
asmlinkage int sys_mycall(int number)
{
return number;
}
在写程序调用时systemcall程序怎么写。
#include
_syscall1(int,mycall,int,ret)
main()
{
printf("%d n",mycall(100));
}
是不是有什么问题???
在kernel/sys.c中添加如下代码
asmlinkage int sys_mycall(int number)
{
return number;
}
在写程序调用时systemcall程序怎么写。
#include
_syscall1(int,mycall,int,ret)
main()
{
printf("%d n",mycall(100));
}
是不是有什么问题???
|
添加一个系统调用:
1添加源代码
到目录/usr/src/linux/kernel/sys.c中照着里面函数葫芦画瓢写一个你自己的系统调用函数
2添加链接
到目录/usr/src/linux/include/asm-i386/unistd.h中添加你自己的系统调用号
到目录/usr/src/linux/arch/i386/kernel/entry.S添加系统调用名
3重新编译内核
make menuconfig //配置你自己的内核
make dep
make modules_install
make clean
make bzImage
如果你的LINUX是比较新的GRUB引导的,重启选择你刚编译的内核项就行了.
如果是LILO引导的,继续
4 拷贝新内核到boot目录下
cp -a /usr/src/linux/arch/i386/boot/bzImage /boot
5 配置/etc/lilo.conf文件
vi /etc/lilo.conf
加上:
image = /boot/bzImage
label = myLinux
read-only
root = /dev/hda* \\这里的*是指你LINUX所在分区
1添加源代码
到目录/usr/src/linux/kernel/sys.c中照着里面函数葫芦画瓢写一个你自己的系统调用函数
2添加链接
到目录/usr/src/linux/include/asm-i386/unistd.h中添加你自己的系统调用号
到目录/usr/src/linux/arch/i386/kernel/entry.S添加系统调用名
3重新编译内核
make menuconfig //配置你自己的内核
make dep
make modules_install
make clean
make bzImage
如果你的LINUX是比较新的GRUB引导的,重启选择你刚编译的内核项就行了.
如果是LILO引导的,继续
4 拷贝新内核到boot目录下
cp -a /usr/src/linux/arch/i386/boot/bzImage /boot
5 配置/etc/lilo.conf文件
vi /etc/lilo.conf
加上:
image = /boot/bzImage
label = myLinux
read-only
root = /dev/hda* \\这里的*是指你LINUX所在分区