Unterschied zwischen dem i386 Download und dem amd64?

164

Was ist der Unterschied zwischen dem Standard-i386-Download und dem amd64-Download von Ubuntu 11.04? Ich arbeite derzeit mit dem i386 auf einem AMD-Computer. Würde mein System stattdessen besser mit dem AMD64-Download funktionieren? (Auf meinem Computer lief Windows 7 64-Bit, aber ich habe es versäumt, mir das vor der Installation von Ubuntu anzuschauen.)

rauben
quelle

Antworten:

165

i386 bezieht sich auf die 32-Bit-Edition und amd64 (oder x86_64) bezieht sich auf die 64-Bit-Edition für Intel- und AMD-Prozessoren.

Wikipedia's i386 Eintrag:

Der Intel 80386, auch als i386 oder nur 386 bekannt, war ein 32-Bit-Mikroprozessor, der 1985 von Intel eingeführt wurde. Dies wird je nach Kontext als x86-, IA-32- oder i386-Architektur bezeichnet.

Wikipedia's x86_64 Eintrag:

x86-64 ist eine Erweiterung des x86-Befehlssatzes. Es unterstützt erheblich größere virtuelle und physische Adressräume als auf x86 möglich, so dass Programmierer bequem mit viel größeren Datenmengen arbeiten können ... Nach dem Start der Architektur unter dem Namen "x86-64" benannte AMD sie in AMD64 ... x86 um -64 wird von vielen in der Branche immer noch als herstellerneutraler Begriff verwendet, während andere, insbesondere Sun Microsystems (jetzt Oracle Corporation) und Microsoft, x64 verwenden.

Selbst wenn Sie eine Intel-CPU haben, sollten Sie AMD64 verwenden, um 64-Bit auf Ihrem Computer zu installieren (es werden dieselben Befehlssätze verwendet).

Ich kann es nur empfehlen. Meistens werden Sie keinen Unterschied bemerken, aber bei großen Arbeitslasten (wie Videobearbeitung, Spielen usw.) ist die Leistung des Computers schneller (der Computer kann 2 + 2 + 2 = 6 berechnen, anstatt dies zu tun) 2 + 2 = 4 + 2 = 6 in einem Beispiel). In der Windows-Welt können Sie mit einem 32-Bit-Betriebssystem nicht mehr als 3,5 GB RAM auf Ihrem Computer verwenden (auch wenn Sie 8 haben!). Sie müssten ein 64-Bit-Betriebssystem verwenden, um den gesamten Arbeitsspeicher voll auszunutzen. Für Linux gibt es jedoch keine solche Grenze (danke, Uri).

Ungeachtet dessen hat sich die Welt von 32 Bit verschoben und unterstützt nur ältere Maschinen, die nicht in der Lage sind, 64 Bit auszuführen.

Jeremy Bicha
quelle
Dieser letzte Teil ist jetzt (natürlich unter Linux) einfach nicht wahr, Sie können mehr als 3,5 GB RAM mit dem PAE-Kernel in 32 Bit verwenden.
Uri Herrera
Wäre die Beschränkung von 32-Bit-RAM auf 3,5 GBs nicht 4 GBs- <Grafikkartenspeicher>?
Chriskin
3
Der Einfachheit halber habe ich auf technische Details wie den Grafikkartenspeicher verzichtet. Mein Ziel war zu sagen "Wenn Sie mehr als 3,5-4 Gigs haben, verwenden Sie 64 Bit".
1
@ Treefroginc Was genau Tweaks?
Uri Herrera
1
64-Bit ist genauso brauchbar und stabil wie 32-Bit, mit der fast zu vernachlässigenden Ausnahme von Flash unter bestimmten Umständen zu einer bestimmten Tageszeit und wenn sich die Planeten ausrichten und kosmische Strahlen abgeben.
41

Die Architektur ist nach AMD benannt, weil AMD sie zusammen mit dem Athlon 64 erfunden hat. Ebenso ist die 32-Bit-i386-Architektur nach dem 386-Prozessor von Intel benannt, da es der erste seiner Art war, aber i386 auch auf AMD-Prozessoren funktioniert. Ja, Sie können dieses ISO-Image verwenden.

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

