Windows 10 è meglio installarlo a 32 o 64 bit?

Windows 10 è meglio installarlo a 32 o 64 bit?

Di per sé la questione sarebbe semplicissima: meglio la versione a 64 bit pressoché sempre, ma con alcune eccezioni, vediamo quali.

Definizione

Si definisce un sistema informatico (soprattutto un microprocessore) a 32 bit quando i registri (memoria interna), i bus dat (canali di comunicazione) e gli indirizzi sono a 32 bit e utilizza puntatori e istruzioni a sempre 32 bit. Differentemente, quando tutti i valori sopra elencati sono a 64 bit, il sistema informatico è appunto a 64 bit

Evoluzione

Intel 4004
Intel 4004

I microprocessori nascono a 4 bit (Intel 4004, anno 1971) ma diventano molto presto a 8 bit (1974). Quattro anni dopo si arriva ai 16 bit (1978 circa), mentre per arrivare ai 32 bit bisogna attendere la metà degli anni 80). Infine, a partire dalla seconda parte degli anni 90 arrivano gli attuali 64 bit. Al giorno d’oggi i microprocessori per pc sono quasi tutti a 64 bit, ma hanno alcuni registri a 128 bit; è improbabile che si passi a sistemi a 128 bit completi, se non fra parecchi anni ancora. Per gestire le potenzialità del processore e dell’intero sistema serve un sistema operativo adeguato.

I sistemi operativi Microsoft sono nati a 16 bit (PC/MS-DOS che per l’epoca era abbastanza avanzato, anno 1980), c’è poi stato un primo 32 bit nei primi anni 90 (Windows NT 3, un prodotto destinato alle aziende, ma tutto sommato poco diffuso anche negli uffici). Per l’estensione del 32 bit anche ai sistemi per privati e piccoli uffici abbiamo dovuto attendere Windows 95 (Agosto 1995, in forte ritardo rispetto a quasi tutti i concorrenti). L’introduzione del 64 bit c’è stata infine con Windows XP. Da allora i sistemi operativi Microsoft sono disponibili sia a 32 sia a 64 bit, e la scelta spetta all’utente in fase di installazione.

La diffusione effettiva del 64 bit è stata lenta: poco più dell’1% dei PC con Windows XP usava il 64 bit (mancavano driver, pochi programmi sfruttavano la nuova tecnologia). Con l’arrivo di Windows Vista si è passati a circa 1/3 delle installazioni per poi arrivare a 2/3 con Windows 7, intorno all’85% con Windows 8, fino al momento attuale dove i sistemi 32 bit sono una rarità sui PC nuovi.

Il punto principale,  che molti di voi sapranno, è la quantità di memoria gestibile: 64KB per un sistema a 16 bit (con alcuni trucchi e inefficienze si può arrivare a qualche MB), 4 GB per un sistema a 32 bit (è esistita qualche versione di Windows server a 32 bit che poteva gestire più di 4 GB di memoria usando un sistema detto PAE), 16 miliardi di GB per sistemi a 64 bit. Per essere più puntigliosi non si tratta esattamente un limite sulla quantità di memoria gestibile, ma sulla quantità di indirizzi di memoria che il sistema può gestire (peggio).

Una precisazione: MS-DOS era solo a 16 bit, Windows 95 (assieme al 98 e a ME) era un 32 bit ibrido, pensato per garantire la massima compatibilità con MS-DOS (all’epoca la maggior parte dei programmi era a 16 bit e la compatibilità era fondamentale). I sistemi attuali (da XP in poi) sono invece discendenti del vecchio Windows NT 3, un vero 32 bit che però garantisce ancora una discreta compatibilità con applicazioni a 16 bit. Questa compatibilità manca totalmente ai 64 bit che sono però compatibili con i software a 32 bit. In teoria parecchie applicazioni scritte a inizio anni 80 per MS-DOS possono ancora funzionare con Windows 10 a 32 bit, ma in pratica potreste trovarne molte che si piantano o generano errori.

Aspetti Tecnici

sistema-operativo-32-o-64-bit

Quando è nato Windows NT 3 i PC (anche server) avevano pochi MB di memoria, i 4 GB erano un limite lontano. Lo scopo del 32 bit era soprattutto quello di sfruttare le potenzialità dei processori (come l’Intel 80386) e PC di quel tempo. Facendo un piccolo esempio con un’operazione matematica 50.000+20.000=70.000 con un sistema a 16 bit de fare due operazioni in sequenza perché conosce solo i numeri fino a 65535 (2 elevato a 16), con conseguente tempo raddoppiato rispetto a quello che impiegherei con un sistema a 32 bit (che invece può “contare” direttamente fino a 4 miliardi circa). La stessa differenza si ha ovviamente tra i sistemi a 32 bit e quelli a 64 bit (se anche gli applicativi sono a 64 bit): in generale i sistemi a 64 bit sono più veloci in moltissime applicazioni che implicano calcoli.

Anche le operazioni di trasferimento dati tra processore e memoria o gli accessi alla memoria sono più lenti e macchinosi tra un sistema a 16 bit e uno a 32. Chi programmava negli anni 80/90  ricorderà quanto più complicato era gestire la memoria quando si dovevano maneggiare molti dati (e molti voleva dire qualche centinaio di KB) rispetto ad ora!

Windows NT (e anche Windows 95) erano sistemi multitasking. Si dovevano gestire periferiche (e in generale risorse e memoria) condivise. Fin quasi dagli albori dell’informatica per accedere a periferiche si usa un sistema detto DMA. In sintesi alla periferica è associato un insieme (anche finto) di locazioni di memoria. Immaginiamo la memoria come una lista di celle dove memorizzare un singolo Byte, ad esempio una lettera dell’alfabeto. La cella numero 300 potrebbe contenere l’ultimo carattere digitato sulla tastiera, la 301 informazioni sullo stato della tastiera (Num lock, Caps lock); la cella 600 potrebbe servire per mandare un carattere alla stampante, ecc. ecc.

