histórico de chamadas de sistema
Com o desenvolvimento de modos de operação separados, com níveis variados de privilégio, era necessário a criação de um mecanismo para transferir seguramente o controle de modos de menor privilégio para modos de maior privilégio. O código com menor privilégio não pode simplesmente transferir o controle para código com maior privilégio em qualquer ponto do código e em qualquer estado do processador; permitir essa transferência seria permitir a quebra da segurança do sistema. Por exemplo, o código com menor privilégio poderia levar o código com maior privilégio a ser executado na ordem incorreta, ou disponibilizar a ele uma pilha errada.
As chamadas de sistema frequentemente utilizam uma instrução especial que faz com que a CPU transfira o controle para código de maior privilégio, como especificado previamente, pelo código de menor privilégio. Isto permite que o código de maior privilégio indique por onde ele será chamado e, tão importante quanto, o estado do processador no momento da chamada.
Quando a chamada de sistema é invocada, o programa que a invocou é interrompido, e a informação necessária para continuar a sua execução é salva. O processador inicia a execução do código de maior privilégio que, examinando o estado do processador (definido pelo código de menor privilégio) e/ou a sua pilha, determina que serviço foi requisitado. Quando a chamada termina, o controle retorna para