Syscalls Linux i386
Esta tabela corresponde à ABI Linux 32-bit (i386). Os números abaixo não são os mesmos da ABI x86_64.
| Syscall Name | Syscall Value | Comentário |
|---|---|---|
| sys_exit | 1 | Encerra o processo atual e devolve um código de saída ao sistema. |
| sys_fork | 2 | Cria um novo processo copiando o processo atual. |
| sys_read | 3 | Lê bytes de um descritor de arquivo para um buffer em memória. |
| sys_write | 4 | Escreve bytes de um buffer para um descritor de arquivo. |
| sys_open | 5 | Abre um arquivo e retorna um descritor para uso posterior. |
| sys_waitpid | 7 | Espera um processo filho específico terminar ou mudar de estado. |
| sys_creat | 8 | Cria um arquivo de forma simplificada; hoje costuma ser substituída por open. |
| sys_link | 9 | Cria um hard link para um arquivo existente. |
| sys_unlink | 10 | Remove um nome de arquivo do sistema de arquivos. |
| sys_execve | 11 | Substitui a imagem do processo atual por outro programa. |
| sys_chdir | 12 | Muda o diretório de trabalho do processo. |
| sys_time | 13 | Obtém o tempo do sistema em segundos. |
| sys_mknod | 14 | Cria arquivo especial, como device node ou FIFO. |
| sys_chmod | 15 | Altera permissões de acesso de um arquivo. |
| sys_lchown | 16 | Altera dono e grupo de um link simbólico sem segui-lo. |
| sys_stat | 106 | Consulta metadados de um caminho, como tamanho e permissões. |
| sys_lseek | 19 | Move a posição de leitura ou escrita dentro de um arquivo. |
| sys_getpid | 20 | Retorna o PID do processo atual. |
| sys_mount | 21 | Monta um sistema de arquivos. |
| sys_umount | 22 | Desmonta um sistema de arquivos pelo ponto de montagem. |
| sys_setuid | 23 | Define o UID efetivo do processo. |
| sys_getuid | 24 | Retorna o UID real do processo. |
| sys_stime | 25 | Ajusta o relógio do sistema; chamada antiga e privilegiada. |
| sys_ptrace | 26 | Permite depuração e inspeção de outro processo. |
| sys_alarm | 27 | Agenda envio de SIGALRM após um intervalo em segundos. |
| sys_fstat | 108 | Consulta metadados usando um descritor de arquivo já aberto. |
| sys_pause | 29 | Suspende o processo até a chegada de um sinal. |
| sys_utime | 30 | Ajusta tempos de acesso e modificação de um arquivo. |
| sys_access | 33 | Verifica se o processo pode acessar um caminho com um modo específico. |
| sys_nice | 34 | Ajusta a prioridade de escalonamento do processo. |
| sys_sync | 36 | Força gravação em disco de buffers pendentes do kernel. |
| sys_kill | 37 | Envia um sinal para outro processo ou grupo de processos. |
| sys_rename | 38 | Renomeia ou move um arquivo dentro do sistema de arquivos. |
| sys_mkdir | 39 | Cria um diretório. |
| sys_rmdir | 40 | Remove um diretório vazio. |
| sys_dup | 41 | Duplica um descritor de arquivo existente. |
| sys_pipe | 42 | Cria um pipe unidirecional com dois descritores. |
| sys_times | 43 | Retorna tempos de CPU consumidos pelo processo e seus filhos. |
| sys_brk | 45 | Ajusta o final da área de dados do processo, usada pelo heap. |
| sys_setgid | 46 | Define o GID efetivo do processo. |
| sys_getgid | 47 | Retorna o GID real do processo. |
| sys_signal | 48 | Interface antiga para configurar tratamento de sinais. |
| sys_geteuid | 49 | Retorna o UID efetivo do processo. |
| sys_getegid | 50 | Retorna o GID efetivo do processo. |
| sys_acct | 51 | Ativa ou desativa accounting de processos no sistema. |
| sys_umount2 | 52 | Desmonta um sistema de arquivos com flags adicionais. |
| sys_ioctl | 54 | Executa operações de controle específicas de dispositivo ou terminal. |
Observações
- As syscalls mais recorrentes nos exemplos básicos de Assembly são
sys_exit,sys_read,sys_write,sys_open,sys_lseek,sys_close,sys_getpidesys_execve. - Em código didático com
int 0x80, normalmente o número da syscall vai emEAXe os argumentos seguem emEBX,ECX,EDX,ESI,EDIeEBP. - Algumas entradas desta lista são interfaces antigas do kernel Linux i386, como
sys_creat,sys_signalesys_stime. Elas continuam úteis como referência histórica, mas nem sempre são a melhor interface para código novo.