Que OS / distribuições têm kernel de 64 bits e espaço de usuário de 32 bits? [fechadas]

2

Qual sistema operacional (ou distribuições) vem com os kernels de 64 bits (x86_64, SPARC64, PPC64, ..smth else? ..) e o espaço de usuário de 32 bits?

Eu quero que todos os programas small userspace (como ls, cat, etc) sejam de 32 bits, porque eles realmente não precisam ser de 64 bits. Mas o kernel do SO deve ser de 64 bits para usar > = 3 Gb de RAM. Também programas de banco de dados (quando se usa muita memória) podem ser de 64 bits.

O modo de 64 bits pode prejudicar alguns programas, tornando-os maiores, comendo (desperdiçando) memória em ponteiros (especialmente em grandes tipos de dados abstratos como lista, árvore, etc.).

Programas de 64 bits consomem duas vezes a memória no EACH Pointer. Eu não quero isso.

E a pergunta não é "Os programas de 32 bits são necessários quando o processador de 64 bits está disponível". A pergunta é "O sistema operacional vem com espaço de usuário de 32 bits e kernels no modo de 32/64 bits". Exemplos desse sistema operacional incluem: Solaris / SPARC64, MACOSX / X86_64 (10.5) / ....

    
por osgx 06.02.2010 / 15:08

4 respostas

6

O consenso atual parece ser que você está se preocupando desnecessariamente. 64 bits é bom, e não ocupa muito mais espaço do que 32 bits para ter algum significado. Em alguns dos meus sistemas aqui:

What    64-bit Size 32-bit Size
/bin/ls        101K         91K
/lib/libc.so   1.4M        1.3M
/usr/bin/php5  5.5M        5.1M

Veja - não tão significativo. Além disso, os ponteiros de 64 bits são mais útil do que você imagina .

    
por 06.02.2010 / 17:28
3

Eu quase poderia acreditar que você se beneficiaria mais de um kernel de 64 bits e de um espaço de usuário de 32 bits do que perderia tempo discutindo isso. O que pode, claro, algumas vezes ser verdade (eu faço isso para um servidor redis).

Mas se você quiser começar a mixar binários de 64 e 32 bits, como você mencionou em um comentário, você está realmente procurando por problemas. Isso significaria que muitas bibliotecas seriam mapeadas duas vezes na memória, o que seria bastante ineficiente. Nenhuma distribuição oferece isso (mesmo o projeto Debian multiarch não cobre binários).

Você se refere a binários como "cat", "dd", "bash", até mesmo "gcc" como não precisando de 64 bits, mas esses são exemplos típicos de programas em que usar ponteiros de 32 bits em vez de 64 bits não salve "nada". Você já perdeu mais tempo digitando cat em sua mensagem do que poderia salvar executando uma versão de 32 bits em vez de 64 bits.

Sem mencionar que x86_64 não tem apenas ponteiros maiores, também tem o dobro de registros genéricos e os compiladores podem fazer tantas suposições sobre as extensões disponíveis quanto com i686 (que é mais que i586 , por sua vez, mais de i486 , por sua vez, mais de i386 ). O desempenho pode acabar sendo melhor.

Se você quiser usar binários de 64 bits e 32 bits, minha recomendação pessoal seria executar os (provavelmente poucos) aplicativos intensivos de ponteiro que precisem de menos de 4 GB RAM e para o qual você realmente se importa com o desempenho em um chroot (ou qualquer outro contêiner) de 32 bits. A menos que eles estejam executando em uma pilha Java, nesse caso, você provavelmente ficará melhor em um espaço de usuário de 64 bits e usar uma JVM híbrida (com ponteiros compactados).

Se você realmente deseja um kernel de 64 bits e um espaço de usuário de 32 bits, e não apenas porque leu em algum lugar que ele teria um desempenho melhor, você sempre pode obter o kernel dos pacotes de 64 bits de sua distribuição. e aperte-o em uma instalação de 32 bits.

    
por 06.07.2012 / 01:58
1

Estou executando um servidor KVM de 64 bits, que hospeda vários servidores virtuais (debian / woody - debian / sqeeze e Windows XP). o virtual linux-server tem 32bit Userland e um kernel de 64bits (aptitude instala linux-image-2.6-amd64).

Então eu acho que você pode instalar todas as distribuições linux atuais e rodar um kernel de 64bits - eu não tenho nenhum problema com essa configuração.

    
por 06.02.2010 / 18:36
1

Há uma nova X32 ABI nas obras voltadas exatamente para o que você está procurando: 32 bits userspace com um kernel de 64 bits em hardware AMD64. A vantagem do X32 sobre o tradicional i386 ABI é que os programas podem tirar vantagem de outros recursos da arquitetura AMD64, como novas instruções e registros adicionais de CPU.

No entanto, o X32 ainda não está pronto para uso, então sua melhor aposta no momento é instalar uma distro de 32 bits que tenha um kernel de 64 bits disponível. No Debian, por exemplo, você instalaria linux-image-2.6-amd64 (ou linux-image-amd64 se você está rodando wheezy, que ainda não foi lançado, mas usa um kernel 3.x).

    
por 06.07.2012 / 03:18

Tags