OS a 64 bit. Vale la pena?

13 May 2010, sezione Linux, Windows

Sono anni ormai che processori a 64bit sono in commercio e sono pronto a scommettere che un almeno il 50% di voi abbia un processore a 64bit nel proprio PC. Cominciamo con il chiarire cosa vuol dire che un sistema è a 32 o a 64 bit1.

Memorie e registri

Nel nostro computer ci sono diversi tipi di memoria come la memoria secondaria (hard disk), la memoria principale (RAM) e i registri del processore che sono delle memorie incredibilmente veloci e costose che risiedono all’interno della CPU e sono usate per memorizzare dati che servono immediatamente nell’elaborazione; la differenza tra 64 e 32 bit sta proprio in queste ultime memorie, una CPU a 32 bit ha 16 registri di dimensione 32bit, mentre una CPU 64 bit usa 16 registri a 64bit.

I vantaggi

Questo è il primo vantaggio dei processori a 64bit: poter operare su blocchi di dati grandi il doppio e quindi in certi casi eseguire in una sola istruzione ciò che in 32 bit ne richiede 2. (leggete come “aumento di velocità”)

Per capire il secondo vantaggio dobbiamo andare a vedere come è gestita la memoria RAM. La memoria è indicizzata, ciò vuol dire che è divisa in blocchi a cui sono associati degli indirizzi. Quando un processo vuole scrivere in RAM, da un’istruzione del tipo:

“Scrivi nella posizione 150.000 il dato X”

La posizione che indica dove scrivere è memorizzata in un registro come qualsiasi altro dato e quindi ha un valore massimo fissato dalla dimensione del processore. Questo significa che un processore a 32bit non ha possibilità di “indicare” una posizione in memoria che si trova oltre il valore massimo memorizzabile in 32bit che coincide con 4GB, quindi se avete un processore a 32 bit con 8GB di RAM ne sprecate ben 42 a meno che non abbiate disponibile sul processore e abilitata tramite sistema operativo l’estensione degli indirizzi “PAE”.

Confusi dalle chiacchiere? andiamo a vedere il test di Phoronix.

In alcuni casi, come questo la differenza di prestazioni è davvero sensazionale!

Dai vari test risulta che le prestazioni del 64bit sono in alcuni casi nettamente migliori del 32bit o comunque mai inferiori. E’ tutto oro quello che luccica?

Ovviamente non basta avere un processore a 64bit, ma bisogna installarci un sistema operativo a 64bit e usare programmi a 64bit, infatti un processore a 64bit può avviare senza problemi sistemi operativi e programmi a 32 bit usando i registri solo a metà ma…che spreco!

Purtroppo il punto è che spesso non tutti i programmi sono disponibili a 64bit e ciò succede soprattutto in presenza di programmi closed source come Skype, Adobe Flash, GuitarPro e tanti altri; come già detto un 64bit è in grado di avviare codice scritto per 32bit quindi teoricamente dovrebbe partire qualsiasi programma, teoricamente dico, perché il problema è che spesso i programmi si appoggiano su librerie e se il programma è a 32bit bisogna avere anche la libreria a 32bit, quindi il caso comune quando si avvia un programma a 32 bit su 64 è

error while loading shared libraries: libNOMELIBRERIA.so.0: cannot open shared object file: No such file or directory

Vi manca una libreria a 32bit. Cosa che si risolve scaricando e installando questo pacchetto e dando da terminale

getlibs libNOMELIBRERIA.so.0

Su Windows invece i programmi a 32bit generalmente non danno problemi essendo di norma forniti con tutte le dipendenze necessarie.

Conclusioni

I vantaggi dei 64bit ci sono e al contrario di quanto si può sentire in giro non è vero che bisogna avere molta RAM per giovarne. Dopotutto il processore della PS2 era a 128 bit3 e aveva 32MB di memoria.

L’unico vero ostacolo è che può esserci all’occorrenza bisogno di compilare qualche pacchetto e dover installare qualche libreria a doppio; tuttavia penso che sia davvero uno spreco non utilizzare a pieno la potenza dell’hardware di cui disponiamo quindi se non siete proprio alle prime armi e avete un processore 64bit utilizzato a metà forse è arrivato il momento di dare una formattata4e passare alla versione 64bit sia che utilizziate Linux, sia che utilizziate Windows.

  1. sarò volutamente impreciso e assolutamente poco tecnico, in modo che possa capire anche chi non sa una pataminchia di come funziona un processore []
  2. in realtà ne sprecate quasi 5 ma quello è un’altro discorso []
  3. come precisato da Davide in realtà le cpu erano 2 a 64 bit che lavoravano su registri da 128 []
  4. si fa per dire, potete anche semplicemente sovrascrivere l’installazione evitando di perdere dati []

  • Pinusso

    amd64 come Intel® 64, non è molto differente dal PAE, visto che le cpu non sono a 64bit (almeno quelle che usiamo nei normali pc).

    Supportano sistemi operativi a 64bit, che è diverso da essere cpu a 64bit.

    Il vantaggio lo dovrebbe dare il sistema a 64bit, che è diverso da usare la cpu a metà con un sistema a 32bit.

    Hai unito un po’ di informazioni prese qua e la, e magari ci sarà pure chi le prenderà per buone senza verificare.
    Tu stesso hai preso per buone molte informazioni e ne hai fatto un articolo.

  • http://www.ginlemonblog.com/chi-sono/ GinLemon

    Non sono notizie prese qua e là. E’ quello che ho studiato sui libri dell’università e che so per esperienza personale con qualche considerazione mia (altrimenti che blog sarebbe?).

    Per processore a 64bit si intende un processore in grado di manipolare dati a 64bit, cosa ben diversa dal semplice aumento di spazio di indirizzamento permesso da PAE (paragone quanto meno azzardato, come mostrano i benchmark). Detto questo è vero che amd64 e em64t non sono architetture pure 64bit ma è sbagliato anche pensare che si tratti di semplice “supporto” di codice a 64bit. L’architettura X86-64 comprende un effettiva espansione dei registri generici da 32 a 64bit.
    http://en.wikipedia.org/wiki/X86-64

    Quindi seppure la questione sia più complicata di quanto detto su credo che il mio articolo possa essere preso tranquillamente “per buono” e che spieghi efficacemente la questione a chi si avvicina all’argomento.
    Se vuoi contribuire produttivamente Pinusso, sei il benvenuto ma ti prego di ragionarci un’attimo su prima di screditare il lavoro altrui, o se proprio non resisti alla tentazione almeno usa una email vera.
    Grazie