
CPUアーキテクチャ別にLinuxシステムコール一覧を集約したリファレンスサイト
syscall.shは、27のアーキテクチャ向けのLinuxシステムコール表を掲載するサイトである。番号・引数・レジスタを、Linux 3.3から7.3までの範囲で提供している。各アーキテクチャのデータはJSONファイルやAPIで取得できる。
syscall.shは、CPUアーキテクチャごとにLinuxのシステムコール表をまとめたリファレンスサイトである。掲載対象は27のアーキテクチャで、システムコールの番号、引数、レジスタを、Linux 3.3から7.3までの範囲で示している。
データの取得方法
各アーキテクチャのページにはカーネルバージョンを選択するセレクターがある。ダウンロードできるJSONファイルには、各システムコールが登場したリリース(since)と削除されたリリース(removed_in)が記録される。
JSONは/<arch>/syscalls.jsonの形式で公開されており、例として/x64/syscalls.jsonがある。APIはhttps://api.syscall.sh/v2/syscalls/x64/read`で利用できる。セレクターで「all, with removed」を選ぶと、削除されたシステムコールに削除されたリリースが示される。
データの生成方法
データはカーネルのソースコードから読み取られるとされている。生成器は、スキャンした各メインラインリリースのシステムコールテーブルとSYSCALL_DEFINEマクロをたどる。その過程で、各アーキテクチャの呼び出し規約と、カーネルに入る命令も記録する。
- sinceがスキャン対象の最初のリリースと一致するシステムコールは、そのリリースの時点で既に存在していたことを示す。
- 短い説明文はLinux man pagesプロジェクトから取得している。io_uringの説明文はliburingから取得している。
- データが変更されると、サイトはシステムコールAPIから再構築される。
アーキテクチャ別の件数
掲載されている件数の一部は以下のとおりである。
| アーキテクチャ | システムコール数 | 起点 (since) |
|---|---|---|
| x64 (x86_64) | 369 | 3.3 |
| x86 (i386) | 441 | 3.3 |
| ia32 | 439 | 3.3 |
| arm64 (AArch64) | 326 | 3.7 |
| arm (ARM EABI) | 426 | 4.10 |
| riscv64 | 327 | 4.15 |
この記事は元記事の事実のみに基づいて自動生成されました。
出典
- 媒体名: syscall.sh
- 元記事タイトル: Linux System Call Tables by Architecture · syscall.sh
- URL: https://syscall.sh/
- (Linux man pages project、liburing) の報道による