Admito que o seguinte não é uma ótima resposta, mas acredito que o valor 0x8048000 esteja consagrado na Especificação ELF . Veja as figuras A.4, A.5 e A.6 no doc. O Suplemento de Arquitetura System V ABI Intel 386 também padroniza em 0x8048000. Veja a página 3-22, Fig. 3-25. 0x804800 é prescrito como o endereço de segmento de texto baixo / endereço de pilha alta. E isso é estranho por si só, já que as pilhas geralmente são colocadas nos endereços altos do espaço de memória de um processo, e o Linux não é uma exceção.
Você pode obter o vinculador GNU ld
para configurar um executável ELF para que o kernel mapeie-o para um endereço um pouco mais baixo ou um pouco mais alto. O método para fazer isso varia de versão para versão do GCC e ld, então leia as man pages cuidadosamente. Isso tenderia a indicar que 0x8048000 não deriva de algum requisito de hardware, mas de outras considerações.