Da perspectiva do sistema operacional, o espaço do usuário é a execução do código de um processo, e o espaço do kernel é a execução do código do kernel. Uma transição do espaço do usuário para o espaço do kernel é a entrada em uma chamada do sistema , e uma transição do espaço do kernel para o espaço do usuário é o retorno de uma chamada de sistema.
Da perspectiva do processador, o espaço do usuário e o espaço do kernel são níveis de privilégio. “Ring 3” e “ring 0” são os nomes usados nos processadores Intel x86 (existem os anéis 1 e 2, mas a maioria dos unices não os usa, porque não há muito uso para eles). Outros tipos de CPU usam nomes diferentes, por exemplo, modo de usuário e modos privilegiados (ou sistema) no ARM.
A transição entre os modos é feita por instruções que alteram o modo do processador e saltam para um endereço diferente; O detalhe dessas instruções depende muito do tipo de CPU. Além de alternar o modo do processador e saltar para um endereço diferente, as instruções de transição de modo normalmente executam algumas outras tarefas, como trocar o valor de alguns registradores (novamente, isso é muito dependente do CPU).
Uma transição do modo de usuário para o modo kernel tem que saltar para um endereço fixo, que foi definido pelo kernel. Para manter a segurança do sistema, não é possível permitir que o código no modo de usuário troque o processador para o modo kernel, exceto para invocar um trecho de código (o ponto de entrada de chamada do sistema) que foi especialmente criado para funcionar com segurança, não importando código de modo de usuário tem feito. O ponto de entrada de chamada do sistema primeiro salva os valores de registro em uma área de memória designada e executa qualquer outra escrituração contábil necessária, depois lê os parâmetros de chamada do sistema e despacha a chamada do sistema para a função apropriada. Dependendo do tipo de processador, a contabilidade pode envolver a configuração das tabelas MMU apropriadamente. O kernel pode decidir a qualquer momento pausar o processo de chamada e agendar outro processo.
Uma transição do modo kernel para o modo usuário pode acontecer em qualquer lugar que o kernel considere adequado. O kernel restaura os registros salvos, a configuração da MMU e qualquer outra coisa que seja necessária, e grava o valor de retorno da chamada do sistema e, finalmente, volta para a instrução no processo após a chamada do sistema.