O processador executa programas no Modo Usuário ou Modo Kernel. Quando você usa o PC, o processador alterna frequentemente entre esses dois tipos de modos, dependendo do que está fazendo. Mas o que são Modo Usuário e Modo Kernel? Qual é a diferença entre esses dois modos? Por que a CPU precisa alternar entre esses modos?
O que é o modo de usuário no Windows?

Modo de usuário no Windows
Quando você inicia um programa no Windows, esse programa é iniciado no modo de usuário. Sempre que um programa no modo de usuário deseja ser executado, o Windows cria um processo para ele. Um processo é apenas um programa que um processador está executando ou um programa que o Windows programou para executar. E sempre que o Windows cria um processo, ele também cria um espaço de endereço virtual para esse processo.
O espaço de endereço virtual é o conjunto de endereços lógicos (não físicos) que o Windows atribui a um processo. Os processos podem usar esses endereços para armazenar dados na memória física.
Além disso, o espaço de endereço virtual é isolado. Portanto, o espaço de endereço virtual de um processo não interfere no espaço de endereço de outro processo. E como os programas no Modo de Usuário possuem espaços de endereço separados, se um programa travar, esse programa travará sozinho e não afetará outros programas ou todo o sistema operacional com seus efeitos.
Outra maneira de descrever aplicativos do Modo Usuário é usar o termo “menos privilegiados”. O Windows restringe o acesso direto de aplicativos do modo de usuário a recursos críticos do sistema, tornando-os menos privilegiados. Por exemplo, se um aplicativo quiser acessar o hardware, ele deverá passar pelo kernel do sistema operacional usando chamadas de sistema (um estilo de programação no qual um programa de computador solicita um serviço do kernel do sistema operacional).
Simplificando, programas aplicativos como videogames são executados no modo de usuário. Eles possuem poucos privilégios, portanto não possuem acesso irrestrito aos recursos do sistema. Cada aplicativo do modo de usuário possui seu próprio espaço de endereço. Um aplicativo não pode alterar o espaço de endereço de outro aplicativo. Portanto, se um aplicativo travar, isso não afetará outros programas em execução no computador.
O que é o modo Kernel no Windows?
![Diferença entre o modo Kernel e o modo de usuário no Windows Diferença entre o modo Kernel e o modo de usuário no Windows]()
Modo Kernel no Windows
Antes de discutir o Modo Kernel, devemos primeiro saber o que é um “kernel” e como ele funciona no Windows.
Kernel é o cérebro de um sistema operacional. É o principal componente de software do qual dependem todos os outros componentes do sistema operacional. O kernel gerencia o hardware do computador, agenda as execuções no computador e lida com as interações entre o hardware e o software aplicativo.
Resumindo, o kernel é o trecho de código mais privilegiado em execução no sistema, pois é o código que interage diretamente com o hardware. Qualquer outro programa que queira utilizar recursos de hardware deve solicitar acesso através do kernel.
Quando um programa aplicativo está sendo executado no modo de usuário e deseja acessar hardware como uma webcam, ele deve solicitar o kernel usando chamadas de sistema. Para atender essas solicitações, a CPU, no momento da execução do programa, alterna do Modo Usuário para o Modo Kernel.
Assim que a execução for concluída, a CPU volta para o modo de usuário e começa a executar o próximo processo agendado. Isso é chamado de “Mudança de Contexto” .
Qual é a diferença entre o modo de usuário e o modo kernel?
A principal diferença entre o Modo Usuário e o Modo Kernel é o nível de privilégios que cada modo oferece. No Modo Usuário, os aplicativos têm menos privilégios. Eles não têm acesso direto aos recursos de hardware e não podem gravar no espaço de endereço de outros aplicativos.
O código executado no modo Kernel possui privilégios elevados. Não só tem acesso direto ao hardware do computador, mas todos os programas executados no modo Kernel, incluindo o sistema operacional, também compartilham um espaço de endereço. Portanto, se um programa no modo Kernel travar, ele poderá travar todo o sistema operacional. Para garantir que tais problemas não ocorram, o Windows permite apenas que alguns processos sejam executados no modo Kernel.
O Windows adota uma abordagem em camadas para separar os programas do usuário dos recursos do sistema
O Windows usa um modelo em camadas para determinar os níveis de privilégio dos processos. Os aplicativos localizados na camada mais externa são os aplicativos que possuem privilégios de aluguel. O núcleo dessas camadas é o kernel. Portanto, o kernel tem acesso ilimitado aos recursos do sistema operacional.
A abordagem em camadas também protege funcionalidades críticas do sistema operacional. Quando os programas da camada superior travam aleatoriamente, isso não afeta o sistema operacional. Por outro lado, quando o kernel trava, todo o sistema operacional é afetado.