Chamada de sistema


Uma chamada de sistema (syscall) é o mecanismo que permite que um programa em modo usuário (como um aplicativo ou software) peça serviços do sistema operacional, como operações de entrada/saída, alocação de memória, gerenciamento de processos, entre outros.

As syscalls são necessárias porque os programas em modo usuário não têm permissão direta para acessar o hardware ou executar operações críticas no sistema.

Principais aspectos das syscalls

Mecanismo de interface entre software e sistema operacional

Quando um programa precisa realizar uma operação que envolve recursos do sistema (como acessar o disco, se comunicar com o hardware, ou criar processos), ele não pode fazê-lo diretamente. Em vez disso, ele faz uma chamada de sistema para pedir ao sistema operacional que execute a operação em seu nome.

Modo usuário e modo kernel

Os sistemas operacionais modernos são divididos em dois modos de operação:

Execução de syscalls

As syscalls são feitas por meio de interrupções ou instruções especiais do processador que sinalizam ao sistema operacional para assumir o controle.

Em sistemas Unix, por exemplo, as chamadas de sistema são invocadas através de instruções como int 0x80 (em sistemas mais antigos) ou usando a instrução syscall nas arquiteturas mais modernas.

Exemplo

Abaixo um exemplo de como funciona uma chamada de sistema para abrir um arquivo.

Referências