Linux内核模块编程全解析
系统调用背后的机制
系统调用 syscall() 以下的部分,无论采用何种机制将控制权传递给内核(如 int 0x80 、 sysenter/sysexit 或 syscall/sysret ),都属于内核的内部实现,开发者不应直接访问。不过,追踪这个过程有助于理解从库函数调用到系统调用,再到内核系统调用表 sys_call_table 的完整路径。
以下是使用 int 0x80 的汇编代码示例:
; int80.s
section .text
global _start
_start:
mov edx,len
mov ecx,msg
mov ebx,1 ; file descriptor (stdout)
mov eax,4 ; system call number (sys_write)
int 0x80 ; call kernel
mov eax,1 ; system call number (sys_exit)
int 0x80 ; call kernel
section .data
msg db 'Hello, w
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



