The System Call Table
The
Linux kernel maintains a
system call table
, which is simply a set of
pointers to functions that implement the system calls. To see the
list of system calls implemented by your kernel, see
/usr/include/bits/syscall.h. The kernel stores
the system call table under a structure called
sys_call_table
, which you can find in the
arch/i386/kernel/entry.S file.
Tip
Linux kernels 2.5 or greater no longer export the
sys_call_table
structure. Prior to the 2.5
kernels, an LKM could instantly access the
sys_call_table
structure by declaring it as an
extern
variable:
extern void *sys_call_table[];
For more details, see the Section 7.2.5 later in this chapter.
Get Network Security Tools now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.