syscall.sh 项目作为一个全面的 Linux 系统调用表仓库,整合了 27 种不同硬件架构的数据。对于开发者和系统工程师来说,了解内核如何处理请求——特别是每种架构独特的系统调用编号、所需的参数以及使用的寄存器——是一项复杂的任务。该平台通过提供这些表的统一视图简化了这一过程,涵盖的架构从常见的 x86_64 和 arm64 到特殊的系统如 LoongArch、RISC-V,甚至包括 Alpha 和 M68K 等遗留架构。

该项目提供这些系统调用表的源衍生仓库,这些表传统上记录在手册页中。
与许多可能依赖手动输入或过时文档的在线资源不同,syscall.sh 直接从 Linux 内核源代码中获取数据。该项目使用一个生成器,遍历各个主线版本中的内核系统调用表和 `SYSCALL_DEFINE` 宏。这确保了提供的编号是内核实际分发的精确值。此外,该网站还捕捉了每种架构特定的调用约定,详细说明了精确的指令(如 `syscall`、`int 0x80` 或 `svc #0`)以及用于传递参数和接收返回值的特定寄存器(如 `rax`、`rdi` 或 `x0`)。
该项目的一个关键功能是能够追踪系统调用的生命周期。每个条目都包含一个“since”日期,指示该调用首次出现的内核版本,以及对于已弃用的调用,“removed_in”日期。虽然该网站提供 Web 界面用于浏览这些表,但它还提供 JSON API 用于程序化访问。这允许开发者直接将特定细节(例如 `x64` 架构上 `read` 调用的参数)查询到他们自己的工具或工作流中。然而,项目指出一个特定的限制: “since”日期仅反映生成器扫描到的第一个版本;如果一个系统调用在最早扫描的版本之前就已存在,其真实的起源仍是未知的。