Consultando vari tutorial e libri sparsi, sono stato in grado di apprendere che la chiamata di sistema "uscita" di Linux a 64 bit è 60 e il valore dello stato viene spostato su edi
. Allo stesso modo, "scrivi" ha il numero di chiamata 1 e il descrittore di file deve essere passato a edi
, ecc.
Tuttavia, sembra molto difficile trovare informazioni sulle altre chiamate di sistema. Ad esempio, questa tabella mostra i registri pertinenti per ogni chiamata , ma in es sys_chmod
, un valore di tipo mode_t
deve essere spostato su rsi
. Dove si trovano i diversi valori interi che possono essere passati come argomenti? man 2 chmod
non sembra averli e grep
ing attraverso i file di intestazione in / usr / include non è stato utile.
In generale, come si fa a trovare un riferimento coerente per i dettagli di basso livello come questi? Sono considerati inutili, dal momento che la stessa funzionalità può generalmente essere eseguita con C piuttosto che assemblare? Sto leggendo i manuali dello sviluppatore AMD64 , che sono utili per la comprensione concettuale, ma quelli non mi aiutano con le chiamate di sistema Linux.