[Kernel] system call 추가 방법

Linux/일반 | 2007/06/11 10:37 | adioshun

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

2007/06/11 10:37 2007/06/11 10:37
Trackback address :: http://4ellene.net/tt/trackback/1168

Comments List

  1. nude cucumber 2008/05/24 01:05

Write a comment.

[로그인][오픈아이디란?]