Um processo de 32 bits tem um espaço de endereçamento de 32 bits, por definição: “32 bits” significa que os endereços de memória no processo têm 32 bits de largura e se você tem 2 32 endereços você pode endereçar no máximo 2 32 bytes (4GB). Um kernel Linux de 32 bits só pode executar processos de 32 bits. Dependendo das opções de compilação do kernel, cada processo só pode alocar 1 GB, 2 GB ou 3 GB de memória (o restante é reservado para o kernel quando estiver processando chamadas do sistema). Esta é uma quantidade de memória virtual, não relacionada a qualquer quebra entre arquivos RAM, swap e mmap.
Um kernel de 64 bits pode executar processos de 64 bits, bem como processos de 32 bits. Um processo de 64 bits pode endereçar até 2 64 bytes (16EB) em princípio. Na arquitetura x86_64 , em parte devido ao design de x86_64 MMU , há atualmente uma limitação para 128 TB de espaço de endereço por processo.