Modo usuário x modo kernel
Modo Usuário
O modo usuário é feito de subsistemas com capacidade de transmitir requisições para os drives modo núcleo apropriados usando um gerenciador de entrada/saída. Dois subsistemas constituem a camada de modo usuário: o sistema Ambiental e o sistema Integral.
O subsistema Ambiental foi desenvolvido para rodar aplicações escritas para vários tipos de sistema operacional. Esses aplicativos, entretanto, rodam em baixa prioridade que os processos de modo núcleo. Existem três principais tipos de Subsistemas Ambientais:
1. Subsistema Win32 roda aplicações Windows de 32 bits e também suporta Máquina Virtual DOS (VDMs), permitindo que aplicações de 16 bits para MS-DOS.
2. Subsistema OS/2 suporta aplicações OS/2 de 16 bits e emula OS/2 1.x, mas não a 2.x ou posterior.
3. Subsistema POSIX suporta aplicações que são estritamente escritas tanto para POSIX.1 padrão ou que obedecem o padrão ISO/IEC.
O Subsistema Integral procura por funções especificas do sistema fora do subsistema Ambiental. Consiste em um subsistema de segurança (permite/nega acesso e gerencia logon), serviço de estação (ajuda com o acesso de rede do computador) e um serviço servidor (permite que o computador forneça serviços de rede).
Modo Kernel
No modo Kernel, quando o CPU está em modo kernel, ele é considerado confiável de execução de software , e assim ele pode executar qualquer instrução e referenciar qualquer memória de endereços (ou seja, locais na memória). O kernel (que é o núcleo do sistema operacional e tem controle total sobre tudo o que ocorre no sistema) é um software confiável, mas todos os outros programas são considerados software não confiável. Assim, todos os software de modo usuário deve solicitar o uso do kernel por meio de uma chamada de sistema para executar instruções privilegiadas, como o processo de criação ou entrada / saída de operações. Uma chamada de sistema é um pedido para o kernel em um Unix-like sistema operacional