Uma system call (syscall) é o mecanismo que um programa em user-space usa para solicitar um serviço ao kernel — abrir um arquivo, enviar dados de rede, alocar memória, criar um processo. Como essas ações tocam o hardware ou afetam outros processos, apenas o kernel pode executá-las, então uma syscall cruza deliberadamente a fronteira de proteção.
User mode vs kernel mode
A CPU roda em um de (pelo menos) dois níveis de privilégio:
user mode → restricted: no direct hardware access, no privileged instructions
kernel mode → full access: hardware, all memory, privileged CPU instructions
