syscall.sh - Linux-Systemcall-Tabellen für 27 Architekturen
Show HN: I've updated my Linux System Call website and API

syscall.sh ist eine umfassende Referenz für Linux-Systemaufrufe: Für 27 Architekturen – von x64 und arm64 bis hin zu exotischen wie m68k oder sparc – findest du alle Syscall-Nummern, Argumente und Register in übersichtlichen Tabellen. Jede Tabelle zeigt die vollständige Historie, inklusive wann ein Syscall eingeführt und wann er entfernt wurde. Die Daten stammen direkt aus dem Kernel-Quellcode und werden als JSON-Dateien pro Architektur bereitgestellt. Eine API ermöglicht den programmatischen Zugriff auf alle Informationen. Ideal für Entwickler, die kernelnahe Software schreiben, Reverse Engineering betreiben oder einfach die Aufrufkonventionen verschiedener Plattformen vergleichen möchten.
Alles auf dieser Seite wird direkt aus dem Kernel-Quellcode gelesen – das sind die Nummern, die der Kernel tatsächlich verwendet.
- ozgrakkurt
Ich würde außerdem empfehlen, Befehle wie diesen zu verwenden:
echo '#include <sys/syscall.h>' | gcc -E -dM -xc - | grep -i "read"
um die echten Werte auf deinem PC zu ermitteln und sicherzugehen.
LLMs haben mir mehrmals falsche Zahlen oder Konstantendefinitionen gegeben, aber sie dazu zu bringen, einen solchen Befehl zu generieren und es selbst zu sehen, funktioniert jedes Mal.
Außerdem hat die Chromium-Dokumentation eine Tabelle:
https://www.chromium.org/chromium-os/developer-library/refer...
Es wäre sehr nützlich, wenn diese Website direkt auf die Syscall-Nummer verlinken würde.
- bkallus
Auf x86_64 und x32 geht die Syscall-Nummer in eax, nicht in rax. Die oberen 32 Bits von rax werden ignoriert und können beliebig sein.
- guitmz
Ich habe auch eine CLI zum Nachschlagen der Syscall-API erstellt, als ich die Website ursprünglich veröffentlicht habe. Ich denke, ich kann den Code aufräumen und auch öffentlich machen. Sie verwendet einen eingebetteten Datensatz, sodass nicht ständig der API-Endpunkt abgefragt werden muss.
- DustinBrett
Diese Website bringt aus irgendeinem Grund meine Grafik durcheinander.
- wg0
Das ist wirklich eine großartige Ressource, wusste nichts davon. Aber eine Frage, die nichts mit der obigen Website zu tun hat – warum variieren die Syscalls je nach Architektur, wenn die Linux-API dieselbe ist?
Oder verwechsle ich das mit der C-Standardbibliothek/POSIX und nehme an, dass es überall gleich sein sollte?