|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Jun 2008
Città: Teramo
Messaggi: 2235
|
Thread provvisorio - Architettura sistemi operativi, 32bit-64bit, chiarimenti e info
Leggere sotto
La maggior parte delle CPU sono progettate in maniera da far sì che un singolo registro intero possa contenere l'indirizzo di un qualunque dato all'interno dello spazio di indirizzamento della memoria virtuale. Per cui, il numero totale di indirizzi nella memoria virtuale — la totalità dei dati che il computer può mantenere nell'area di lavoro — è determinato dalla dimensione di questi registri. A partire dagli anni 60 con il System 360 della IBM, continuando negli anni 70 con (insieme a molti altri) il minicomputer DEC VAX ed infine negli anni 80 con il processore Intel 80386, si sviluppò un consenso de facto sul fatto che 32 bit fosse una buona dimensione per i registri. Un registro a 32 bit consente di indirizzare 2^32 indirizzi, o 4 gigabyte di memoria. Nel periodo in cui queste architetture vennero progettate, 4 gigabyte di memoria erano talmente al di là della quantità di memoria normalmente installata da venire considerati sufficienti. Un'altra importante ragione è che 4 miliardi (circa) di indirizzi bastano per assegnare una unica referenza a molti oggetti fisicamente numerabili in applicazioni come i database. Col passare del tempo e con la continua diminuzione dei costi della memoria (vedi la legge di Moore), ora dei primi anni 90, cominciarono ad apparire macchine con quantitativi di RAM vicini ai 4 gigabyte, e l'uso di uno spazio di memoria virtuale maggiore di 4 gigabyte cominciò ad essere richiesto per gestire certe tipologie di problemi. In risposta, un certo numero di aziende cominciò a rilasciare nuove famiglie di chip con architettura a 64 bit, inizialmente per i supercomputer e le macchine (workstation e server) di fascia alta. La tecnologia a 64 bit è gradualmente arrivata anche sui normali PC, con il PowerMac (2003) e l'iMac (2004) della Apple che usano entrambi processori a 64 bit (Apple li chiama G5), e l'architettura AMD "AMD64" (che Intel ripropose con scarso successo sotto il nome "EM64T") che si diffonde nei PC di fascia alta. L'arrivo delle architetture a 64 bit incrementa la quantità di memoria indirizzabile fino 2^64 byte, equivalenti a 17.179.869.184 gigabyte o 16 exabyte. Una quantità enorme, così come lo erano 4 gigabyte pochi decenni fa. Ultima modifica di Mauro B. : 09-04-2009 alle 22:08. |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Jun 2008
Città: Teramo
Messaggi: 2235
|
"La questione è interessante perchè coinvolge hardware e software... e ritengo sia propedeutica anche rispetto a questa discussione. almeno per fare scelte future oculate ed attente ai limiti o ai benefici intrinsechi al proprio assetto."
LEGGENDA: 2^32=4294967296/1024^3=4GB limite matematico ai 4GB; Nota: la ragione per cui il SO intercetta un numero inferiore di byte rispetto ai 4gb indicati è che parte della memoria è destinata a servire preferenziallmente altre periferiche. Pro e contro Un errore comune è quello di ritenere che le architetture a 64 bit non siano migliori di quelle a 32 a meno che non si abbiano più di 4 gigabyte di memoria. Questo non è completamente vero: Alcuni sistemi operativi riservano per uso proprio una porzione dello spazio di indirizzamento di ciascun processo, riducendo di fatto lo spazio libero indirizzabile dai programmi. Per esempio le DLL di Windows XP e i componenti di sistema che girano in modalità utente vengono mappati all'interno dello spazio di indirizzamento di ogni processo, lasciando solo 2 o 3 gigabyte (dipende dalla configurazione del sistema) di spazio di indirizzamento disponibile, anche se la macchina ha 4 gigabyte di RAM. Questa restrizione non è presente nella versione a 64 bit di Windows. La mappatura in memoria dei file sta diventando sempre più problematica sui sistemi a 32 bit, specialmente dopo l'introduzione di soluzioni economiche per la scrittura di DVD. File da 4 GB sono ormai usuali, e viste le dimensioni la loro mappatura in memoria su macchine a 32 bit è complicata (è necessario tenerne in memoria solo una certa porzione per volta). Questo porta a problemi prestazionali, dal momento che la mappatura in memoria resta uno dei metodi più efficienti per i trasferimenti dal disco alla memoria, quando viene implementata correttamente dal sistema operativo. Il maggior svantaggio delle architetture a 64 bit rispetto a quelle a 32 risiede nel fatto che gli stessi dati occupano uno spazio leggermente maggiore in memoria (a causa dei puntatori più larghi, altri tipi di dati e allineamenti -i compilatori in genere inseriscono dei byte inutilizzati allo scopo di allineare l'indirizzo dei dati a una qualche potenza del 2, spesso pari al numero di bit dell'architettura-). Questo incrementa le richieste di memoria dei programmi, e può avere implicazioni nell'uso efficiente della cache (che ha dimensioni limitate). Mantenere parzialmente un modello di dati a 32 bit è un modo, in genere ragionevolmente efficiente, di gestire la situazione. Infatti, il sistema operativo z/OS, decisamente orientato alle prestazioni, usa questo approccio e costringe il codice eseguibile a risiedere in un numero qualsiasi di spazi di indirizzamento a 32 bit mentre i dati possono opzionalmente risiedere in regioni a 64 bit. Linux a 64 e 32 bit a confronto: I kernel a 64 bit sono diventati più comuni negli ultimi anni, ma le applicazioni a 64 bit stentano ancora a decollare. A volte può essere difficile trovare pacchetti precompilati per architetture a 64 bit, anche se in molti casi è sufficiente ricompilare i sorgenti (a patto di avere le conoscenze tecniche necessarie). Benché i sistemi a 64 bit possano eseguire anche programmi a 32 bit, nel sistema devono essere installate entrambe le versioni delle librerie. Un problema può venire dall'impossibilità di riprodurre certi formati audio/video proprietari per la mancanza dei sorgenti dei codec. In questi casi è necessario riprodurli facendo ricorso a programmi e codec a 32 bit. I sistemi a 32 bit sono ad oggi, nella maggior parte dei casi, preferibili. Gli utenti possono aggiornare più facilmente il sistema e trovare velocemente pacchetti precompilati in rete. D'altra parte, per gli utenti più esigenti (le aziende o i centri di calcolo per esempio) i sistemi a 64 bit presentano invece diversi vantaggi, soprattutto sui sistemi cluster. Modelli di dati a 64 bit Convertire applicazioni scritte in linguaggi ad alto livello da 32 a 64 bit presenta diversi gradi di difficoltà. Un problema ricorrente è che l'autore del programma ha dato per scontato il fatto che un puntatore (una variabile che contiene un indirizzo di memoria) ha la stessa dimensione di una variabile di un qualche altro tipo e che sia quindi possibile spostare valori tra i due tipi senza perdere informazioni. Questo assunto è valido su alcune macchine a 32 (e anche su alcune a 16), ma fallisce su architetture a 64. Il linguaggio C e il suo discendente C++ rendono particolarmente semplice compiere questo tipo di errore. Per evitare questo problema, in C e C++, l'operatore sizeof() può essere usato per determinare le dimensioni dei vari tipi di dati, nel caso su queste si debbano prendere delle decisioni durante l'esecuzione. Inoltre, i file limits.h (standard C99) e climits (standard C++) danno ulteriori informazioni utili; sizeof() si limita a restituire la dimensione in byte, il che a volte non è sufficiente, perché neanche la dimensione del byte è ben definita in C e C++. È necessario essere prudenti e usare il tipo ptrdiff_t (nel file header <stddef.h>) quando si effettuano operazioni di aritmetica dei puntatori; troppo codice usa invece (sbagliando) i tipi "int" e "long". Né il C, né il C++ definiscono la lunghezza in bit di un puntatore, int o long. In molti ambienti di programmazione su sistemi a 32 bit le variabili puntatore, "int" e "long" sono tutte lunghe 32 bit. In molti ambienti di programmazione a 64 bit, le variabili "int" sono ancora lunghe 32 bit, ma le "long" e i puntatori passano a 64. Questo viene descritto come avente un modello dati di tipo LP64. Un'altra alternativa è il modello ILP64 dove anche il tipo "int" passa a 64 bit. Ad ogni modo, nella maggior parte dei casi le modifiche necessarie per migrare del codice verso i 64 bit sono relativamente semplici, e molti programmi scritti correttamente possono essere semplicemente ricompilati senza variazioni. Una ulteriore alternativa è il modello LLP64 che mantiene la compatibilità con il codice a 32 bit, mantenendo a 32 bit i tipi "int" e "long". Il tipo "long long" ("LL") è ad almeno 64 bit su tutte le piattaforme comprese quelle a 32 bit. È da notare che il modello di programmazione è una scelta da fare in base al compilatore, e ne possono coesistere più di uno per lo stesso sistema operativo. Comunque in genere prevale il modello utilizzato dalle API del sistema operativo. Un'altra considerazione riguarda il modello dati usato per i driver. I driver formano la maggior parte del codice presente nei sistemi operativi moderni (benché molti potrebbero non essere in esecuzione mentre il sistema operativo sta girando). Molti driver usano pesantemente i puntatori ed in certi casi devono caricare puntatori di una dimensione precisa nei registri hardware di gestione del DMA. Per esempio, un driver per un dispositivo PCI a 32 bit che necessiti che quest'ultimo carichi in memoria dati ad un indirizzo oltre la barriera dei 4 gigabyte non potrebbe portare a termine l'operazione poiché il puntatore è troppo grande per essere contenuto nei registri del dispositivo. Il problema si risolve facendo sì che il sistema operativo tenga in considerazione le restrizioni del dispositivo al momento di generare le richiesta DMA. informazioni tratte da wikipedia. Domanda di un utente tramite yahooanswer (un anno fa) : "Che diferenza cè tra sistema operativo 64 bit e 32 bit grazie"" La replica qui: http://it.answers.yahoo.com/question...6094543AAejXQU ![]() Vantaggi e svantaggi esplicati nel sito w7 forum: Windows 7 32 o 64? Not only are there going to be several Windows 7 editions, but you will also need to decide if you are going to run a 32 bit or 64 bit version of the operating system. If your CPU is more than a few years old there is a good chance that you can only run the 32 bit version of Windows 7, however if you have a modern processor you may have to decide between each version. The 32 or 64 bit architecture refers to the memory address length that can be referenced by the processor. This also has an impact on the maximum amount of memory that can be utilised, which is 4GB for a 32 bit CPU (but in reality the maximum accessible ram is closer to 3.4 GB due to other hardware allocations). Having a 64 bit OS doesn’t automatically make all applications faster because much of today’s software is written and optimised for a 32 bit era. You’ll need software specifically optimised for 64 bit processing to take advantage of any speed improvements. Fortunately, many games are already including such enhancements. You may think that using a 64 bit OS for a 64 bit processer is an obvious decision, but it is not so straightforward. Introducing a new architecture will cause new compatibility and driver problems that wouldn’t exist under the old 32 bit version. Pros and Cons of a 64 bit system: You can address much more than 4GB of memory, which is ideal for avid gamers, CAD, video editors and heavy multi-taskers. However, any 32 bit software you use will still be restricted to 4GB memory – you need a 64 bit CPU, OS and applications to take full advantage of the extra RAM. 16 bit applications will no longer run. Although this is unlikely to be a problem, if you use very old software (from the Windows 3.1 days!) then it will not work under a 64 bit OS. Existing 32 bit drivers no longer work.If you have older or poorly supported hardware you may find that it can no longer be used. Got a 7 year old scanner that just about works in Vista? You may not be able to get it working in 64 bit Windows 7. Unsigned kernel-mode drivers no longer work. Along with the issue above, the inability to run unsigned kernel mode drivers will cause problems for old hardware. (There is reportedly a way to bypass this check). Running some 32 bit applications on a 64 bit OS could actually be slower. The additional overheads in running 32 bit software in 64 bit mode could cause a slight degradation in performance. It will take some time for 64 bit software to become the norm. The conclusion? Well, it depends on what you use your system for. If you have a 64 bit capable CPU but use older hardware, it would be safe to stay with a 32 bit version for the time being to ensure that you don’t need extra upgrades. If you’ve got the latest hardware and drivers are available, then it may be worth while taking the step up to a 64 bit OS. If you regularly work with resource hungry applications that are 64 bit optimised (such as video editing, CAD and image packages) then it would be especially beneficial to be able to work with over 4GB of RAM amongst the other improvements. In the not too distant future , 64 bit computing will be a common standard – as all hardware from the last couple of years has been designed with this in mind. Until a complete upgrade cycle has passed for the majority of users, there is still a strong case for some users to stick with 32 bit Windows for the time being. Once more 64 bit applications start to appear, it would be a good time to make the switch to the new architecture. Non solo si stanno realizzando diverse edizioni di windows 7, ma si potrà decidere tra piattaforme a 32 o 64 bit di questo SO. Se la CPU è un modello passato occorrerà propendere per la versione a 32 bit, in caso contrario si potrà scegliere tra le due.... Un sistema operativo a 64 bit non determinerà sistematicamente un incremento di velocità, poichè occirrerà un software speficatamente ottimizzato per l'architettura a 64 bit... Si può pensare che disponendo di un processore che operi a 64 bit sia doveroso utilizzare un sistema operativo a 64 bit, tuttavia non è così ovvio. Introdurre una nuova architettura determinerà problemi di incompatibilità e di driver. Vantaggi e svantaggi di un SO a 64 bit: vantaggi:
In conclusione la convenienza di adottare un sitema operativo a 32 o a 64 bit dipende dalla configurazione del proprio hardware.... In futuro le uniche piattaforme commercializzate saranno a 64 bit... (elementi essenziali tradotti dal testo in inglese). FAQ, A DOMANDE RISPOSTE (in costruzione):
Ultima modifica di Mauro B. : 10-04-2009 alle 22:31. Motivo: aggiornamenti |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Feb 2008
Messaggi: 4046
|
non ti fifare
![]() ![]() Tu devi solo tenere in ordine i primi post.. ![]() Inizia con il riportare quello che è emerso nel 3D di Windows7.. o almeno quello che tu hai capito da quei post.. in modo che possa essere sottoposto a verifica di tutti coloro che hanno interesse ed insieme capire quale è la scelta migliore per ognuno di noi. ![]() Vai tranquillo... |
![]() |
![]() |
![]() |
#4 | |
Bannato
Iscritto dal: Jun 2008
Città: Teramo
Messaggi: 2235
|
Quote:
|
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Sep 2006
Messaggi: 173
|
Bella idea questo thread... volevo solo far notare a Mauro B. un paio di errori di battitura nel primo post che potrebbero confondere un po' le idee di chi legge.
Nel primo paragrafo hai scritto 232 indirizzi invece di 2^32 indirizzi. Stessa cosa nel secondo paragrafo con 264 byte invece di 2^64 byte. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2006
Messaggi: 1164
|
ma io mi chiedo.. invece di grosse spiegazioni.. anche se era ottima questa.. un great allo scrittore
![]() basta una frase tipo questa. Ragazzi e gnocchesse, se volete provare il 64bit, tranne per il processore l'itanium, potete installare quel S.O. senza perdere drastiche prestazioni nell'utilizzo del software 32bit. Da ricordare che è inutile avere un S.O. a 64bit se usate SOLO applicazioni a 32bit, è illogica la questione ![]() Insomma, usate software nativi 64bit? andate su quella, non li usate? Rimanete sul 32bit. Eh, se avete più di 3 giga di ram, siete obbligati ad andare sul 64bit per sfruttarli tutti. Pillola rossa o pillola blu? A voi la scelta P.S. Occhio che con una delle due ti sta dritto il coso per qualche ora ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#8 |
Bannato
Iscritto dal: Jun 2008
Città: Teramo
Messaggi: 2235
|
Come si fa per sapere se il proprio software nativamente è a 32 o a 64 bit?
Io ho intenzione di acquistare il pentium 4 3,8ghz a 64 bit e poi testare windows 7 64 ma non so se mi conviene... ad esempio ho l'hd maxtor che alloca con impostazione da bios 48bit alla volta.... è incompatibile dunque con il sO a 64 bit?| Io penso di sì. |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 2830
|
Quote:
il software che scarichi è in genere ben descritto relativamente alla versione. Quindi trovi i link per la 32 e quelli per la 64 se esiste Ultima modifica di maxlaz : 09-04-2009 alle 22:37. |
|
![]() |
![]() |
![]() |
#10 | |
Member
Iscritto dal: Sep 2006
Messaggi: 173
|
Quote:
Per l'hard disk che io sappia non dovrebbe avere problemi di compatibilità per il fatto che il sistema sia a 32 o 64 bit (qualcuno mi corregga se sbaglio), forse ti riferisci al fatto che l'hd usa LBA48, se intendi quello vuol semplicemente dire che il controller usa 48 bit per indirizzare i settori del disco e dovrebbe essere una cosa indipendente dall'architettura usata. |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Sep 2002
Città: Cagliari
Messaggi: 16476
|
Quote:
Solitamente se ne rilascia solo una significa che il software è a 32bit (nel 99% dei casi). Il tuo HD incompatibile? Assolutamente no, e con 48bit ci indirizzi gran pezzi di files ![]() Spero che questo thread possa proseguire per la giusta strada. Ci si può tirare fuori una bella discussione tecnica, ma questo solo se parliamo di cose tecniche con cognizione di causa. Ricordiamoci che ci troviamo su hardware upgrade, non su topolino forum, e qui si discute di hardware (e software) da 10 anni... Non dico che chi non sa debba tacere, anzi, sono ben gradite delle domande ![]() Evitiamo anche le classiche uscite da fanboy, tifoseria varia e tutto quello che possa allontanare dalla coerenza di pensiero. Quindi, se uno pone una teoria lo faccia indicandoci il perchè tecnico del suo pensiero. Se ad un altro questa teoria non va bene risponda prima di tutto in modo educato, e di seguito elencando le motivazioni tecniche del suo dissenso. Se poi una persona non ha le conoscenze per poter rispondere o proporre una teoria...può sempre leggere e farsi una cultura ![]() Qui è tutto gratis!! Ricordo a chi vuole creare uno "scontro" di tifosi 32vs64 o chi non avendo le adeguate conoscenze vuole forzatamente far valere le sue teorie per motivi mistici e poi alle domande tecniche risponde così --> ![]() @Mauro B. Che ne dici di mettere in prima pagina man mano che usciranno i software a 64bit, eventualmente con i raffronti prestazionali rispetto alla controparte 32bit? |
|
![]() |
![]() |
![]() |
#12 | |
Bannato
Iscritto dal: Jun 2008
Città: Teramo
Messaggi: 2235
|
Quote:
![]() Inizierò innanzitutto con la spiegazione del limte 4gb della ram... aggiornando il terzo post. Ultima modifica di Mauro B. : 10-04-2009 alle 19:55. |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Dec 2005
Città: Londra
Messaggi: 1245
|
Quote:
Questa è una versione a 64bit di AutoCAD Architecture ma il task manager riporta quanto segue: A volte non si capisce se il 64bit si riferisce alla possibilità del software a 32bit di funzionare su OS x64 o se sono versioni ad hoc.
__________________
NAS:Synology 213 Ultima modifica di Grillo.M : 10-04-2009 alle 19:39. |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: May 2005
Città: Messina
Messaggi: 15637
|
Ragazzi, in linux con mencoder, prendendo il mio e-4300 @ 2.6 Ghz ed un AMD64 3400+ a 2.448 Mhz, con il software compilato a 64 bit, ho notato che l'amd 64, ovviamente lavorando entrambi i proci in single core, superava seppur di qualche fps il mio e4300! Com'è possibile? Perchè Intel non implementa una buona architettura x64 nei suoi processori?
__________________
CASE: Antec 900 - ALI: Enermax Pro82+ 525W - MOBO: Asus Z97I-Plus - CPU: i7 4770k @ 4.4 Ghz 1.22v - DISSI: Noctua U-14S - RAM: 2x8GB Corsair Vengeance LP @ 1866 Mhz - VGA: GTX 1070 ARMOR 8G OC - Monitor: Acer XF270HU - SSD: Samsung 850 EVO 500 GB MacBook Pro Retina 15" 2018 - i7 6 core, Radeon Pro 560X, 512 GB SSD
|
![]() |
![]() |
![]() |
#15 |
Bannato
Iscritto dal: Jun 2008
Città: Teramo
Messaggi: 2235
|
Se realizzano due piattaforme per lo stesso programma evidentemente il fattore 32/64 bit è discriminante... ed installare una delle due dipende dal SO installato.
NOTA: LE DOMANDE GENERICHE DI UTILITà GENERALE POSSONO ESSERE INVIATE PER MAIL TRAMITE MIO NICK E SARANNO POSTATE NELLA ZONA FAQ TERZO POST AFFINCHè TUTTI GLI INTERESSATI NE TRAGGANO BENEFICIO. LE RISPOSTE DI CHIUNQUE POSSA E VOGLIA REPLICARE POSSONO EGUALMENTE ESSERE INVIATE TRAMITE MAIL SICCHè IL POSTULANTE POTRà NEL CASO, VERIFICARE DIRETTAMENTE NELLA LISTA FAQ. Ultima modifica di Mauro B. : 10-04-2009 alle 20:22. |
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 2830
|
Quote:
Ultima modifica di maxlaz : 10-04-2009 alle 22:03. |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Oct 2002
Città: Vicino a un ponte
Messaggi: 1293
|
Domandina..... premetto che per quanto riguarda la programmazione sono meno di zero, quindi la mia domanda potrebbe essere banale.
Parliamo di Photoshop a 64 bit: Nelle PREFERENZE>PRESTAZIONI>USO MEMORIA (dove si decide la mem minima/massima che il programma potrà usare) si spazia da un min di 2,5 ad un max di 4 Gbit , perche "limitare" lo stesso a un livello cosi "basso"? Da profano la prima cosa che mi viene in mente è quella di un' azione commerciale, vale a dire una compilazione "non a regola darte" a 64 bit. Ringrazio anticipatamente e attendo delucidazioni..... Ultima modifica di ezio : 11-04-2009 alle 10:49. Motivo: non c'è bisogno di inserire tutto il post originale nei quote ;) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:50.