Originalmente (antes do 286), a segmentação era principalmente um hack projetado para possibilitar o endereçamento de mais de 64 KB em uma CPU de 16 bits. Em 286, a segmentação em modo protegido foi estendida para introduzir proteção e estender a memória física suportada de 1MB para 16MB. Mas a CPU ainda tinha apenas registros de 16 bits, o que significava que qualquer bloco contíguo de dados com mais de 64 KB era problemático para processar.
Tudo isso mudou com a introdução do 386. Os registradores da CPU foram estendidos para 32 bits e a paginação foi adicionada como um novo recurso. A paginação era uma maneira muito mais poderosa de mapear endereços lógicos e físicos do que o que era alcançável com segmentação.
O Linux foi originalmente projetado para o 386 e fez uso do recurso de paginação. O uso de segmentação do Linux era mínimo, algumas das configurações de proteção eram controladas por meio de descritores de segmento, o que significava que você não podia evitar completamente a necessidade de segmentação. Mas o Linux configuraria todos os segmentos para iniciar no endereço 0.
Em outras palavras: o Linux nunca usou endereçamento segmentado. Usava apenas segmentação porque isso era necessário para controlar alguns dos recursos de proteção.
Quando a AMD projetou os processadores de 64 bits, eles decidiram que alguns recursos históricos não seriam suportados no modo de 64 bits. Uma das coisas que eles fizeram foi impor um endereço de início de segmento 0. Então, nesse ponto, os endereços segmentados não eram mais suportados nem por hardware nem por software.
Se você usa uma CPU moderna no modo de 16 ou 32 bits, ela ainda suporta endereços segmentados para compatibilidade com versões anteriores. Mas no modo de 64 bits, você só tem endereços lineares e paginação de 64 bits.