syscall.sh - Полные таблицы системных вызовов Linux для 27 архитектур

Show HN: I've updated my Linux System Call website and API

syscall.sh - Полные таблицы системных вызовов Linux для 27 архитектур

syscall.sh — это обновлённый сайт и API, где собраны все таблицы системных вызовов Linux в одном месте. Для 27 архитектур, от x64 до экзотических вроде m68k и sparc, вы найдёте номера вызовов, аргументы, регистры и историю появления каждого вызова в ядрах от 3.3 до 7.3. Данные берутся напрямую из исходников ядра, поэтому это реальные номера, которые использует ядро. Каждая таблица доступна как JSON-файл, а API позволяет получать информацию о вызовах для любого релиза ядра. Проект будет полезен разработчикам низкоуровневого ПО, исследователям безопасности и всем, кто работает с системными вызовами.

Каждая таблица архитектуры с полной историей появления и удаления системных вызовов — это ещё и обычный JSON-файл, который можно использовать где угодно.
  1. ozgrakkurt

    Также рекомендую использовать такие команды:

    echo '#include <sys/syscall.h>' | gcc -E -dM -xc - | grep -i "read"

    Чтобы получить реальные значения на вашем ПК и убедиться.

    Несколько раз LLM выдавали мне неправильные числа или определения констант, но если заставить их сгенерировать такую команду и увидеть всё самому, это работает каждый раз.

    Кроме того, в документации chromium есть таблица:

    https://www.chromium.org/chromium-os/developer-library/refer...

    Было бы очень полезно, если бы этот сайт напрямую ссылался на номер системного вызова.

  2. bkallus

    На x86_64 и x32 номер системного вызова передаётся в eax, а не в rax. Старшие 32 бита rax игнорируются и могут быть любыми.

  3. guitmz

    Я также сделал CLI для просмотра API системных вызовов, когда изначально выпустил сайт. Думаю, я могу привести код в порядок и тоже сделать его публичным. Он использует встроенный набор данных, так что не нужно постоянно обращаться к конечной точке API.

  4. DustinBrett

    Этот сайт почему-то ломает мне графику.

  5. wg0

    Это действительно отличный ресурс, не знал о нём. Но один вопрос, не связанный с сайтом выше — почему системные вызовы различаются для разных архитектур, если API Linux один и тот же?

    Или я путаю это со стандартной библиотекой C/POSIX и предполагаю, что так должно быть везде?

Ещё за этот день

2026-11-02