syscall.sh: Linux Syscall Tables for 27 Architectures

Original: Show HN: I've updated my Linux System Call website and API

Why This Matters

A single authoritative source for low-level Linux ABI details across architectures saves significant research time for systems programmers and security researchers.

syscall.sh has updated its Linux system call reference site and API, covering 27 CPU architectures from Linux 3.3 to 7.3, with per-architecture calling conventions, historical version tracking, and a JSON API.

syscall.sh is a reference site that aggregates Linux system call tables across 27 CPU architectures—from x64 and ARM64 to obscure targets like Tensilica Xtensa, DEC Alpha, and HP PA-RISC. Each table lists syscall numbers, argument registers, and the instruction used to enter the kernel, all read directly from kernel source rather than secondary documentation.

The site now tracks syscall history from Linux 3.3 through 7.3. Each architecture page includes a kernel version selector, letting users see exactly which syscalls existed in a given release. Removed entries aren't deleted—they stay visible and are tagged with the release that dropped them.

All data is available as plain JSON at /<arch>/syscalls.json, and a REST API (api.syscall.sh/v2) supports per-release queries and diffs between kernel versions. The generator walks SYSCALL_DEFINE macros and architecture-specific syscall tables in mainline kernel releases, so numbers reflect what the kernel actually dispatches—not what man pages say.

Syscall counts vary widely: x86 (i386) has 441, arm64 has 326, and LoongArch64 has 323. Calling conventions are fully documented per architecture, including which registers carry the syscall number, arguments, and return value.

Source

syscall.sh — Read original →