Différence entre le téléchargement i386 et l'amd64?

164

Quelle est la différence entre le téléchargement standard i386 et le téléchargement amd64 de Ubuntu 11.04? J'utilise actuellement l'i386 sur une machine amd. Mon système fonctionnerait-il mieux avec le téléchargement amd64? (ma machine fonctionnait sous Windows 7 64 bits, mais j’ai négligé de regarder cela avant d’installer Ubuntu).

Rob
la source

Réponses:

165

i386 fait référence à l'édition 32 bits et amd64 (ou x86_64) à l'édition 64 bits pour processeurs Intel et AMD.

L'entrée i386 de Wikipedia:

L'Intel 80386, également appelé i386, ou tout juste 386, était un microprocesseur 32 bits introduit par Intel en 1985 ... Ce processus est appelé x86, IA-32 ou architecture i386, en fonction du contexte.

L'entrée x86_64 de Wikipedia:

x86-64 est une extension du jeu d'instructions x86. Il prend en charge des espaces d'adresses virtuels et physiques beaucoup plus vastes que ceux possibles sur x86, permettant ainsi aux programmeurs de travailler aisément avec des ensembles de données beaucoup plus volumineux ... Après avoir lancé l'architecture sous le nom "x86-64", AMD l'a renommé AMD64 ... x86 -64 est toujours utilisé par de nombreux acteurs du secteur comme terme indépendant du vendeur, tandis que d'autres, notamment Sun Microsystems (maintenant Oracle Corporation) et Microsoft, utilisent x64.

Même si vous avez un processeur Intel, vous devez utiliser AMD64 pour installer 64 bits sur votre ordinateur (il utilise les mêmes jeux d'instructions).

Je recommande fortement de l'utiliser. La plupart du temps, vous ne remarquerez pas de différence, mais pour les charges de travail importantes (telles que le montage vidéo, les jeux, etc.), l’ordinateur fonctionnera plus rapidement (l’ordinateur pourra calculer 2 + 2 + 2 = 6 au lieu d’avoir à le faire). 2 + 2 = 4 + 2 = 6 dans un exemple). Dans le monde Windows, un système d'exploitation 32 bits ne vous laissera pas utiliser plus de 3,5 Go de RAM sur votre ordinateur (même si vous en avez 8!). Vous devez utiliser un système d'exploitation 64 bits pour utiliser pleinement toute la mémoire vive. Pour Linux, cependant, il n'y a pas de telle limite (merci, Uri).

Quoi qu’il en soit, le monde est passé de 32 bits et il n’est là que pour prendre en charge les anciennes machines incapables d’exécuter en 64 bits.

Jeremy Bicha
la source
Cette dernière partie est maintenant (sous Linux bien sûr). Ce n’est pas vrai. Vous POUVEZ utiliser plus de 3,5 Go de RAM avec le noyau PAE en 32 bits.
Uri Herrera
La limite de 3,5 Go de 32 Go de RAM ne serait-elle pas de 4 Go - <mémoire de carte graphique>?
Chriskin
3
Par souci de simplicité, j'ai omis des détails techniques tels que la mémoire de la carte graphique. Mon objectif était de dire "si vous avez plus de 3,5-4 concerts, utilisez 64 bits".
1
@Treefroginc Quels ajustements exacts?
Uri Herrera
1
64 bits est tout aussi utilisable et stable que 32 bits, à l'exception quasi-négligeable de Flash dans certaines circonstances à une certaine heure de la journée et si les planètes s'alignent pour émettre des rayons cosmiques.
41

L’architecture porte le nom d’AMD parce qu’AMD l’a inventée, avec l’Athlon 64. De même, l’architecture i386 32 bits porte le nom du processeur 386 d’Intel, car c’était le premier du genre, mais l’i386 fonctionnera également avec les processeurs AMD. Alors oui, vous pouvez utiliser cette image ISO.

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

Mitch
la source
10

oui, vous pouvez installer amd64 bit sur un processeur Intel 64 bit. AMD a inventé le processeur de jeu d'instructions x86-64 bits, le nom n'est donc qu'un hommage à AMD.

Roney Thomas
la source
Merci d'avoir clarifier les choses. Je sais que c’était une question simple, mais je n’ai trouvé la réponse nulle part.
Dave Wolover
8

La différence entre amd64 et i386 est que amd64 est à 64 bits alors que i386 est à 32 bits . C'est la largeur (en bits) des registres disponibles dans le noyau.

Fondamentalement, le plus grand nombre qu'un cœur de processeur 32 bits peut gérer en une fois dépasse un peu plus de 4,29 milliards de dollars, tandis qu'un cœur de 64 bits peut gérer un nombre légèrement supérieur à 18,44 milliards de milliards.

Les cœurs des ordinateurs modernes sont capables de se comporter comme un processeur 64 bits ou 32 bits en fonction de la version du système d'exploitation que vous avez installée.

Le code 64 bits a tendance à être plus rapide que le code 32 bits, soit parce qu'il peut traiter des nombres plus importants à la volée, soit parce que les cœurs 64 bits ont plus de registres, ce qui permet de stocker davantage d'éléments sans avoir à les stocker dans la mémoire externe. Bien que rien ne garantisse que le code 64 bits fonctionnera plus rapidement si le code n'a pas été écrit pour tirer parti des fonctionnalités supplémentaires du processeur.

La compilation sur un système 32 bits produira un code différent de celui d'un système 64 bits. Vous pouvez le prouver en compilant en code assembleur sur les deux systèmes. En supposant que votre fichier C est myfile.c, essayez gcc -S myfile.csur les deux systèmes et comparez myfile.s

Un code bien écrit pour un système 32 bits doit être compilé et exécuté sur un système 64 bits, mais tout le code n'est pas bien écrit. De nombreux programmeurs font des hypothèses sur le système qui peuvent ne pas être vraies: telles que la largeur du registre ou l'ordre des octets.

Sans accès à votre code source, il est difficile de voir quel est le problème, mais un segmenation faultindique qu'une tentative d'accès à une mémoire n'appartenant pas au programme a été effectuée. Cela peut, par exemple, indiquer que mem_ptr est un pointeur 32 bits, ce qui convient parfaitement à un système 32 bits mais doit être un pointeur 64 bits sur un système 64 bits.

Warren Hill
la source
Je vais vérifier et revenir sur ce ... Thankx
bikram990
La realloc(mem_ptr, 0)fonction est libérer de la mémoire allouée précédemment avec malloc, callocetc. Si ce pointeur a été endommagé de quelque façon que vous essayez de libérer de la mémoire vous ne possédez pas et cela génère une erreur de segmentation
Warren Hill
6

Oui, vous pouvez utiliser ce .ISO. amd64 fait référence à l'architecture. AMD a été le premier à créer un processeur 64 bits. Je pense donc qu'il s'appelait ainsi à l'époque et que le nom était resté. Cela semble un peu déroutant, mais amd64 signifie simplement 64 bits.

reverendj1
la source
10
Ils n'étaient pas les premiers à créer un processeur 64 bits. Intel en avait un auparavant, mais il n'était pas compatible avec les versions antérieures et n'a donc pas été largement adopté. Le nom amd64 devait différencier l'architecture d'AMD de l'IA64 d'Intel, qui a été abandonnée.
Psusi