system call 추가 방법
1. vi /usr/src/linux/arch/i386/kernel/entry.S
: system call 번호를 추가
.long SYMBOL_NAME(sys_mysyscall) // 240
2. vi /usr/src/linux/include/asm-i386/unistd.h
#define __NR_mysyscall 240
3. vi /usr/src/linux/kernel/test.c
#include <linux/kernel.h>
asmlinkage int sys_mysyscall()
{
printk("Hello linux\n");
return 2007;
}
4. vi /usr/src/linux/kernel/Makefile
obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \
module.o exit.o itimer.o info.o time.o softirq.o resource.o \
sysctl.o acct.o capability.o ptrace.o timer.o user.o \
signal.o sys.o kmod.o context.o test.o
5. vi app.c
#include <asm-i386/unistd.h>
#include <errno.h>
_syscall0( int, mysyscall );
int main()
{
int i;
i = mysyscall();
printf("%d\n", i );
return 0;
}
6. cc -I/usr/src/linux/include app.c
7. 커널 컴파일: cd /usr/src/linux
8.
make mrproper
cp /boot/config-2.4.20-8 .config
make oldconfig
make dep
make bzImage
make modules
make modules_install
make install
reboot
출처 : http://blog.naver.com/jjhbest1/80038198060

Comments List
以