Mitch
quelle
10

Ja, Sie können amd64-Bit auf Intel 64-Bit-Prozessor installieren. AMD hat den x86-64-Bit-Befehlssatz-Prozessor erfunden, sodass der Name nur eine Hommage an AMD ist.

Roney Thomas
quelle
Danke, dass Sie das geklärt haben. Ich weiß, es war eine einfache Frage, aber ich konnte nirgendwo eine Antwort finden.
Dave Wolover
8

Der Unterschied zwischen amd64 und i386 ist , dass Amd64 ist 64 Bit , während i386 ist 32 Bit . Dies ist die Breite (in Bit) der im Kern verfügbaren Register.

Grundsätzlich ist die größte Zahl, die ein 32-Bit-CPU-Kern auf einmal verarbeiten kann, etwas mehr als 4,29 Milliarden, während ein 64-Bit-Kern eine Zahl von etwas mehr als 18,44 Milliarden, Milliarden verarbeiten kann.

Die Kerne in modernen PCs können sich je nach Version des installierten Betriebssystems entweder als 64-Bit- oder als 32-Bit-Prozessor verhalten.

64-Bit-Code wird in der Regel schneller ausgeführt als 32-Bit-Code, entweder weil er größere Zahlen im laufenden Betrieb verarbeiten kann oder weil die 64-Bit-Kerne mehr Register haben, sodass mehr Dinge gespeichert werden können, ohne dass Dinge in einem externen Speicher abgelegt werden müssen. Es gibt jedoch keine Garantie dafür, dass 64-Bit-Code schneller ausgeführt wird, wenn der Code nicht geschrieben wurde, um die zusätzlichen Funktionen des Prozessors zu nutzen.

Das Kompilieren auf einem 32-Bit-System erzeugt einen anderen Code als ein 64-Bit-System. Sie können dies beweisen, indem Sie den Assemblycode auf beiden Systemen kompilieren. Angenommen, Ihre C-Datei ist myfile.c, versuchen Sie es gcc -S myfile.cauf beiden Systemen und vergleichen Sie myfile.s

Gut geschriebener Code für ein 32-Bit-System sollte auf einem 64-Bit-System kompiliert und ausgeführt werden, aber nicht der gesamte Code ist gut geschrieben. Viele Programmierer treffen Annahmen über das System, die möglicherweise nicht zutreffen, wie z. B. die Registerbreite oder die Bytereihenfolge.

Ohne Zugriff auf Ihren Quellcode ist das Problem nur schwer zu erkennen, aber a segmenation faultweist darauf hin, dass versucht wurde, auf Speicher zuzugreifen, der nicht zum Programm gehört. Dies kann beispielsweise darauf hinweisen, dass mem_ptr ein 32-Bit-Zeiger ist, der in einem 32-Bit-System in Ordnung ist, in einem 64-Bit-System jedoch ein 64-Bit-Zeiger sein muss.

Warren Hill
quelle
Ich werde es überprüfen und darauf zurückkommen ... Thankx
bikram990
Die realloc(mem_ptr, 0)Funktion wird befreien Speicher zuvor zugewiesenen mit malloc, callocusw. Wenn der Zeiger in irgendeiner Weise beschädigt worden ist, dann Sie versuchen , werden Sie freien Speicher nicht besitzen und dies erzeugt einen Segmentation Fault
Warren Hill
6

Ja, Sie können diese ISO-Datei verwenden. amd64 bezieht sich auf die architektur. AMD war der erste, der eine 64-Bit-CPU entwickelte. Ich glaube, der Name wurde damals so genannt, und der Name ist geblieben. Es scheint ein wenig verwirrend, aber amd64 bedeutet nur 64-Bit.

reverendj1
quelle
10
Sie waren nicht die Ersten, die eine 64-Bit-CPU erstellt haben. Intel hatte zuvor eine, diese war jedoch nicht abwärtskompatibel und wurde daher nicht allgemein angenommen. Der Name amd64 sollte die Architektur von AMD von Intels IA64 unterscheiden, das inzwischen eingestellt wurde.
Psusi