Frage Unterschied zwischen dem i386 Download und dem amd64?


Was ist der Unterschied zwischen Standard-i386-Download und Amd64-Download von Ubuntu 11.04? Ich führe gerade den i386 auf einem AMD-Rechner, würde mein System stattdessen besser mit dem AMD64-Download funktionieren? (Meine Maschine lief Windows 7 64bit, aber ich habe es versäumt, sich das vor der Installation von Ubuntu anzuschauen).


149
2017-07-23 23:57


Ursprung


Verwandt (aber kein Duplikat): Ist die 64-Bit-Version von Ubuntu nur mit AMD-CPUs kompatibel? - Eliah Kagan
Siehe auch: Was sind die Unterschiede zwischen 32-Bit und 64-Bit, und welche sollte ich wählen? - Wilf


Antworten:


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 bekannt als i386 oder nur 386, war ein 32-Bit-Mikroprozessor, der 1985 von Intel eingeführt wurde. Dieser 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 es auf x86 möglich ist, und ermöglicht so Programmierern, bequem mit viel größeren Datenmengen zu arbeiten ... AMD hat nach dem Start der Architektur unter dem Namen "x86-64" AMD64 ... x86 umbenannt -64 wird in der Branche immer noch als herstellerunabhängiger 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 verwendet die gleichen Befehlssätze).

Ich empfehle es sehr, es zu benutzen. In den meisten Fällen werden Sie keinen Unterschied bemerken, aber für große Arbeitslasten (wie Videobearbeitung, Spiele usw.) wird der Computer schneller arbeiten (der Computer hat die Fähigkeit, 2 + 2 + 2 = 6 zu berechnen, anstatt tun zu müssen 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 (selbst wenn Sie 8 haben!). Sie müssen ein 64-Bit-Betriebssystem verwenden, um den gesamten Arbeitsspeicher voll zu nutzen. Für Linux gibt es jedoch kein solches Limit (Danke, Uri).

Unabhängig davon hat sich die Welt von 32 Bit verschoben und es ist nur dort, um ältere Maschinen zu unterstützen, die 64 Bit nicht ausführen können.


150
2017-07-24 00:00



Der letzte Teil, ist nun (in Linux natürlich) einfach nicht wahr, du kannst mehr als 3,5 GB RAM mit dem PAE-Kernel in 32 Bit verwenden. - Uri Herrera
wäre die 3,5 gbps RAM Begrenzung von 32bit nicht 4gbs- <Grafikkartenspeicher>? - Chriskin
Aus Gründen der Einfachheit habe ich technische Details wie den Grafikkartenspeicher weggelassen. Mein Ziel war es zu sagen "wenn du mehr als 3.5-4 Gigs hast, benutze 64 Bit".
@ Treefroginc Was genau Tweaks? - Uri Herrera
64 Bit ist jedes Mal so brauchbar und stabil wie 32 Bit mit der fast vernachlässigbaren Ausnahme von Flash unter bestimmten Umständen während einer bestimmten Tageszeit und wenn sich die Planeten auf kosmische Strahlung ausrichten.


Die Architektur ist nach AMD benannt, weil AMD es erfunden hat, mit der   Athlon 64. In ähnlicher Weise ist die 32-Bit-i386-Architektur benannt   Intel 386 Prozessor, weil es der erste seiner Art war, aber i386   funktioniert auch auf AMD-Prozessoren. Also können Sie dieses ISO-Image verwenden.

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


40
2018-05-31 21:00





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


8
2018-05-31 21:23



Danke für das Aufräumen. Ich weiß, es war eine einfache Frage, aber ich konnte die Antwort nirgends finden. - Dave Wolover


Ja, Sie können das .ISO verwenden. amd64 bezieht sich auf die Architektur. AMD war der erste, der eine 64-Bit-CPU erstellte, daher glaube ich, dass sie zu dieser Zeit hieß und der Name festhielt. Es scheint ein wenig verwirrend, aber amd64 bedeutet nur 64-Bit.


6
2018-05-31 20:59



Sie waren nicht die Ersten, die eine 64-Bit-CPU erstellten. Intel hatte eine vorher, aber es war nicht abwärtskompatibel, also wurde es nicht weit angenommen. Der Name amd64 sollte die Architektur von AMD von Intels IA64 unterscheiden, die nun eingestellt wurde. - psusi


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

Im Grunde genommen ist die größte Zahl, die ein 32-Bit-CPU-Kern auf einmal bewältigen kann, etwas über 4,29 Milliarden, während ein 64-Bit-Kern eine Anzahl von etwas über 18,44 Milliarden Milliarden verarbeiten kann.

Die Kerne in modernen PCs können sich abhängig von der Version des installierten Betriebssystems entweder als 64-Bit- oder als 32-Bit-Prozessor verhalten.

64-Bit-Code tendiert dazu, schneller als 32-Bit-Code zu laufen, entweder weil er mit größeren Zahlen umgehen kann oder weil die 64-Bit-Kerne mehr Register haben, so dass mehr Dinge gespeichert werden können, ohne Dinge in den externen Speicher zu legen. 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.

Kompilieren auf einem 32-Bit-System wird anderen Code als ein 64-Bit-System erzeugen. Sie können dies beweisen, indem Sie den Assemblercode auf den beiden Systemen kompilieren. Angenommen, Ihre C-Datei ist meinedatei.c Versuchen gcc -S myfile.c auf beiden Systemen und vergleichen meine Akten

Gut geschriebener Code für ein 32-Bit-System sollte kompilieren und auf einem 64-Bit-System laufen, aber nicht der gesamte Code ist gut geschrieben. Viele Programmierer machen Annahmen über das System, die möglicherweise nicht wahr sind: wie Registerbreite oder Byte-Reihenfolge.

Ohne Zugriff auf Ihren Quellcode ist es schwierig zu sehen, was das Problem ist, aber a segmenation fault zeigt an, dass ein Versuch unternommen wurde, auf Speicher zuzugreifen, der nicht zum Programm gehört. Dies kann beispielsweise darauf hinweisen mem_ptr ist ein 32-Bit-Zeiger, der in einem 32-Bit-System in Ordnung ist, aber auf einem 64-Bit-System ein 64-Bit-Zeiger sein muss.


6
2018-03-18 13:24



Ich werde es überprüfen und darauf zurückkommen ... Danke - bikram990
Das realloc(mem_ptr, 0) Die Funktion gibt Speicher frei, der zuvor mit zugewiesen wurde malloc, callocusw. Wenn dieser Zeiger in irgendeiner Weise beschädigt wurde, versuchen Sie, Speicher freizugeben, den Sie nicht besitzen, und dies erzeugt einen Segmentierungsfehler - Warren Hill