Em uma arquitetura de 32 bits, você tem% de endereços lineares0xffffffff
( 4'294'967'295
ou 4 GB) (não espaço físico) para se referir a um endereço físico.
Mesmo com apenas 512 MB de armazenamento físico (a memória RAM real conectada ao barramento), o kernel ainda usará endereços linear 4'294'967'295
(4 GB) para calcular os físicos.
O kernel linux divide esses 4 GB (de endereços) no espaço do usuário (alta memória) e o espaço do kernel (pouca memória) em 3/1, então o espaço do kernel tem 1'073'741'823
(1 GB) de endereços lineares para usar.
Esses 1 GB de endereços lineares só são acessíveis pelo kernel e estão sendo divididos ainda mais.
ZONE_DMA : contém quadros de página de memória abaixo de 16 MB. Isso é usado para os barramentos ISA antigos, eles são capazes de endereçar apenas os primeiros 16 MB de RAM.
ZONE_NORMAL : Contém quadros de página de memória de até 16 MB e abaixo de 896 MB, estes são os endereços que o kernel pode mapear / acessar diretamente.
ZONE_HIGHMEM : Contém quadros de página de memória com 896 MB ou mais, quadros de página acima dessa borda geralmente não são mapeados para o espaço do kernel e, portanto, não são acessíveis diretamente pelo kernel. Quadros de páginas do espaço do usuário podem ser mapeados temporária ou permanentemente aqui.
O espaço real da RAM física ocupado pelas diferentes zonas depende da forma e do número de processos que você executa.
Se você inserir free -ml
no seu console, poderá ver o uso incluindo memória baixa e alta:
total used free shared buffers cached
Mem: 3022 2116 905 0 105 1342
Low: 839 196 642
High: 2182 1919 263
-/+ buffers/cache: 667 2354
Swap: 2859 93 2766