You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux系统调用汇编实现细节、特殊返回值规则及ABI相关权威文档查询

作为经常和系统调用、底层ABIs打交道的开发者,我整理了几个能解决你需求的优质资源,帮你搞清楚这些细粒度的实现规则:

Linux汇编层面系统调用的细粒度参考
  • 架构专属的系统调用规范文档:比如针对x86_64平台,有社区和官方整理的详细规范,明确说明系统调用的寄存器使用规则(rax存系统调用号,rdi/rsi/rdx/r10/r8/r9依次传递参数,返回值存在rax中),以及错误处理逻辑——这里纠正你对mmap的误解:底层系统调用出错时,返回的是负的错误码(比如-ENOMEM),而libc的mmap包装函数会把这个值转换成MAP_FAILED(即(void*)-1),并将errno设置为对应的正数,并不是NULL - errno_code。
  • 《x86 Assembly Language Programming with Linux》书籍:这本书有专门章节手把手教你用汇编调用Linux系统调用,覆盖了参数传递、返回值解析、特殊系统调用(比如mmap、clone)的细节,非常适合入门底层调用。
  • man手册的NOTES section:很多系统调用的man页(比如man 2 mmap)在NOTES部分会明确区分底层系统调用和libc包装函数的行为差异,包括返回值、错误处理的细节,这是最容易获取的官方细节来源。
Windows ABI的权威资源
  • 微软官方《x64 Software Conventions》文档:这是Windows x64平台ABI的官方权威指南,详细说明了用户态函数调用约定、寄存器使用、栈布局,以及系统服务(Windows对系统调用的称呼)的调用机制、参数传递规则。
  • 《Windows Internals》系列书籍:虽然偏向内核原理,但里面有大量关于Windows系统服务调用流程、ABI细节的实战讲解,比官方文档更通俗易懂,能帮你理解系统调用的底层逻辑。
  • 微软《Calling Conventions》官方文档:针对x86和x64平台分别讲解了不同的调用约定,包括用户态到内核态的系统服务调用规则,是入门Windows ABI的必备参考。

内容的提问来源于stack exchange,提问作者Daniil Zuev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 12:24:10