Αρχιτεκτονική κάλυψη και πηγαία δεδομένα
Η πλατφόρμα syscall.sh αποτελεί μια από τις πλέον ολοκληρωμένες βάσεις αναφοράς για μηχανικούς συστημάτων και developers που ασχολούνται με χαμηλό επίπεδο προγραμματισμού στο Linux. Το σύστημα σαρώνει απευθείας τον πηγαίο κώδικα του Linux kernel και τα macros SYSCALL_DEFINE για κάθε mainline release, διασφαλίζοντας ότι οι αριθμοί και τα ορίσματα αντιστοιχούν ακριβώς σε αυτά που διαχειρίζεται ο kernel σε επίπεδο υποδομής.
Η κάλυψη επεκτείνεται σε 27 αρχιτεκτονικές, από τις δημοφιλείς x64 και arm64 μέχρι εξειδικευμένα ή αρχαϊκάInstruction Set Architectures (ISAs) όπως τα alpha, arc, m68k και xtensa. Κάθε εγγραφές συνοδεύεται από ιστορικό δεδομένων που καταγράφει πότε μια κλήση προστέθηκε (since) και πότε καταργήθηκε (removed_in).
Συμβάσεις κλήσης και διαχείριση registers
Ένα από τα κρίσιμα σημεία για system programming και writing shellcode ή assembly είναι η γνώση των calling conventions. Η πλατφόρμα τεκμηριώνει με ακρίβεια την αντίστοιχη εντύπωση (instruction) εισόδου στον kernel (όπως syscall στο x64, svc #0 στο arm64, ή ecall στο riscv64), καθώς και τη χαρτογράφηση των registers για:
- Τον αριθμό του system call (NR).
- Τις τιμές επιστροφής (RETURN).
- Τα έξι διαδοχικά ορίσματα (ARG0 έως ARG5).
Για παράδειγμα, στην αρχιτεκτονική x64, ο αριθμός περνά στον rax, τα ορίσματα στους rdi, rsi, rdx, r10, r8, r9 αντίστοιχα, και η εκτέλεση γίνεται με το instruction syscall.
Προγραμματιστική πρόσβαση μέσω API
Πέρα από τη διεπαφή ιστού, το έργο παρέχει δομημένα αρχεία JSON ανά αρχιτεκτονική (π.χ. /x64/syscalls.json), καθώς και ένα πλήρες REST API (v2). Αυτό επιτρέπει στους developers να ενσωματώνουν τα δεδομένα των system calls σε αυτοματοποιημένα εργαλεία, linters, απομεταγλωττιστές (decompilers) ή security analysers, υποστηρίζοντας ακόμη και τον έλεγχο διαφορών (diffs) ανάμεσα σε διαφορετικές εκδόσεις του kernel.