Qual é a diferença entre o espaço do usuário e o espaço do kernel?

espaço kernal

Sistema

memória

no

Linux

pode ser dividido em duas regiões distintas:

espaço do kernel

e

espaço do usuário

. O espaço do kernel é onde o

núcleo

(ou seja, o núcleo do sistema operacional)

executa

(ou seja, executa) e fornece sua

Serviços

.

O espaço do kernel pode ser acessado pelos processos do usuário apenas através do uso de

chamadas de sistema

. As chamadas do sistema são solicitações em um sistema operacional do tipo Unix por um

processo ativo

para um serviço executado pelo kernel, como

entrada / saída

(E / S) ou criação de processo. Um processo ativo é um processo que está atualmente progredindo na CPU, em contraste com um processo que está aguardando sua próxima vez na CPU. E / S é qualquer programa, operação ou dispositivo que transfere dados para ou de uma CPU e para ou de um dispositivo periférico (como unidades de disco, teclados, mouses e impressoras).

espaço do usuário

Espaço do usuário

é essa parte do sistema

memória

no qual

processos do usuário

corre. Isso contrasta com

espaço do kernel

, que é a parte da memória na qual o

núcleo

executa e presta seus serviços

O kernel é um programa que constitui o núcleo central de um sistema operacional de computador. Não é um processo, mas um controlador de processos e possui controle total sobre tudo o que ocorre no sistema. Isso inclui gerenciar processos individuais do usuário no espaço do usuário e impedir que eles interfiram entre si.

A divisão da memória do sistema em sistemas operacionais do tipo Unix no espaço do usuário e no kernel desempenha um papel importante na manutenção da estabilidade e segurança do sistema.

A principal diferença entre o espaço do Kernel e o espaço do usuário é que, as permissões de acesso.

Normalmente, o endereço inteiro será dividido em 2 partes, espaço do kernel e espaço do usuário. Suponha que se você tiver uma máquina de arquitetura de 32 bits, você terá 2 ^ 32 de espaço de endereço, portanto esse espaço de endereço será dividido em duas partes, como eu disse acima. A partição pode ser igualmente distribuída ou você pode dividir com base nos seus requisitos (na maioria dos casos, 1 GB para o kernel e 3 GB para o usuário).

Espaço do kernel - O espaço de endereço alocado para o kernel não pode ser acessado por nenhum espaço do usuário. então o único chefe que pode acessar esse espaço é o kernel. Nesse espaço do kernel, todas as coisas relacionadas ao kernel serão exaladas, como código de driver de dispositivo, código de subsistemas e tudo.

espaço do usuário - Todos os processos do usuário serão executados no espaço do usuário. O kernel também pode acessar esse espaço. O código relacionado ao usuário será executado neste espaço.

Os processadores possuem (pelo menos) dois modos de operação: modo "supervisor" ou "privilegiado" e modo "usuário". No modo supervisor, o processador pode fazer qualquer coisa - conversar diretamente com os dispositivos de E / S, alterar o mapeamento da memória, etc. No modo usuário, o processador pode fazer apenas o que o modo supervisor permitiu. O código que é executado no modo supervisor geralmente é chamado de "kernel".

O kernel pode acessar toda a memória física. Ele define as coisas para que processos separados do usuário vejam e manipulem apenas seu próprio espaço de memória. Você pode pensar nisso como o kernel executa processos do usuário em matrizes de memória dentro de si. (Às vezes, isso é literalmente verdade, mas geralmente o espaço do usuário tem memória virtual paginada e o kernel não.)

Outra maneira de ver é que a unidade de gerenciamento de memória (que mapeia o acesso lógico da memória aos acessos à memória física) é desativada no modo supervisor. (Às vezes, isso é literalmente verdade, mas geralmente o gerenciamento de memória também é usado no kernel.)

A memória é dividida em zona protegida (espaço do kernel) e zona desprotegida (espaço do usuário).

Em uma arquitetura de 32 bits

, A CPU pode gerar 2 ^ 32, ou seja, 4 GB de memória virtual, na qual 1 GB é reservado para

espaço do kernel

com acesso total ao hardware e aos recursos do sistema, enquanto 3 GB são reservados para

espaço do usuário

onde o processo normal do usuário é executado e eles podem ver apenas um subconjunto dos recursos disponíveis da máquina e podem executar determinadas funções do sistema.

Para mais detalhes, leia meu blog:

https://www.embhack.com/introduction-to-kernel-space-and-user-space/

Sistema

memória

no

Linux

pode ser dividido em duas regiões distintas:

  • espaço do kernel e
  • espaço do usuário.

O espaço do kernel é onde o

núcleo

(ou seja, o núcleo do sistema operacional)

executa

(ou seja, executa) e fornece sua

Serviços

.

A memória consiste em

RAM

(memória de acesso aleatório), cujo conteúdo pode ser

acessado

(por exemplo, leitura e gravação) em velocidades extremamente altas, mas são retidas apenas temporariamente (por exemplo, enquanto estão em uso ou, no máximo, enquanto a fonte de alimentação permanece ligada). Seu objetivo é manter programas e dados atualmente em uso e, assim, servir como intermediário de alta velocidade entre a CPU (unidade central de processamento) e as mais lentas

armazenamento

, que geralmente consiste em uma ou mais unidades de disco rígido (HDDs).

Espaço do usuário é o conjunto de locais de memória nos quais

processos do usuário

(ou seja, tudo que não seja o kernel) é executado. UMA

processo

é uma instância de execução de um programa.

Uma das funções do kernel é gerenciar processos de usuários individuais dentro desse espaço e impedir que eles interfiram entre si

.

O espaço do kernel pode ser acessado pelos processos do usuário apenas através do uso de

chamadas de sistema

.

As chamadas do sistema são solicitadas por um

processo ativo

para um serviço executado pelo kernel, como

entrada / saída

(E / S) ou criação de processo. Um processo ativo é um processo que está atualmente progredindo na CPU, em contraste com um processo que está aguardando sua próxima vez na CPU. E / S é qualquer programa, operação ou dispositivo que transfere dados para ou de uma CPU e para ou de um dispositivo periférico (como unidades de disco, teclados, mouses e impressoras).

A RAM é dividida em duas regiões distintas - o espaço do usuário e o espaço kernal.

Espaço do Usuário - É um conjunto de locais onde os processos normais do usuário são executados. Esses processos não podem acessar o espaço kernal diretamente. Uma parte do espaço kernal pode ser acessada por meio de chamadas do sistema. Essas chamadas do sistema agem como interrupções de software no espaço kernal.

Espaço Kernal - o kernal é executado na parte dedicada da memória. A função do espaço kernal é gerenciar aplicativos / processos em execução no espaço do usuário. Pode acessar toda a memória. Se um processo executar uma chamada do sistema, uma interrupção do software é enviada ao kernal, que despacha um manipulador de interrupção apropriado.