為了和用戶空間上的進程進行交互,內核提供的提供的一組接口。
應用程序通過這組接口訪問硬件和其他操作系統資源。
完成對硬件和資源訪問的控制。安全、可靠,多任務、虛擬必須
硬件設備的抽象(提供設備的獨立性)。
異常,陷入,系統調用 : 用戶空間進入內核空間的三種方式
sys_write會根據系統write輸出的文件,調用相應struct file ,operations中的write方法。
以kernel 2.6.11為例 long my_syscall(int i);
下載kernel 2.6的內核源碼,切換到根目錄 在/arch/i386/kernel/entry.S中sys_call_table最後添加 .long my_syscall 在/ include/asm-i386/unistd.h中的最後添加系統調用編號
#include
#include
#define __NR_my_syscall 338
_syscall1(long, my_syscall, int, i)
Int main(){
Int a = my_syscall(5);
}
編譯內核,重新啟動