Présentation du service

Le site syscall.sh expose, pour chaque architecture supportée par le noyau Linux, la liste complète des appels système sous forme de fichiers JSON. Chaque architecture possède un répertoire dédié (/x64/, /arm/, etc.) contenant un fichier syscalls.json qui recense chaque appel, son numéro, ses arguments et la version du noyau où il apparaît ou disparaît.

Architecture des données

Le générateur parcourt les tables d’appels système et les macros SYSCALL_DEFINE présentes dans les sources du noyau pour chaque version principale analysée. Il extrait le numéro d’appel (NR), les six emplacements d’arguments (ARG0 à ARG5) ainsi que l’instruction d’entrée du noyau. Deux champs temporels, since et removed_in, indiquent respectivement la première version où l’appel est présent et, le cas échéant, la version où il a été retiré. Les entrées supprimées restent visibles lorsqu’on active le filtre « all, with removed » dans le sélecteur de version.

Fonctionnement de l’API

curl https://api.syscall.sh/v2/syscalls/x64/read

L’API REST fournit les mêmes informations que les fichiers JSON, avec la possibilité de filtrer par version de noyau ou par architecture. La documentation décrit les points d’accès pour récupérer les différences entre deux releases, obtenir la liste complète d’une architecture ou interroger un appel spécifique. Les réponses sont structurées de façon identique aux fichiers statiques, garantissant une cohérence entre le site web et l’interface programmable.

Limites et perspectives

Le jeu de données reflète uniquement les appels définis dans les sources du noyau « mainline » analysées par le générateur. Les patches externes ou les variantes de noyau non incluses dans le flux principal ne sont pas représentés. De plus, les descriptions courtes proviennent du projet Linux man pages, tandis que les entrées liées à io_uring sont extraites de liburing. Cette dépendance à des sources tierces implique que la précision des résumés textuels dépend de la mise à jour de ces projets. Malgré ces contraintes, le service offre une visibilité granulaire sur l’évolution des appels système, utile pour les développeurs, les chercheurs en sécurité et les ingénieurs système.