Rotinas do Sistema Operacional e System Calls
As rotinas do sistema operacional compõem o núcleo do sistema, oferecendo serviços aos usuários e suas aplicações. Todas as funções do núcleo são implementadas por rotinas do sistema que necessariamente possuem em seu código instruções privilegiadas. A partir desta condição, para que estas rotinas possam ser executadas o processador deve estar obrigatoriamente em modo kernel, o que exige a implementação de mecanismos de proteção para garantir a confiabilidade do sistema.
Todo o controle de execução de rotinas do SO é realizado pelo mecanismo conhecido como system call. Toda vez que uma aplicação desejar chamar uma rotina do SO, o mecanismo de system call é ativado. Inicialmente, o SO verificará se a aplicação possui privilégios necessários para executar a rotina desejada. Em caso negativo, o SO impedirá o desvio para a rotina do sistema, sinalizando ao programa chamador que a operação não é possível. Este é um mecanismo de proteção por software, no qual o SO garante que as aplicações só poderão executar rotinas do sistema que estão previamente autorizadas. Esta autorização prévia é realizada pelo administrador do sistema.
Considerando que a aplicação possua o devido privilégio para chamar a rotina do sistema desejada, o SO primeiramente salva o conteúdo corrente dos registradores, troca o modo de acesso do processador de usuário para kernel e realiza o desvio para a rotina alterando o registrador PC com o endereço da rotina chamada. Ao término da execução da rotina do sistema, o modo de acesso é alterado de kernel para usuário e o contexto dos registradores restaurados para que a aplicação continue a execução a partir da instrução que chamou a rotina do sistema.
Uma aplicação sempre deve executar com o processador em modo usuário. Caso uma aplicação tente executar diretamente uma instrução privilegiada sem ser por intermédio de uma chamada à rotina do sistema, um mecanismo de proteção por hardware