Syscall.sh cập nhật: Tra cứu bảng system call Linux cho 27 kiến trúc kèm API
Dự án syscall.sh vừa ra bản cập nhật lớn, bổ sung bảng system call cho 27 kiến trúc từ x64, ARM64 đến LoongArch, bộ chọn phiên bản kernel, mô tả từng syscall và API công khai. Toàn bộ dữ liệu đều được sinh trực tiếp từ mã nguồn kernel nên phản ánh đúng những gì kernel thực sự dispatch.

Syscall.sh cập nhật: Bảng system call Linux cho 27 kiến trúc và API công khai
Công cụ tra cứu system call Linux syscall.sh vừa được tác giả cập nhật phiên bản mới, bổ sung hàng loạt kiến trúc, bộ chọn phiên bản kernel và mô tả chi tiết cho từng syscall. Dữ liệu được sinh trực tiếp từ mã nguồn kernel thay vì chép tay, giúp các lập trình viên hệ thống có nguồn tham chiếu đáng tin cậy hơn.
Dự án ra mắt lần đầu năm 2020, nay được làm lại đáng kể cả về dữ liệu lẫn giao diện, kèm một REST API công khai tại api.syscall.sh.
27 kiến trúc trong một trang
Điểm nhấn của bản cập nhật là độ phủ kiến trúc. Thay vì chỉ tập trung vào x86 và x86_64 như nhiều tài liệu phổ biến, syscall.sh tập hợp bảng system call của 27 kiến trúc, mỗi bảng kèm số hiệu syscall, danh sách tham số và thanh ghi tương ứng.
- x64 (x86_64): 369 syscall, có từ Linux 3.3
- x86 (i386, 32 bit): 441 syscall
- arm64 (AArch64): 326 syscall, từ Linux 3.7
- riscv64: 327 syscall, từ Linux 4.15
- loongarch64: 323 syscall, từ Linux 5.19
- ppc64, s390x, mips64, alpha, sparc64 cùng nhiều kiến trúc ít phổ biến khác như csky, hexagon, nios2, openrisc, xtensa
Với người làm nhúng hoặc lập trình hệ thống trên các nền tảng không phổ thông, đây là điểm cộng đáng kể: trước đây muốn biết số hiệu syscall trên một kiến trúc như m68k hay parisc, lập trình viên thường phải mở thẳng file header trong cây mã nguồn kernel.
Bộ chọn phiên bản kernel và theo dõi thay đổi
Mỗi trang kiến trúc nay có bộ chọn phiên bản kernel, cho phép xem syscall nào tồn tại ở từng bản phát hành. Dữ liệu quét trải từ Linux 3.3 đến 7.3.
Các mục đã bị gỡ cũng không biến mất khỏi giao diện: chọn chế độ "all, with removed" sẽ thấy mỗi syscall bị loại bỏ được đánh dấu kèm phiên bản kernel đã bỏ nó. File JSON tương ứng ghi lại trường since (xuất hiện từ bản nào) và removed_in (bị bỏ ở bản nào).
Bảng syscall thay đổi theo từng phiên bản kernel, nhưng hầu hết tài liệu trực tuyến lại không thể hiện điều đó. Việc gắn mốc thời gian cho từng mục giúp việc gỡ lỗi trên kernel cũ trở nên rõ ràng hơn.
Quy ước gọi syscall trên từng kiến trúc
Ngoài bảng số hiệu, site còn ghi lại quy ước gọi (calling convention) của từng kiến trúc: chỉ thị vào kernel, thanh ghi chứa số hiệu, các thanh ghi tham số và thanh ghi trả về.
Ví dụ trên x64, số hiệu nằm ở rax, tham số lần lượt ở rdi, rsi, rdx, r10, r8, r9, kết quả trả về trong rax. Trên arm64, chỉ thị là svc #0, số hiệu ở x8, tham số từ x0 đến x5. Trên riscv64, chỉ thị ecall dùng a7 cho số hiệu và a0–a5 cho tham số.
Những thông tin này đặc biệt hữu ích với người viết shellcode, làm reverse engineering hay tối ưu lớp FFI giữa các ngôn ngữ bậc cao và nhân Linux.
API cho lập trình viên
Toàn bộ dữ liệu có thể lấy qua API, ví dụ:
curl https://api.syscall.sh/v2/syscalls/x64/read
Ngoài ra mỗi kiến trúc đều có file JSON thô, chẳng hạn /x64/syscalls.json. API hỗ trợ truy vấn theo phiên bản kernel và xem diff giữa các bản phát hành — hữu ích để tự động hóa kiểm tra khi nâng cấp kernel hoặc xây dựng công cụ phân tích tĩnh.
Dữ liệu lấy từ đâu
Tác giả cho biết mọi thứ trên site đều đọc từ mã nguồn kernel. Với từng kiến trúc, bộ sinh dữ liệu duyệt bảng syscall và các macro SYSCALL_DEFINE của mọi bản phát hành mainline được quét, nên con số hiển thị đúng là những gì kernel thực sự dispatch.
Phần mô tả ngắn lấy từ dự án man pages của Linux, riêng các syscall io_uring lấy từ liburing. Mỗi khi dữ liệu thay đổi, site được dựng lại từ API syscall.
Góc nhìn cho lập trình viên Việt Nam
Với cộng đồng làm hệ thống, bảo mật và nhúng tại Việt Nam, các tài liệu tra cứu syscall thường bị phân tán giữa man pages, header kernel và các blog cá nhân. Một nguồn tập trung có API và gắn mốc phiên bản giúp giảm thời gian tra cứu, đồng thời thuận tiện cho việc xây dựng công cụ nội bộ như kiểm tra tương thích ABI khi đóng gói phần mềm cho nhiều kiến trúc.
Tác giả cũng cho biết giao diện đã được cải thiện phần nào trên thiết bị di động, dù thừa nhận bản thân không phải chuyên gia CSS — một chi tiết nhỏ nhưng dễ tạo thiện cảm với những ai quen với các dự án mã nguồn mở do một người phát triển.
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Chuỗi siêu thị châu Âu tiếp tục bị tấn công mạng nhắm vào tủ đông, tủ mát
02 tháng 11, 2026