Qual è la differenza tra i686 e x86_64?


Risposte:


70

i686 è la versione a 32 bit e x86_64 è la versione a 64 bit del sistema operativo.

La versione a 64 bit scalerà meglio con la memoria, in particolare per carichi di lavoro come database di grandi dimensioni che devono utilizzare un sacco di RAM nello stesso processo. Non considerare l'esecuzione di un (significativo) server di database su un computer a 32 bit.

Tuttavia, per la maggior parte delle altre cose la versione a 32 bit è ok. Il codice a 32 bit consuma meno memoria, quindi avrai altro per altre cose. Il limite sulla memoria che il sistema operativo può utilizzare non è diverso, ma solo la memoria per processo.

Quindi dipende davvero da cosa vuoi usarlo. Se hai intenzione di sviluppare software per server di grandi dimensioni o di eseguire server di grandi dimensioni, utilizza 64 bit. Altrimenti usa 32.


1
Se 4 GB di RAM o meno, non installare sistemi operativi a 64 bit. Se hai più di 4 GB di RAM, dovresti installare un sistema operativo a 64 bit. Altrimenti non sarai in grado di accedere a tutta la RAM.
d -_- b

3
@toor I disaccordo, 1) I sistemi operativi a 32 bit sono in grado di utilizzare più di 4G di RAM con PAE ecc., che ora sono standard e 2) Non tutto lo spazio degli indirizzi di un processo può essere mappato su RAM fisica (distinta), quindi può essere utile avere un sistema operativo a 64 bit anche se hai (leggermente) meno di 4G di RAM.
Mark R

3
@toor Certamente se si desidera eseguire un singolo processo con 2-3 Gb di pagine anonime private, diventa difficile su un sistema operativo a 32 bit. L'esaurimento dello spazio degli indirizzi è seriamente un problema su tale sistema, piuttosto che esaurire la memoria (virtuale). Tuttavia, il passaggio a un kernel a 64 bit e uno spazio utente può causare all'attività di consumare molto più RAM, forse superando il target. Forse in alcune situazioni kernel a 64 bit, lo spazio utente a 32 bit è buono.
Mark R

1
se hai un processore a 64 bit, esegui il sistema operativo a 64 bit! duh, sembra ragionevole
Sam Watkins,

2
È strano che tutti non riescano a ricordare che i binari a 64 bit vengono normalmente compilati con il supporto per l'assemblaggio a 64 bit! In alcuni casi, essere in grado di utilizzare operazioni a 64 bit può aumentare significativamente la velocità di un'applicazione. Uno notevole che viene in mente è Crypto (OpenSSL ecc.). Se il tuo processore supporta 64 bit, di solito è meglio usare applicazioni a 64 bit!
jduncanator,

122

Risposta breve:

i686 = 32-bit Intel x86 arch 
x86_64 = 64-bit Intel x86 arch

18
Questa risposta mi è molto utile, soprattutto quando sono già a conoscenza del 32 bit contro 64 bit. La parte che mi ha buttato fuori era "i686". In genere, mi aspetterei semplicemente x86
Antony,

4
E perché x86_64 contiene la parte "86"?
mmdemirbas,

3
Bella domanda sul perché "86". Ho dovuto cercarlo. serverfault.com/questions/188177/…
thrag

8
Per generalizzare "386", "486", "586", "686" - soprannomi per l'architettura - tornare a chip come "80386", "80486", ecc.
Brad

3
@Brad ha capito bene :) 64-bit (o in questo caso il _64 bit in x86_64) si riferisce semplicemente a un'estensione del set di istruzioni x86. È sempre lo stesso assembly (-ish), tuttavia aggiunge nuove istruzioni per lavorare su numeri interi a 64 bit, ecc. Ecco perché l'x86 è ancora rilevante. Quando le persone dicono x86, il più delle volte significano davvero 32 bit poiché x86 è applicabile anche alle macchine a 64 bit.
giovedì

31

ix86 è un'indicazione delle istruzioni del processore impostate dalla generazione del processore. Ad esempio: Intel Pentium, Intel Core2Duo, AMD K6. ix86 è in circolazione da molti anni, se hai un processore realizzato dopo il 2000, probabilmente ha almeno il set di istruzioni i686. L'assenza di altri indicatori suggerisce che questa sarebbe la versione a 32 bit.

x86_64 indica l'utilizzo di registri a 64 bit e spazio di indirizzi. Scegliere questo solo se si dispone di un processore a 64 bit e si desidera utilizzare la versione a 64 bit del sistema operativo.

La scelta è tua. Credo che tutti i processori AMD Turion abbiano supporto a 64 bit. Devi solo decidere se vuoi la versione a 64 bit o la versione a 32 bit di Arch Linux.


0

spiega macemoneta

Fondamentalmente, le diverse designazioni del kernel identificano per quale set di istruzioni il compilatore è stato detto di ottimizzare. Una CPU i686 può eseguire le istruzioni i586 e i386, quindi, come hai osservato, un i686 può eseguire un kernel i386. Tuttavia, potrebbe non essere eseguito in modo ottimale come quello specificamente compilato per un i686.

Queste sono le designazioni in cui ti imbatterai in genere:

Processori x86_64

  • Athlon 64, Athlon 64-FX e Opteron di AMD
  • Processori Intel EMT64: Nocona Xeon, Pentium 4 utilizza la revisione E0 del core Prescott (AKA Pentium 4, modello F)

Processori i686 * Tutti i Intel Pentium a 32 bit (esclusi Pentium 1 e Pentium MMX) * Tutti gli Athlon AMD a 32 bit

Processori i586

  • Tutti i K AMD a 32 bit
  • Pentium 1
  • Pentium MMX

Processori i386

  • Una designazione generica "minimo comune denominatore" per CPU compatibili con Intel 80386 (include tutto quanto sopra, ma non sfrutta le istruzioni estese su quelle CPU successive).
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.