TL;DR
Get the latest gadgets delivered free with Prime
- Fast, free delivery on millions of items
- Prime Video, Amazon Music and more included
- Member-only deals all year
The developer behind syscall.sh has presented an updated website and API that gathers Linux system-call tables for 27 architectures. The site provides syscall numbers, argument and register details, kernel-version history and downloadable JSON; the project says its data is generated from Linux kernel source.
A developer has presented an updated Linux system-call website and API that brings tables for 27 architectures together with syscall numbers, argument registers and kernel-version history. The project, syscall.sh, also provides machine-readable JSON, offering developers and researchers a way to look up how Linux system calls differ across processor architectures and releases.
The site lists syscall counts for each supported architecture and links each architecture to its table. Its listed examples include 369 x86_64 syscalls, 441 for 32-bit x86 and 327 for 64-bit RISC-V. The source describes coverage spanning Linux 3.3 to 7.3, while the earliest release scanned varies by architecture. The displayed counts are architecture-specific observations, not a measure of change between releases.
Each table records syscall numbers and argument details, along with the registers and instruction used to enter the kernel. For example, the x86_64 entry identifies the syscall instruction and registers used for the syscall number, return value and arguments. The project also provides a JSON file for each architecture, such as /x64/syscalls.json, and an API endpoint illustrated by /v2/syscalls/x64/read.
According to the project description, users can select a kernel release and inspect differences across releases. Entries record when a syscall first appeared and, where applicable, when it was removed; removed calls remain available through an “all, with removed” view. The project says it generates its tables by reading syscall tables and SYSCALL_DEFINE macros in scanned mainline kernel releases. Short descriptions come from the Linux man-pages project, with io_uring descriptions from liburing.
One Lookup Across Linux Architectures
Linux system calls provide the interface between programs and the kernel, but their numbers and calling conventions vary across architectures. A consolidated reference can help systems programmers, security researchers and maintainers check those differences without relying on a single architecture’s documentation. The inclusion of both register conventions and entry instructions makes the tables relevant to people working close to the kernel interface.
The historical records add a separate practical use: a developer can check whether a syscall existed in a particular kernel release or was later removed. The JSON downloads and API also make the information available to scripts and other tools, rather than limiting it to manual browsing. The project’s description says its data is rebuilt when the underlying data changes, though it does not specify a release schedule or independent validation process.
Popular right now

Vitamix 5200 Professional-Grade Blender, 64 oz. Container, Black

Breville Barista Express Espresso Machine, Black Sesame

LG 85-Inch QNED84B Mini LED 4K Smart TV (2026)
As an affiliate, we earn on qualifying purchases.
How the Tables Track Kernel Releases
The project presents its database as a cross-architecture reference, not as a new Linux kernel feature. Linux supports multiple processor architectures, and a syscall’s identifier, argument registers and entry instruction can differ between them. The site organizes those details by architecture and provides per-architecture JSON alongside the web tables.
Its version labels need to be read with care: the stated coverage runs from Linux 3.3 through 7.3, but an architecture’s “since” label marks the first release scanned for that architecture, not necessarily the syscall’s original introduction. The project explicitly warns that entries present in that earliest scanned release may be older. That distinction matters when using the history to make claims about when a syscall first entered Linux.
“Every Linux syscall table in one place, grouped by architecture.”
— The syscall.sh project description
Coverage Limits and Data Checks
The source material does not give the date of the Show HN post, the identity of the developer, or details of changes made in this update compared with an earlier version of the site. It also does not describe testing or independent review of the generated tables. The project says the data is read from kernel source, but the supplied information does not document the generator’s implementation or how it handles discrepancies in source files.
The stated range of Linux 3.3 to 7.3 does not mean every architecture has entries starting at Linux 3.3, and the first scanned release is not necessarily the historical introduction date of each syscall. The materials also do not specify how often the site is rebuilt, whether the API has stability or availability commitments, or whether its coverage includes non-mainline kernel variants.
Using the API and Release History
Readers can consult the architecture pages, select a kernel release, or download the corresponding JSON file. The project’s example API request retrieves information for the x86_64 “read” syscall; its API documentation is described as covering other queries, including kernel-release lookups and diffs. The source material does not announce a future release date or a planned expansion beyond the listed 27 architectures.
For users relying on the data in production tools or research, the next step is to check the project’s API documentation and compare relevant entries with the kernel release and architecture they use. The project says its site is rebuilt when data changes, but its update cadence and any forthcoming changes remain unspecified.
Key Questions
What is syscall.sh?
syscall.sh is a website and API that lists Linux system calls by architecture, with syscall numbers, argument details, calling conventions and release history.
Which architectures does the site cover?
The project lists 27 architectures, including x86_64, 32-bit x86, ARM, AArch64, RISC-V, LoongArch, PowerPC, MIPS and IBM Z.
Can users access the data without browsing the site?
Yes. The project provides a JSON file for each architecture and an API. Its example endpoint requests data for the x86_64 read syscall.
Does a syscall’s ‘since’ field always show when it was introduced?
No. The project warns that if an entry’s “since” release matches the first release scanned for its architecture, the syscall may have existed earlier.
How does the project say it obtains syscall data?
The project says its generator reads syscall tables and SYSCALL_DEFINE macros from scanned mainline Linux releases. Short descriptions are sourced from the Linux man-pages project, and io_uring descriptions from liburing.
Source: syscall.sh
