conv.

All stories
TechQuiet 8d · day 9

Developer releases updated Linux syscall reference with 27 architectures

guitmz updates syscall.sh with kernel selector, mobile improvements, and expanded architecture coverage from Linux 3.3 to 7.3.

What to know

  • guitmz updated syscall.sh after six years with 27 architectures, kernel selector, descriptions, and JSON API; data sourced directly from kernel source code.
  • The site tracks syscall history across Linux versions 3.3–7.3, marking when calls were added or removed, and documents architecture-specific calling conventions.
  • Discussion surfaces practical concerns: developers use local GCC verification to check syscall numbers, questions arise about cross-architecture variation, and technical details emerge about register allocation on specific platforms.
most voices

Resource is valuable; commend its structure and accuracy source from kernel code.

  • “This is really great resource, didn't know about it.”

    wg0 · Hacker News ↗
many voices

Recommend local verification against LLM outputs and other references to catch errors.

  • “I had LLMs give wrong numbers or constant definitions several times but getting it to generate a command like this and seeing it for myself works every time.”

    ozgrakkurt · Hacker News ↗
some voices

Linux syscall design could be modernized for contemporary programming languages.

  • “I've long thought that the kernel should duplicate every existing syscall that takes a null–terminated string by pointer with an otherwise identical syscall that takes the string by pointer, capacity, and length instead.”

    db48x · Hacker News ↗

guitmz Developer

How it unfolded 3 developments, newest first · click a bar or a number to jump articlespostscomments

