Como foi a mudança para 64 bits no Linux?

15

Como foi a transição para 64 bits tratada no Linux / Unix? O mundo do Windows ainda parece ter problemas com isso e estou curioso para saber como ele foi tratado no mundo * nix.

    
por Louis Salin 11.08.2010 / 02:43

4 respostas

12

O trabalho necessário para fazer o kernel de 64 bits foi feito há um tempo atrás usando sistemas DEC Alpha. Programas, no entanto, são um assunto diferente.

O consenso geral que eu vi até agora parece ser:

  • Diretórios /lib e /lib64 separados para sistemas que possuem binários mistos
  • Compile como 64 bits; se a compilação falhar, recompile como 32 bits até que a origem possa ser desmarcada para 64 bits.

Além disso, você não verá muito "pesar" de compilações mistas de 32/64 bits.

    
por 11.08.2010 / 02:55
8

O Windows e o * ix usaram diferentes modelos de dados para a transição. Esta página do UNIX.org é um pouco antiga, mas ainda fornece uma boa visão geral dos trade-offs (observe que long long foi posteriormente adicionado ao C99 e era necessário ter pelo menos 64 bits). Você também pode ver um artigo da Wikipedia sobre o mesmo tópico. Como defendido no final do artigo UNIX.org, a maioria dos sistemas semelhantes ao UNIX foram com o LP64, o que significa long , long long e os ponteiros são todos de 64 bits.

O Windows foi com o que é chamado de modelo de dados LLP64, o que significa que apenas long long e ponteiros são de 64 bits. long permanece em 32 bits. Parte do motivo era simplesmente que eles não queriam passar e consertar código quebrado que assumiu long ajustado em int .

    
por 11.08.2010 / 03:49
2

Como as distribuições do Linux são principalmente OpenSource, há uma grande transição já feita. A menos que você use um software proprietário (como o skype), você pode executar um sistema puro de 64 bits sem quaisquer desvantagens.

No entanto, a verdadeira diferença é que o IMHO é mais propenso vs. aberto do que unix vs. windows, pois normalmente é o software de código aberto que é portado primeiro (alguns voluntários precisam recompilar algo - talvez corrigir alguns problemas de compilação) - ou na maioria dos casos não portado em tudo, mas apenas recompilado;) - e propertary que é portado por último.

Possivelmente, além disso, no Linux, você tem repos para que a instalação seja gerenciada automaticamente - você não precisa escolher a versão de 64 bits ou de 32 bits (o sistema escolhe o seu automaticamente). No Windows, os programas são baixados e possuem versões separadas de 64 e 32 bits:

  • Duplica o tamanho dos arquivos no servidor
  • Requer que o usuário saiba sua versão. Ou até mesmo que eles diferem por algo

Eu acho que essa é a razão pela qual os binários do Windows são geralmente de 32 bits - é um tamanho único e nem todos foram para a versão de 64 bits.

    
por 18.08.2010 / 16:50
2

Na verdade, tente "O Longo Caminho para 64-bits" na Fila ACM: link Isso foi mais tarde captado pelas Comunicações da ACM. O primeiro micro de 64 bits foi o MIPS R4000, lançado na SGI Crimson 1Q1992, o Dec Alphas lançado no final daquele ano.

Os R4000s estavam sendo executados inicialmente no modo de 32 bits, depois no modo 64/32, ou seja, sistemas operacionais de 64 bits, 64 ou 32 bits. Os alfas sempre executavam o UNIX apenas em 64 bits (uma escolha razoável, já que não havia uma base instalada de aplicativos de 32 bits).

Mais tarde, nos anos 90, a SGI contribuiu com esforços para o Linux de 64 bits (para rodar em Itaniums), sobre a época em que o XFS foi portado para o Linux (ele realmente queria 64 bits).

    
por 30.10.2013 / 06:18

Tags