Modo de usuário e modo kernel

Um processador em um computador que executa o Windows opera em dois modos diferentes: modo de usuário e modo kernel. O processador alterna entre esses modos dependendo do tipo de código em execução. Os aplicativos operam no modo de usuário, enquanto os componentes principais do sistema operacional funcionam no modo kernel. Embora muitos drivers operem no modo kernel, alguns podem funcionar no modo de usuário.

Modo de usuário

Quando você inicia um aplicativo no modo de usuário, o Windows cria um processo para ele. Esse processo fornece ao aplicativo um espaço de endereço virtual privado e uma tabela de identificador privado. Como o espaço de endereço virtual de cada aplicativo é privado, um aplicativo não pode modificar os dados de outro aplicativo. Cada aplicativo é executado isoladamente, garantindo que, se um falhar, ele não afete outros aplicativos ou o sistema operacional.

O espaço de endereço virtual de um aplicativo de modo de usuário também é limitado. Um processo em execução no modo de usuário não pode acessar endereços virtuais reservados para o sistema operacional. Limitar o espaço de endereço virtual de um aplicativo de modo de usuário impede que o aplicativo modifique ou prejudique dados críticos do sistema operacional.

Modo Kernel

Todo o código em execução no modo kernel compartilha um único espaço de endereço virtual. Como resultado, um driver no modo kernel não é isolado de outros drivers ou do sistema operacional. Se um driver no modo kernel gravar erroneamente no endereço virtual errado, ele poderá comprometer os dados pertencentes ao sistema operacional ou a outro driver. Se um driver no modo kernel falhar, ele fará com que todo o sistema operacional falhe.

O diagrama a seguir ilustra a comunicação entre os componentes do modo de usuário e do modo kernel.

Diagrama que mostra a comunicação entre os componentes do modo de usuário e do modo kernel em um sistema de computador.

Espaços de endereço virtual