2007年2月8日 星期四

新增Linux kernel System Call的步驟

新增Linux kernel System Call的步驟


執行環境 :Fedora core 6

complier kernel版本 :2.6.19

新增步驟 : (欲新增的System call為”report”)

一、在linux source code的部份(/usr/src/linux/)

1.arch/i386/kernel/syscall_table.S的最後面加上要新增的system call名稱
2.include/asm-i386/unistd.h裡面加上自己的define
3.include/linux/syscalls.h裡面加上函式的定義
4.kernel/report.c裡面為system call的實作
5.kernel/Makefile中在 obj-y 後面加上自己新增要編譯的檔report.c

二、修改一般程式include進來的檔(/usr/include/)
1.asm/unistd.h一樣加上自己的define
2.bits/syscall.h最後面加上自己的define

三、重新compile kernel
#make
#make install

四、測試程式 : test.c (Fedora core 6跟之前版本的用法不同)


五、測試
#gcc test.c
#./a.out
#dmesg tail -n 5

沒有留言: