Aula 13: Espaço de Endereçamento Virtual
Todo processo no Linux enxerga seu próprio espaço de endereçamento virtual — a ilusão de memória privada. Esta aula explica a organização do VAS (text/data/heap/stack/mmap), mostra como ler /proc/self/maps, e explica por que o ASLR é importante para a segurança.
Um espaço de endereçamento virtual é como uma casa de números: todo processo pensa que tem uma casa enorme só para ele, mas o SO traduz esses números para endereços físicos reais.
- espaço de endereçamento virtual (VAS)
- O espaço de endereçamento privado que cada processo recebe. Os endereços virtuais são traduzidos para endereços físicos pela MMU.
- stack (pilha)
- Uma região de memória que cresce para baixo (em direção a endereços mais baixos). Contém variáveis locais, endereços de retorno e frames de funções. Tem tamanho limitado.
- heap
- Região de memória dinâmica que cresce para cima. Gerenciada por malloc/new. Exige liberação explícita ou garbage collection.
- região mmap
- Uma região criada pela chamada de sistema mmap() — contém bibliotecas compartilhadas (.so), arquivos mapeados em memória, e mapeamentos anônimos.
- ASLR
- Address Space Layout Randomisation — o SO randomiza os endereços de carregamento de stack/heap/mmap a cada execução para dificultar a exploração de vulnerabilidades.