Peak 4 pieces in two hours at Nov 2, 3 AM; 13 pieces over 9 days (2 articles · 2 posts · 9 comments) Nov 2, 3 AM — 4 pieces · 2 articles · 2 posts — Newswires 2, Hacker News 1, Mastodon 1Nov 2, 5 AM — 2 pieces · 2 comments — Hacker News 2Nov 2, 7 AM — 2 pieces · 2 comments — Hacker News 2Nov 2, 9 AM — 3 pieces · 3 comments — Hacker News 3Nov 2, 11 AM — quietNov 2, 1 PM — quietNov 2, 3 PM — quietNov 2, 5 PM — quietNov 2, 7 PM — 1 piece · 1 comment — Hacker News 1Nov 2, 9 PM — 1 piece · 1 comment — Hacker News 1Nov 2, 11 PM — quietNov 3, 1 AM — quietNov 3, 3 AM — quietNov 3, 5 AM — quietNov 3, 7 AM — quietNov 3, 9 AM — quietNov 3, 11 AM — quietNov 3, 1 PM — quietNov 3, 3 PM — quietNov 3, 5 PM — quietNov 3, 7 PM — quietNov 3, 9 PM — quietNov 3, 11 PM — quietNov 4, 1 AM — quietNov 4, 3 AM — quietNov 4, 5 AM — quietNov 4, 7 AM — quietNov 4, 9 AM — quietNov 4, 11 AM — quietNov 4, 1 PM — quietNov 4, 3 PM — quietNov 4, 5 PM — quietNov 4, 7 PM — quietNov 4, 9 PM — quietNov 4, 11 PM — quietNov 5, 1 AM — quietNov 5, 3 AM — quietNov 5, 5 AM — quietNov 5, 7 AM — quietNov 5, 9 AM — quietNov 5, 11 AM — quietNov 5, 1 PM — quietNov 5, 3 PM — quietNov 5, 5 PM — quietNov 5, 7 PM — quietNov 5, 9 PM — quietNov 5, 11 PM — quietNov 6, 1 AM — quietNov 6, 3 AM — quietNov 6, 5 AM — quietNov 6, 7 AM — quietNov 6, 9 AM — quietNov 6, 11 AM — quietNov 6, 1 PM — quietNov 6, 3 PM — quietNov 6, 5 PM — quietNov 6, 7 PM — quietNov 6, 9 PM — quietNov 6, 11 PM — quietNov 7, 1 AM — quietNov 7, 3 AM — quietNov 7, 5 AM — quietNov 7, 7 AM — quietNov 7, 9 AM — quietNov 7, 11 AM — quietNov 7, 1 PM — quietNov 7, 3 PM — quietNov 7, 5 PM — quietNov 7, 7 PM — quietNov 7, 9 PM — quietNov 7, 11 PM — quietNov 8, 1 AM — quietNov 8, 3 AM — quietNov 8, 5 AM — quietNov 8, 7 AM — quietNov 8, 9 AM — quietNov 8, 11 AM — quietNov 8, 1 PM — quietNov 8, 3 PM — quietNov 8, 5 PM — quietNov 8, 7 PM — quietNov 8, 9 PM — quietNov 8, 11 PM — quietNov 9, 1 AM — quietNov 9, 3 AM — quietNov 9, 5 AM — quietNov 9, 7 AM — quietNov 9, 9 AM — quietNov 9, 11 AM — quietNov 9, 1 PM — quietNov 9, 3 PM — quietNov 9, 5 PM — quietNov 9, 7 PM — quietNov 9, 9 PM — quietNov 9, 11 PM — quietYesterday, 1 AM — quietYesterday, 3 AM — quietYesterday, 5 AM — quietYesterday, 7 AM — quietYesterday, 9 AM — quietYesterday, 11 AM — quietYesterday, 1 PM — quietYesterday, 3 PM — quietYesterday, 5 PM — quietYesterday, 7 PM — quietYesterday, 9 PM — quietYesterday, 11 PM — quietToday, 1 AM — quietToday, 3 AM — quiet 1–3
Nov 3Nov 4Nov 5Nov 6Nov 7Nov 8Nov 9now · 5:42 AM ET
  1. 3

    Technical questions emerge about syscall design and data freshness

    Developers raise questions about why syscalls vary across architectures despite API standardization, discuss build process and staleness risk, and note that on x86_64/x32 the syscall number resides in eax not rax.

    “I've long thought that the kernel should duplicate every existing syscall that takes a null–terminated string by pointer with an otherwise identical syscall that takes the string by pointer, capacity, and length instead.”
    — db48x, HN commenter · source
    • It’s a side issue, but I’ve long thought that the kernel should duplicate every existing syscall that takes a null–terminated string by pointer with an otherwise identical syscall that takes the string by pointer, capacity, and length instead. It would be a huge boon to programs written in modern languages. I keep meaning to search the kernel…

      db48xHacker News8d agoview on Hacker News ↗
    2 more of the top 3 · 3 posts in this stretch
    • Why also capacity?What I think would make sense is a change to the C API where the error code is an out parameter and not that ugly thread local errno. But I guess that's not big enough of an issue for people/languages that use libc as system call interface.

      panziHacker News8d agoview on Hacker News ↗
    • Modern languages .. or more specifically .. modern compilers for those languages .. can surely sustain a pointer, capacity and length wrap to pointer until null ..

      MomsAVoxellHacker News8d agoview on Hacker News ↗
    all of them →
  2. 2

    Developers discuss verification methods and architecture design

    Comments surface practical verification techniques and design considerations: ozgrakkurt recommends using GCC to verify syscall numbers locally against LLM outputs; db48x proposes modernizing syscall interfaces for languages with length-aware strings; wg0 asks why syscalls vary by architecture if the Linux API is standardized.

    “I also made a CLI for consulting the syscall API when I originally released the website. I think I can tidy up the code and make it public too.”
    — guitmz, Developer · source
    • Would also recommend using commands like:echo '#include <sys/syscall.h>' | gcc -E -dM -xc - | grep -i "read"To get the real values on your PC to make sure.I had LLMs give wrong numbers or constant definitions several times but getting it to generate a command like this and seeing it for myself works every time.Also chromium docs has a…

      ozgrakkurtHacker News8d agoview on Hacker News ↗
    2 more of the top 3 · 5 posts in this stretch
    • Somewhat related - I am working on a dual Pentium III retro build (first retro build) and completely forgot that this would be 32-bit and won't have niceties like SSE2. Having some fun going down the rabbit hole of IDE, SCSI interfaces and AGP graphics. Can anyone recommend some OS installations to play with? So far I am thinking Haiku, ReactOS…

      whalesaladHacker News8d agoview on Hacker News ↗
    • This is really great resource, didn't know about it. But one question not related to the website above - why the syscalls vary per architecture if the linux API is the same?Or is it I am confusing it with the C standard library/POSIX and assuming that it should be the same everywhere?

      wg0Hacker News8d agoview on Hacker News ↗
    all of them →
  3. 1

    guitmz releases updated syscall.sh with expanded features

    The updated site now covers 27 architectures (Linux 3.3 to 7.3), adds a kernel selector, syscall descriptions, and improved mobile support. Data is pulled directly from kernel source code, with architecture-specific calling conventions documented.

    “I first released those in back in 2020 and now I finally added more architectures, Kernel selector, syscall descriptions and a few other niceties.”
    — guitmz
    • On x86_64 and x32, the syscall number goes in eax, not rax. The upper 32 bits of rax are ignored and can be anything.

      bkallusHacker News8d agoview on Hacker News ↗
  4. background

    guitmz releases original syscall.sh — The developer first released the Linux syscall reference website and API in 2020.

Also covered reported alongside — the timeline has no entry for these yet

  1. first by HN Best, 9d ago · also HN Frontpage

What people are saying 1 voices from 1 site · best of 9 · verbatim

Still unanswered
  • Why do syscalls vary per architecture if the Linux API is meant to be the same?
  • How is the dataset built and how often can it become stale?