In generale molti “numeri” di memoria sono associati a periferiche. Sui sistemi multitasking alcuni componenti (i driver, tipicamente file DLL in Windows) gestiscono la condivisione delle risorse: due programmi potrebbero voler scrivere sullo schermo o leggere informazioni dalla tastiera. Il sistema operativo, con specifiche DLL, fa da filtro in modo che ogni applicazione scriva o legga solo quando e dove le è consentito. In molti casi le DLL non sono legate all’hardware, ma sono porzioni di software condivisi/condivisibili, il discorso non cambia.

La DLL occupa ovviamente un’area di memoria per tenere i suoi dati, ma come fare perché i diversi processi non usino la stessa DLL in modo che il problema non sia semplicemente spostato? Semplice: si duplica (o triplica o più, dipende da quanti programmi abbiamo) l’area di memoria dedicata all’interazione con i programmi.

Due programmi A e B, che devono scrivere entrambi sullo schermo ottengono dal sistema operativo accessi diversi:

  • A per scrivere un carattere sullo schermo lo mette nella locazione di memoria 300,
  • B per la stessa funzione nella locazione di memoria 400 (e all’esecuzione successiva del programma potrebbe essere un altro numero).

Sarà poi la DLL a capire come gestire la scrittura per la locazione numero 300 e quella in 400 (verosimilmente scriverà in aree diverse dello schermo).

Concetti noiosi forse… Dove vogliamo arrivare?

Quello descritto va  benissimo quanto la memoria fisica è molto piccola rispetto ai numeri che si hanno per indicare le celle di memoria (es. 1GB, un miliardo di Byte, sul sistema operativo a 32 bit che gestisce numeri fino a 4 miliardi). Se così non fosse, cioè se avessimo un PC a 32 bit con 3/4GB di memoria RAM, potremmo rimanere senza numeri per poter indicare le celle di memoria reale (fisica).

Questo è il cosiddetto “problema della duplicazione delle DLL“. Su Windows 10 vi accorgete che qualcosa non va ad esempio andando in Gestione attività, scheda “Prestazioni” dove potreste trovare una quantità esagerata di memoria “Riservata per l’hardware” che di fatto vuol dire “indisponibile perché il sistema operativo non ha abbastanza indirizzi per utilizzarla”.

Precisazioni

Si è parlato di sistemi operativi di oltre 20 anni fa, ma non sono migliorati nel frattempo? Certamente sì! Però in alcuni casi i limiti sono fisici e in generale c’è il problema della compatibilità delle applicazioni: da una generazione alle successive si cerca di non introdurre modifiche che rendano incompatibile il software. Un software che funzionava su Windows 95 o XP può funzionare anche adesso con Windows 10, ma questo comporta il fatto che Windows 10 usi tuttora alcune soluzioni pensate 30 anni fa!

Un esempio ulteriore è il fatto che un sistema Windows a 64 bit impiega un sistema di protezione della memoria dagli accessi non consentiti che lo rende un po’ più sicuro di uno a 32 bit.

Un ultimo aspetto tecnico da considerare è la dimensione delle istruzioni. In un sistema operativo a 32 bit ogni istruzione è lunga 32 bit (4 Byte), in uno a 64 bit è il doppio. Quindi un programma a 64 bit occuperà più spazio sul disco e in memoria di uno a 32 bit. Non esattamente il doppio perché un software completo comprende molte altre cose (la cui dimensione non cambia) oltre alle istruzioni: testi, immagini. Questo riguarda anche il sistema operativo, mi risulta che più o meno Windows 10 a 32 bit occupi almeno 12 GB di disco, il 64 bit circa 20 (ufficialmente si richiedono rispettivamente 32 e 64GB). Dimensione più grande significa anche più tempo per aprire o copiare file.

Ma allora sistema e programmi a 32 bit sono più veloci di quelli a 64 bit? No! Almeno non in generale perché come abbiamo detto prima il 64 bit sfrutta meglio l’hardware ed è più performante. Potrebbe esserci però, in qualche scenario, un vantaggio per il 32 bit: con programmi molto semplici per esempio.

Conclusioni

32 o 64

Alla domanda iniziale, ovvero, che sistema operativo conviene usare: 32 o 64 bit? La risposta è: in generale un sistema a 64bit. Questo vale sicuramente per tutti i PC con 4 (o più) GB di RAM perché per il fatto di non avere abbastanza indirizzi potrebbero non riuscire ad utilizzare tutta la memoria. Se la memoria è 2 GB l’unica soluzione è il sistema a 32 bit anche se alcuni produttori preinstallavano comunque un 64 bit.

Un sistema 32 bit è consigliato anche per piccoli PC o tablet con disco saldato di 32 GB, perché Windows 10 a 64 bit, a lungo andare,  avrebbe più problemi di spazio.

Se si è costretti ad usare software obsoleto, concepito negli anni 90, questo potrebbe contenere moduli che non funzionano su un sistema a 64 bit. Può essere il caso di software e sistemi che comandano macchinari industriali o medico-scientifici. In alcuni casi si potrebbe usare un PC moderno con un sistema installato in una macchina virtuale.

In generale non tutte le applicazioni hanno però bisogno di grandi prestazioni, un sistema operativo a 32 bit può essere un buon compromesso in una macchina virtuale per gestire compiti semplici (e risparmiare molto spazio su disco/ backup).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.