Linux kernel 如何在内核2.6.26中实现一个简单的系统调用?

Linux kernel 如何在内核2.6.26中实现一个简单的系统调用?,linux-kernel,system-calls,Linux Kernel,System Calls,我在这里问了很多问题,在另一个网站上我仍然有以下问题 我正在实现一个简单的系统调用,为此我更改了以下文件 1. /arch/x86/kernel/syscal_table_32_S 2. /include/asm-x86/unistd_32.h 3. /include/linux/syscalls.h 我对第二个文件有疑问,因为我不确定要修改的文件(/include/asm-x86/unistd_32.h)或任何其他文件,因为我知道包含系统调用号的文件,我们必须添加sys调用和最后一个数

我在这里问了很多问题,在另一个网站上我仍然有以下问题

我正在实现一个简单的系统调用,为此我更改了以下文件

 1. /arch/x86/kernel/syscal_table_32_S
 2. /include/asm-x86/unistd_32.h
 3. /include/linux/syscalls.h
我对第二个文件有疑问,因为我不确定要修改的文件(/include/asm-x86/unistd_32.h)或任何其他文件,因为我知道包含系统调用号的文件,我们必须添加sys调用和最后一个数字+1,这里的疑问是该文件(
/include/asm-x86/unistd_32.h)
不包含限制行(
#define NR_syscalls
)但还有另一个文件(
/include/asm sh/unistd_32.h
),其中包含系统调用号和限制行


因此,请用一个简单的例子告诉我要修改哪些文件。

我在linux内核3.2上实现了新的系统调用,并修改了以下文件:

1. /arch/x86/kernel/syscal_table_32.S
2. /arch/x86/kernel/syscal_table_64.S
3. /arch/x86/include/asm/unistd_32.h - contains NR_syscalls for ia32
4. /arch/x86/include/asm/unistd_64.h
5. /arch/x86/include/asm/<new_file_with_syscall>
6. /arch/x86/include/asm/Makefile
1./arch/x86/kernel/syscal\u table\u 32.S
2./arch/x86/kernel/syscal_table_64.S
3./arch/x86/include/asm/unistd_32.h-包含ia32的NR_系统调用
4./arch/x86/include/asm/unistd_64.h
5./arch/x86/include/asm/
6./arch/x86/include/asm/Makefile
我使用
syscall(系统调用的数量)
函数调用的系统调用本身