O Linux usa os dois. Ele usa segmentação para mapear todo o espaço de endereço disponível, fornecendo diferentes direitos de acesso: basicamente um kernel e uma visualização de espaço do usuário. Você pode usar o código-fonte do Linux para KERNEL_DS (segmento de dados do kernel) para alguns exemplos.
Paginação é então usada para implementar a memória virtual (Grep para "struct gdt_page" no kernel, para um ponto de partida)