syscall
系统调用(system call)是用户空间(user space)与内核空间(kernel space)通信的桥梁,其中应用层 glibc/uclibc库 等的实现,就是对系统调用进行封装,所以想从应用层向内核层深入研究,必须先对系统调用有一定了解。
base linux-2.6.34
零参数系统调用
内核层添加系统调用
系统调用入口
$ vim arch/x86/include/asm/unistd_64.h #define __NR_foo 300 __SYSCALL(__NR_foo, sys_foo)系统调用实现
$ vim kernel/sys.c #include <linux/syscalls.h> SYSCALL_DEFINE0(foo) { printk("%s: syscall test\n", __func__); return 0; }
应用层调用系统调用
base linux-5.4
零参数系统调用
内核层添加系统调用
系统调用入口
系统调用实现
应用层调用系统调用
整型参数系统调用
内核层添加系统调用
系统调用入口
系统调用实现
应用层调用系统调用
字符串参数系统调用
内核层添加系统调用
系统调用入口
系统调用实现
应用层调用系统调用
数组参数系统调用
内核层添加系统调用
系统调用入口
系统调用实现
应用层调用系统调用
指针参数系统调用
内核层添加系统调用
系统调用入口
系统调用实现
应用层调用系统调用
Last updated
Was this helpful?