Diferença entre o download do i386 e o ​​amd64?

164

Qual é a diferença entre o download padrão do i386 e o ​​download amd64 do Ubuntu 11.04? Atualmente, estou executando o i386 em uma máquina amd. Meu sistema funcionaria melhor com o download do amd64? (minha máquina estava executando o Windows 7 de 64 bits, mas não olhei para isso antes de instalar o Ubuntu).

Roubar
fonte

Respostas:

165

O i386 refere-se à edição de 32 bits e amd64 (ou x86_64) refere-se à edição de 64 bits para os processadores Intel e AMD.

Entrada i386 da Wikipedia:

O Intel 80386, também conhecido como i386, ou apenas 386, era um microprocessador de 32 bits introduzido pela Intel em 1985 ... Isso é chamado de x86, IA-32 ou arquitetura i386, dependendo do contexto.

Entrada x86_64 da Wikipedia:

x86-64 é uma extensão do conjunto de instruções x86. Ele suporta espaços de endereço virtuais e físicos muito maiores do que os possíveis no x86, permitindo que os programadores trabalhem convenientemente com conjuntos de dados muito maiores ... Depois de iniciar a arquitetura com o nome "x86-64", a AMD renomeou-o AMD64 ... x86 -64 ainda é usado por muitos na indústria como um termo neutro em relação ao fornecedor, enquanto outros, principalmente a Sun Microsystems (agora Oracle Corporation) e a Microsoft, usam x64.

Mesmo se você tiver uma CPU intel, deve usar o AMD64 para instalar 64 bits no seu computador (ele usa os mesmos conjuntos de instruções).

Eu recomendo usá-lo. Na maioria das vezes, você não notará diferença, mas para grandes cargas de trabalho (como edição de vídeo, jogos etc.), o computador terá um desempenho mais rápido (o computador pode calcular 2 + 2 + 2 = 6 em vez de precisar fazer isso. 2 + 2 = 4 + 2 = 6 em um exemplo). No mundo do Windows, um sistema operacional de 32 bits não permitirá que você use mais de 3,5 GB de RAM no seu computador (mesmo se você tiver 8!). Você precisaria usar um sistema operacional de 64 bits para usar totalmente toda a RAM. Para o Linux, no entanto, não existe esse limite (obrigado, Uri).

Independentemente disso, o mundo mudou de 32 bits e só existe para suportar máquinas antigas que são incapazes de executar 64 bits.

Jeremy Bicha
fonte
Essa última parte está agora (no Linux, é claro). Não é verdade, você PODE usar mais do que 3,5 GB de RAM com o kernel PAE em 32 bits.
Uri Herrera
os 3.5gbs de limitação de ram de 32 bits não seriam 4gbs- <placa gráfica de memória>?
31911 Chriskin
3
Por uma questão de simplicidade, omiti os aspectos técnicos, como a memória da placa gráfica. Meu objetivo era dizer "se você tiver mais de 3,5 a 4 shows, use 64 bits".
1
@Treefroginc O que exatamente Tweaks?
Uri Herrera
1
64 bits é tão utilizável e estável quanto 32 bits, com a exceção quase insignificante do Flash em certas circunstâncias durante um determinado período do dia e se os planetas se alinham emitindo raios cósmicos.
41

A arquitetura recebeu o nome da AMD porque a AMD a inventou, com o Athlon 64. Da mesma forma, a arquitetura i386 de 32 bits recebeu o nome do processador 386 da Intel, porque foi a primeira desse tipo, mas o i386 também funcionará nos processadores AMD. Então, sim, você pode usar essa imagem ISO.

Fonte: https://superuser.com/questions/128482/ubuntu-amd64-vs-i386

Mitch
fonte
10

sim, você pode instalar o amd64 bit no processador Intel de 64 bits. A AMD inventou o processador do conjunto de instruções x86-64 bits, de modo que o nome é apenas uma homenagem à AMD.

Roney Thomas
fonte
Obrigado por esclarecer isso. Eu sei que era uma pergunta simples, mas não consegui encontrar a resposta em lugar nenhum.
Dave Wolover
8

A diferença entre amd64 e i386 é que amd64 é de 64 bits enquanto i386 é de 32 bits . Essa é a largura (em bits) dos registros disponíveis no núcleo.

Basicamente, o maior número que um núcleo de CPU de 32 bits pode suportar de uma só vez é pouco mais de 4,29 bilhões, enquanto um núcleo de 64 bits pode lidar com um pouco mais de 18,44 bilhões de bilhões.

Os núcleos nos PCs modernos são capazes de se comportar como um processador de 64 ou 32 bits, dependendo da versão do sistema operacional que você instalou.

O código de 64 bits tende a executar mais rapidamente do que o código de 32 bits, porque pode lidar com números maiores em movimento ou porque os núcleos de 64 bits têm mais registros, para que possam armazenar mais coisas sem precisar colocar coisas na memória externa. Embora não haja garantia de que o código de 64 bits seja executado mais rapidamente se o código não tiver sido gravado para aproveitar os recursos extras do processador.

A compilação em um sistema de 32 bits produzirá um código diferente do sistema de 64 bits. Você pode provar isso compilando o código de montagem nos dois sistemas. Supondo que seu arquivo C seja myfile.c, tente gcc -S myfile.cnos dois sistemas e compare myfile.s

Um código bem escrito para um sistema de 32 bits deve ser compilado e executado em um sistema de 64 bits, mas nem todo o código está bem escrito. Muitos programadores fazem suposições sobre o sistema que podem não ser verdadeiras: como largura do registro ou ordem de bytes.

Sem acesso ao seu código-fonte, é difícil ver qual é o problema, mas a segmenation faultindica que foi feita uma tentativa de acessar a memória que não pertence ao programa. Isso pode, por exemplo, indicar que o mem_ptr é um ponteiro de 32 bits que é bom em um sistema de 32 bits, mas precisa ser um ponteiro de 64 bits em um sistema de 64 bits.

Warren Hill
fonte
Vou verificar-lo e voltar sobre este ... Thankx
bikram990
A realloc(mem_ptr, 0)função é memória liberando previamente alocado com malloc, callocetc. Se esse ponteiro foi corrompido de alguma forma, em seguida, você está tentando liberar memória que não possui e isto gera uma falha de segmentação
Warren Hill
6

Sim, você pode usar esse .ISO. amd64 refere-se à arquitetura. A AMD foi a primeira a criar uma CPU de 64 bits, então eu acredito que foi nomeado assim na época, e o nome ficou preso. Parece um pouco confuso, mas amd64 significa apenas 64 bits.

reverendj1
fonte
10
Eles não foram os primeiros a criar uma CPU de 64 bits. A Intel tinha um antes, mas não era compatível com versões anteriores, portanto não foi amplamente adotado. O nome amd64 era diferenciar a arquitetura da AMD do IA64 da Intel, que agora foi descontinuado.
Psusi 31/05/12