No Linux, pelo menos, o mecanismo de chamada do sistema funciona na maioria das arquiteturas, colocando alguns dados especificamente formatados (geralmente algum tipo de estrutura) em alguns registradores ou endereços de memória predefinidos.
No entanto, o problema ocorre ao forçar a CPU a alternar para o espaço do kernel para que ele possa executar o código privilegiado do kernel para atender à chamada. Isso é feito forçando uma falha de algum tipo (uma falha sendo dividida por 0, um estouro indefinido ou uma segfault etc.), isso força o kernel a assumir a execução para lidar com a falha.
Normalmente, o kernel lida com falhas, matando o processo causador ou executando um manipulador fornecido pelo usuário. No entanto, no caso de um syscall, ele verificará os registros e os locais de memória predefinidos e, se eles contiverem uma solicitação de syscall, executará isso usando os dados fornecidos pelo processo do usuário na estrutura da memória. Isso geralmente tem que ser feito com alguma montagem especialmente criada para facilitar o uso do syscall para o usuário que a biblioteca C do sistema precisa envolvê-lo como uma função. Para uma interface de nível inferior, consulte http://man7.org/linux/man-pages/man2/syscall.2.html para obter mais informações sobre como os syscalls funcionam e como você pode ligar sem um wrapper C.
Isso é simplificado demais, não é verdade em todas as arquiteturas (o mips possui uma instrução syscall especial) e não necessariamente funciona da mesma forma em todos os sistemas operacionais. Ainda assim, se você tiver quaisquer comentários ou perguntas, por favor, pergunte.
Alterado: Observe que, com relação ao seu comentário sobre as coisas em / dev /, essa é realmente uma interface de nível superior ao kernel, e não uma interface inferior. Esses dispositivos realmente usam (aproximadamente) quatro syscalls abaixo. Gravar neles é o mesmo que um syscall de gravação, ler um syscall de leitura, abrir / fechar equivalentes aos syscalls de abertura e fechamento e executar um ioctl causa um syscall especial do ioctl, que por si só é uma interface para acessar um dos muitos ioctl do sistema chamadas (chamadas especiais, geralmente específicas de dispositivos com uso muito restrito para gravar uma chamada de sistema inteira para elas).