Show HN: I've updated my Linux System Call website and API
A developer has meticulously updated syscall.sh, offering an exhaustive online resource and API for Linux system calls across 27 architectures, complete with calling conventions and historical data. This project delivers a crucial, single source of truth for low-level Linux development, a topic often fragmented and difficult to navigate. The HN community appreciates the deep technical effort and the practical utility of such a comprehensive, programmatically accessible reference.
The Lowdown
The syscall.sh website and its accompanying API have received a significant update, positioning it as an indispensable, centralized reference for Linux system call information. This project consolidates complex, low-level kernel details into an easily accessible format, serving developers, security researchers, and anyone delving into the intricacies of the Linux kernel.
- Comprehensive Coverage: The site now features system call tables for 27 different architectures, ranging from x64 and ARM64 to more niche platforms like MIPS and SPARC, covering Linux kernel versions 3.3 to 7.3.
- Detailed Information: Each entry provides crucial data including system call numbers, argument definitions, and register usage for each specific architecture's calling convention.
- API Access: A robust API (e.g.,
api.syscall.sh) allows for programmatic querying of system call data, including kernel release-specific information and differences between versions. - Data Veracity: All data is directly parsed from the kernel source code itself, ensuring accuracy regarding the actual dispatched numbers and calling conventions used by the kernel.
- Historical Context: The resource tracks the
sinceandremoved_inversions for each syscall, offering a historical perspective on kernel evolution, with descriptions sourced from the Linux man pages project.
This updated tool dramatically simplifies the process of understanding and utilizing Linux system calls, providing a highly reliable and extensive database for in-depth system programming and analysis.
The Gossip
Counting Conundrums: Are All Syscalls Created Equal?
The discussion delved into the semantics of counting Linux system calls, with some users questioning if functionally similar calls (like `read` and `pread`) should inflate the total number. The creator acknowledged the challenge of algorithmically defining 'similarity' for potential new features. Others argued that each system call with a distinct kernel entry point, regardless of its functional overlap or similarity, is objectively distinct. The conversation also highlighted that `ioctl()` represents a single syscall number but encompasses thousands of subcommands, making a simple count of syscall numbers potentially misleading. Furthermore, the presence of numerous obsolete or suboptimal syscalls contributes to the high total, even if modern practices favor newer alternatives or `io_uring` subcommands.