Adapun alasan di balik penomoran spesifik, yang tidak cocok dengan arsitektur lain [kecuali "x32" yang sebenarnya hanyalah bagian dari arsitektur x86_64]:Pada masa-masa awal dukungan x86_64 di kernel linux, sebelum ada kendala kompatibilitas mundur yang serius, semua panggilan sistem dinomori ulang untuk mengoptimalkannya pada tingkat penggunaan cacheline.
Saya tidak cukup tahu tentang pengembangan kernel untuk mengetahui dasar spesifik untuk pilihan ini, tetapi ternyata ada beberapa logika di balik pilihan untuk menomori ulang semuanya dengan angka-angka khusus ini daripada sekadar menyalin daftar dari arsitektur yang ada dan menghapus yang tidak terpakai. Sepertinya urutannya mungkin didasarkan pada seberapa umum namanya - mis. baca/tulis/buka/tutup di depan. Keluar dan percabangan mungkin tampak "mendasar", tetapi masing-masing dipanggil hanya sekali per proses.
Mungkin juga ada sesuatu yang terjadi tentang menjaga panggilan sistem yang biasanya digunakan bersama dalam baris cache yang sama (nilai-nilai ini hanya bilangan bulat, tetapi ada tabel di kernel dengan pointer fungsi untuk masing-masing, sehingga setiap grup dari 8 panggilan sistem menempati baris cache 64-byte untuk tabel itu)
Lihat jawaban untuk pertanyaan "Mengapa nomor panggilan sistem berbeda di amd64 linux?" di Stack Overflow.
Singkatnya:demi kompatibilitas, daftar panggilan sistem stabil dan hanya dapat bertambah. Ketika arsitektur x86 64 muncul, ABI (argument passing, return value) berbeda, sehingga pengembang kernel mengambil kesempatan untuk membawa perubahan yang telah lama ditunggu.