2、Linux内核模块编程全解析

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值