Was bedeutet "i686" in Ubuntu?

57

Um zu überprüfen, ob ich 32bit oder 64bit Ubuntu verwende. Ich habe nachgesehen in Wie überprüfe ich, ob ich ein 32-Bit- oder ein 64-Bit-Betriebssystem habe? und fand diese Antwort uname -a. Wenn es als i386 angezeigt wird, ist es 32-Bit und amd64, es ist 64-Bit, aber ich habe das folgende Ergebnis:

Linux mukund-ThinkPad-Edge-E431 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux

Was ist das i686? Ist es 32-Bit oder 64-Bit? Ich denke, es ist 32-Bit, weil alle Debian-Pakete, die ich darin installiert habe, 32-Bit sind. Kann also bitte jemand eine ausführliche Erklärung geben?

Mukund
quelle
1
dies superuser.com/a/238131/18500 und dies beantworten Ihre Frage: serverfault.com/a/188203/26514
Brian

Antworten:

56

i686 bedeutet, dass Sie ein 32 bitBetriebssystem verwenden.

Gehen Sie in das Terminal und geben Sie ein.

uname -a

Wenn Ihre Ergebnisse denen unten ähneln, haben Sie 64-Bit-Ergebnisse. Ansonsten ist es 32-Bit.

Linux ubuntu-tm 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:39:03 UTC 2011 x86_64 GNU/Linux

Wenn Sie den x86_64 haben, ist Ihr Computer 64-Bit.

Wenn Ihre Ergebnisse diesem ähnlich sind; dann hast du 32-bit.

Linux Server 2.6.15-23-386 #1 SMP Tue Mar 1 13:49:40 UTC 2011 i686 GNU/Linux

Beachten Sie den i686 im Code, dh Ihr Computer ist 32-Bit.

AKTUALISIEREN:

Geben Sie im Terminal Folgendes ein;

uname -m

Sie erhalten entweder x86_64 (64-Bit) oder etwas anderes (32-Bit).

Mit freundlicher Genehmigung: https://superuser.com/a/260999/130574 (Eine Kopie dieser Antwort)

Auch als das P6 microarchitecture, es ist die sechste Generation der Intel x86 - Mikroarchitektur, von der Pro Mikroprozessor Pentium implementiert , die im November 1995 i686 Code eingeführt wurde , soll auf Prozessoren ausgeführt werden , die mit der 32 - Bit - Intel - x86 - Plattform kompatibel sind, die umfasst alle Intel 32bit x86-Prozessoren bis einschließlich Pentium 4 usw. sowie Prozessoren von AMD und anderen Anbietern, die kompatible 32bit-Chips herstellen.

Mit freundlicher Genehmigung von Wikipedia und diesem Link

Zusamenfassend:

Dies bedeutet lediglich, dass Sie einen 32-Bit-Kernel ausführen, der Codes unterstützt, die mit der i686Prozessorarchitektur kompatibel sind .

NB:

Dies bedeutet nicht, dass Ihr System nur einen 32-Bit-Kernel ausführen kann, sondern nur, dass Sie derzeit ein 32-Bit-Kernel-basiertes Betriebssystem ausführen.

saji89
quelle
41

i686 ist eine Abkürzung für die P6-Mikroarchitektur von Intel, die mit dem Pentium Pro 1 eingeführt wurde

Kurz gesagt, es handelt sich um eine 32-Bit-Architektur. 8086 und 80286 sind sogar 16-Bit-Prozessoren. 80386 ist der erste 32-Bit-Intel-Prozessor ( zusätzlich zum Real-Modus wurde der Protected-Modus eingeführt ). 80586 ist der berühmte Pentium ™ .

i686 wird häufig zur Beschreibung der 32-Bit-P6-Prozessorarchitektur verwendet, die mit Pentium Pro / II kompatibel ist und über einen Befehlssatz verfügt. AMD K7 (Duron ™ und Athlon ™) sind beispielsweise i686.

Danatela
quelle
6
Intel hat noch nie einen Prozessor mit der Nummer 80686 hergestellt (der Pentium II hat die Nummer 80522/3/4).
Alistair Buxton
3
i686 bezieht sich auf die P6-Architektur, die mit dem Pentium Pro und nicht mit dem Pentium II begann.
Andrew Medico
27

Wie in verschiedenen Postern bereits erwähnt, handelt es sich bei Ihrem Kernel um 32-Bit-Kernel. Die Bedeutung von i686 verdient jedoch etwas mehr Erklärung.

Beim Kompilieren des Linux-Kernels (etwas, was Endbenutzer heutzutage im Allgemeinen nicht tun müssen - die guten Leute hinter Ubuntu liefern den kompilierten Kernel bereit) gibt es verschiedene Optionen, die Sie optimieren können. Eine wichtige Option ist die Unterstützung von CPU-Funktionen.

Alle x86-CPUs sind mit dem ursprünglichen Intel 80386 (abgekürzt i386) kompatibel. Wenn Sie also einen Kernel benötigen, der mit allen x86-CPUs kompatibel ist, würden Sie einen i386-Kernel kompilieren.

Moderne CPUs verfügen jedoch über viele zusätzliche Funktionen (integrierte Gleitkommaeinheit, MMX usw.), die Linux verwenden kann, wenn es dafür konfiguriert ist. Als Ausgleich zwischen Abwärtskompatibilität und Leistung wird der Ubuntu-Kernel mit Unterstützung für die Funktionen kompiliert, die auf dem Intel Pentium II (manchmal als i686 abgekürzt) verfügbar waren. Aus diesem Grund wird der Kernel als i686 angezeigt.

Dies erklärt teilweise auch, warum für 64-Bit-Prozessoren kompilierte Anwendungen manchmal schneller sind. Der i686 erschien zum ersten Mal im Jahr 1997 und moderne Prozessoren verfügen über viele Funktionen, die auf dem i686 nicht verfügbar waren (SSE, zusätzliche Register usw.), aber Anwendungen müssen mit Unterstützung für diese Funktionen kompiliert werden, was die Kompatibilität mit älteren Systemen beeinträchtigen kann. Im Gegensatz dazu wurden x86_64-CPUs erstmals im Jahr 2003 veröffentlicht, sodass Anwendungen mit Unterstützung einiger der Funktionen kompiliert werden können, die zwischen 1997 und 2003 eingeführt wurden, ohne Kompatibilitätsprobleme befürchten zu müssen.

James_pic
quelle
2
Es gibt keine Standarddefinition für "i686". Es wurde verwendet, um alles von der P6-Architektur (einschließlich CPUs, auf denen Ubuntu nicht mehr ausgeführt werden kann) über "Pentium II und höher" von Ubuntu bis hin zu "Atom / Core2 oder höher" von anderen Distributionen zu beschreiben.
Alistair Buxton
Ich mag es, wenn Sie sagen "Dies erklärt auch teilweise, warum Anwendungen, die für 64-Bit-Prozessoren kompiliert wurden, manchmal schneller sind." Als ich zum ersten Mal ein komplettes 64-Bit-System ausführte, war ich von der Geschwindigkeitsverbesserung überwältigt. Diese Beschleunigung wird jedoch nicht angezeigt, wenn Sie ein gemischtes 32- / 64-Bit-System ausführen.
Zane
2
CPUs verfügen außerdem über den Befehl CPUID, mit dem die CPU Feature-Flags melden kann. Sie können diese in / proc / cpuinfo sehen. Selbst wenn die Software für i686 kompiliert ist, werden möglicherweise die Flags überprüft, um festzustellen, ob aktuellere Funktionen unterstützt werden.
Zan Lynx
Prost auf die Informationen zu Feature-Flags und den Unklarheiten bei der CPU-Benennung. Ich muss gestehen, es ist lange her, dass ich meinen eigenen Kernel kompilieren musste (wahrscheinlich irgendwo in der 2.0-Serie), und ich stelle mir vor, dass Linux in Bezug auf CPU-Funktionen seitdem viel schlauer geworden ist. Wenn Sie der Meinung sind, dass die Präsentation verbessert werden kann, schlagen Sie bitte Änderungen vor, die Sie sich vorstellen können.
James_pic
Wenn Ihr System nur über begrenzten Arbeitsspeicher verfügt und nicht viel numerische Verarbeitung ausführt, erzielen Sie möglicherweise eine bessere Leistung mit einem 32-Bit-System, da verschiedene Elemente kompakter gespeichert werden und Ihr System vor dem erneuten Speichern etwas mehr leisten kann zur Verwendung von Disk IO. Machen Sie jedoch nicht zu viele Annahmen, ohne zu testen.
mc0e
1

Öffnen Sie die Systemeinstellungen und klicken Sie auf Details. Dann sehen Sie, welchen Betriebssystemtyp Sie haben.

Ich habe Ubuntu 12.04 LTS 64-Bit und uname -azeigt dies:

Linux ubuntu1 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Siehe https://superuser.com/questions/238112/what-is-the-difference-between-i686-and-x86-64

SPRBRN
quelle
Ein Problem ist, dass ich die Systemeinstellungen in UE 3.8 nicht finden kann. Ich habe sie gerade installiert. Die Systemeinstellungen werden in System / Administration oder System / Einstellungen nicht angezeigt. Warum?
Mukund
1
Wenn Sie es nicht finden können, können Sie vom Terminal starten:gnome-control-center
SPRBRN
0

i686 wird häufig zur Beschreibung der 32-Bit-P6-Prozessorarchitektur verwendet, die mit Pentium Pro / II kompatibel ist und über einen Befehlssatz verfügt.

Ibbu Md
quelle
0

Nach dem, was ich finden kann, können Sie auch lscpuIhre Architektur finden und sind nicht darauf beschränkt, für welche Version Ihr Kernel kompiliert wurde.

iggy12345
quelle