Architetture a 64bit, la dimostrazione di come il software proprietario sia un freno all'innovazione.

9 dic
2009

In questi giorni un troll che è passato da questo blog ha rinfrescato la discussione sui processori a 64bit. Il troll in questione, come molti altri utenti, ha dimostrato di essere enormemente confuso in merito alle architetture a 64bit ed agli eventuali vantaggi che queste ultime hanno rispetto alle architetture a 32bit. Oggi proverò a fare un po' di chiarezza in più sulla questione.

Bisogna intanto chiarire che le architetture a 64bit non sono una novità, il primo processore a 64bit è stato sviluppato per l'architettura RISC. Questo tipo di architettura, per anni è stata (e per certi versi ancora è) in competizione con l'architettura utilizzata nei sistemi x86 che equipaggiano da sempre i nostri PC (che hanno un'architettura CISC). Il primo processore a 64bit fu prodotto dalla MIPS Computer Systems e si chiamava R4000. I processori realizzati da MIPS Computer Systems erano molto utilizzati per la produzione di grafica vettoriale ed hanno trovato largo spazio d'uso anche nelle console videuliche (Sony playstation 1 usava un mips a 32bit, Playstation 2 usa EmotionEngine, una CPU progettata da Sony stessa con due core a 64bit, Playstation 3 usa CELL, che si avvale sempre del set di sitruzioni RISC pur non essendo MIPS). Normale quindi che i primi processori a 64bit siano nati proprio su questo tipo di sistemi.

In ambito domestico, ovvero nei nostri PC, i processori a 64bit hanno fatto il loro debutto molto più tardi, ovvero il 23 Settembre 2003, con il lancio dei processori Athlon 64 di AMD. Facciamo un passo indietro. Due anni prima l'azienda regina dei processori X86, ovvero Intel, lanciò sul mercato un processore a 64bit destinato ai server. Il processore in questione si chiamava Itanium, un processore a 64bit che però non usava il set di istruzioni x86 e che era il risultato di una nuova architettura realizzata in joint venture con HP. Il set di istruzioni si chiamava EPIC ed era diverso sia dal RISC che dal CISC. Probabilmente possiamo considerare Itanium come un tentativo (fallito) di soppiantare la (sempre criticata) architettura x86 e di fare così fuori anche la concorrente AMD. Il progetto di Intel fallì (anche se Itanium ha ancora oggi una piccola quota di mercato dietro a x86, SPARC e PowerPC) principalmente per due motivi: mancato supporto software e produzione da parte di AMD di un processore a 64bit compatibile al 100% con l'architettura x86 (quindi totalmente retrocompatibile). La compatibilità di Itanium era invece ottenuta grazie ad un core x86 inserito nella CPU ma i cali di prestazioni erano notevoli. Itanium fu largamente criticato proprio dal punto di vista prestazionale ma i limiti non erano nel processore quanto nella mancata ottimizzazione del codice per l'architettura.

Il secondo problema ha penalizzato anche le CPU a 64bit di AMD. In realtà credo che la storia dei processori a 64bit sia l'esempio più lampante di come il software proprietario tenda spesso ad essere un freno all'innovazione. Non a caso Hector Ruiz, allora amministratore delegato di AMD, ebbe a dire in merito a Windows a 64bit: "non è un segreto che siamo delusi per il ritardo"¹ e proprio nello stesso periodo elogiò la comunità open source e Linux. Il motivo era semplice, AMD puntava ai 64 bit per avere un vantaggio tecnologico su Intel, che all'epoca scommetteva sui 64 bit solo per la nuova architettura Itanium e che in ambito desktop invece promuoveva i 32 bit e la tecnologia Hyper trading. AMD contava molto su quel vantaggio tecnologico rispetto alla concorrente ma non potè mai sfruttare questo vantaggio perché i software proprietari non erano ottimizzati per codice a 64bit, ecco perché Ruiz all'epoca elogiò moltissimo la comunità Gnu/Linux affermando che: il supporto della tecnologia AMD64 da parte degli sviluppatori open source ha fatto sì che questa tecnologia sia oggi impiegata all'interno di alcuni tra i computer più potenti del mondo". I processori a 64bit vennero sfruttati appieno solo con i sistemi operativi open source e furono invece terribilmente penalizzati dal mancato supporto nativo da parte dei software proprietari.

In effetti Ruiz aveva le sue ragioni per elogiare la comunità open source, le varie distribuzioni Gnu/Linux iniziarono a supportare i processori a 64bit quasi immediatamente; a pochissimo tempo dal lancio dei primi Athlon64 tutte le distribuzioni più importanti già supportavano nativamente i processori a 64bit offrendo sistemi operativi completamente ottimizzati per tale architettura. Ma, senza addossare la croce ai soliti noti, bisogna dire che alla fine anche Microsoft non si fece attendere moltissimo e lanciò il suo primo sistema operativo a 64bit per x86 nell'aprile del 2005, quasi 2 anni dopo il lancio del primo processore x86-64. Il problema è che tale sistema operativo non ebbe alcuna penetrazione sul mercato, anche perché, nonostante la presenza di layer di emulazione in grado di garantire la compatibilità con i software e le librerie a 32bit, l'uso di Windows a 64bit era piuttosto problematico. Per iniziare a parlare di Windows a 64bit (per x86) veramente funzionanti, supportati ed usati, dobbiamo attendere Windows Vista, ovvero il 2007. Ovvero ben 4 anni dal lancio del primo processore a 64bit. Nonostante tutto però, ancora oggi che i processori a 64bit sono diventati addirittura quad core, è piuttosto raro vedere versioni a 64bit dei sistemi operativi Microsoft nelle case degli utenti. Oggi, con il lancio di Windows 7, a quasi 7 anni dal lancio del primo processore x86-64 pare che aziende, produttori di driver e software house intendano finalmente supportare seriamente i processore x86-64. Il bello è che qualcuno cerca di spacciare il pieno supporto per una tecnologia vecchia di anni come una grande novità e questa cosa mi fa certamente sorridere un po'.

La colpa della lenta penetrazione di Windows a 64 bit però non è dipesa da Microsoft. Il problema è che Windows è un sistema operativo proprietario, distribuito senza sorgenti e che, per larga parte, vive in ecosistema fatto di altri software proprietari. Tutti i più importanti software usati nei sistemi operativi Windows sono software proprietari distribuiti senza codice sorgente. Autocad, Adobe, i produttori di driver e tante altre software house hanno tardato moltissimo il supporto ai 64 bit (con l'esempio più clamoroso del player flash, ancora oggi disponibile a 64bit solo in versione Alpha e solo per sistemi Gnu/Linux). Paradossalmente anche i software liberi largamenti diffusi su Windows (Firefox, OpenOffice, VLC) non distribuiscono binari precompilati per Windows a 64 bit (e vi assicuro che compilare software sorgente su Windows non è assolutamente più facile del famigerato ./configure && make && make install delle distribuzioni Gnu/Linux). Risultato: chi usa Windows a 64 bit è costretto ad avere un sistema ibrido che non può, per sua stessa natura, sfruttare i vantaggi dei 64bit. Non ibrido soltanto nelle librerie quanto proprio nei software che è possibile utilizzare. Avere un sistema operativo a 64bit ed utilizzare software compilati a 32bit che linkano a librerie a 32bit, come detto da Lucalosvizzero nel suo pezzo su Windows 7, penalizza senza ombra di dubbio le prestazioni complessive del sistema, non foss'altro perché si è costretti ad avere necessariamente doppioni delle stesse librerie di sistema (sia nella versione a 32bit che nella versione a 64bit) per semplici ragioni di compatibilità. Un sistema a 64bit non può utilizzare librerie a 64bit per avviare applicazioni a 32bit, quindi, se il parco di applicazioni non è interamente a 64bit è necessario avere almeno il set di librerie a 32bit che servono per far funzionare le applicazioni a 32bit installate.

Su Gnu/Linux il supporto ai 64 bit è stata tutta un'altra storia, non priva ovviamente di problemi e difficoltà, ma senza ombra di dubbio più dinamica ed intraprendente. Io ho iniziato ad usare Gnu/Linux a 64bit praticamente non appena uscirono le prime distribuzioni e da subito ho trovato il sistema usabile al 80%. Il restante 20% era, in larga parte e non a caso, legato ai software proprietari, in particolar modo all'odiato flash ed agli altrettanto odiati codec win32. Ancora oggi non esiste una versione a 64bit di Flash player, l'unica versione disponibile e l'alpha (Linux only) di cui vi ho accennato poche righe più su, comparsa sul sito di Adobe dopo anni di richieste ignorate, guarda caso quando Microsoft lanciò Silverlight (disponibile su Linux con il nome di Moonlight). Ancora oggi quell'Alpha release è l'unica versione di Flash disponibile per i 64 bit ma per fortuna l'esistenza di quest'alpha version non mi costringe a creare un sistema ibrido (con librerie a 32bit e firefox a 32bit) solo per poter vedere i filmati su youtube. Dopo anni di complicazioni causate dai software proprietari ora posso finalmente usare un sistema puramente a 64bit, tuttavia l'esperienza di Flash ha indispettito me e molti utenti di sistemi a 64bit per molti anni, ed è stata la dimostrazione più lampante di quanto il software proprietario, ancor più nei sistemi open source, sia per l'utente una vera e propria palla al piede. Per fortuna flash è un software di poco conto ed usare un browser a 32bit per navigare non è la fine del mondo. Ma l'esempio di Flash è ancora oggi l'esempio più lampante di quanto possa essere deleterio essere schiavi di un formato proprietario del quale non siamo più in grado di fare a meno. Se il problema fosse stato su un software di maggiore importanza e complessità forse i processori 64bit sarebbero state inutili anche sui sistemi Gnu/Linux ed oggi sarebbero stati spazzati via a causa della scarsissima richiesta sul mercato.

Non vi sono dubbi sul fatto che i software proprietari nel caso dei 64bit (ma anche in molti altri casi) sono stati un grande freno all'innovazione. I software open source, per loro stessa natura, si sono adattati quasi immediatamente alla nuova architettura, sono stati i primi a supportarla ed ancora oggi sono forse gli unici in cui l'uso di tale architettura ha un senso.

Concludo con una piccola nota a margine. Sui processori x86-64 si possono installare sistemi operativi a 32bit in modo trasparente. I 64 bit supportano nativamente il set di istruzioni a 32bit, tuttavia un processore a 64bit costretto a lavorare in modalità 32bit non può esprimere al meglio le sue potenzialità ed in particolari task potrebbe anche essere penalizzato nelle prestazioni rispetto ad un processore a 32bit. I motivi sono tanti, tecnicamente complessi e vanno fuori dalla scopo per cui è stato scritto quest'articolo, la cosa sicura è che non ha senso acquistare un processore a 64bit per usarlo poi su un sistema operativo a 32bit. Bisogna infine porre l'accento su un'altro aspetto che, a giudicare da certi commenti, non è affatto chiaro: una cosa è usare un processore a 64bit con un'architettura a 32bit pura (ovvero a 32bit a partire dal kernel per concludere alle applicazioni), altra cosa è usare un processore a 64bit con un'architettura mista, ovvero un sistema con kernel a 64bit e software a 32bit che funzionano grazie a layer di emulazione come wow64 o ABI come linux32. Altra cosa ancora è usare un sistema operativo a 64bit puro, dove tutto è ottimizzato per funzionare a 64bit. Inutile sottolineare che l'acquisto di una CPU a 64bit nel primo caso è inutile, nel secondo scarsamente utile e solo nel terzo di una qualche utilità.

Fonte: Linux Pro del 25/03/2005

Leggi anche:

  1. Windows Vista: vuoi la versione a 64bit? Devi pagarla a parte!
  2. Asus lancia sul mercato un PC Linux Inside: piccino picciò, sia nelle dimensioni sia nel prezzo.
  3. Il software proprietario in Gnu/Linux, ha un senso?
  4. Il 2010 Sarà l'Anno di Linux? Ma chi se ne frega! :-) O di Come i PC siano Liberi Tranne che nel Software.
  5. Quanto valgono il kernel Linux ed i software liberi?

NOOK (Gli utenti ritengono che questo articolo valga +3, hanno votato 3 utenti)
Loading ... Loading ...

    Articoli correlati


    Warning: Cannot use a scalar value as an array in /home/doxaliber/webapps/doxaliber/wp-content/plugins/yet-another-related-posts-plugin/related-functions.php on line 34


Articolo scritto da Doxaliber per Doxaliber, vuoi partecipare anche tu?

Creative Commons License

Se questo articolo ti è piaciuto aiutami a diffonderlo. Segnalalo sul tuo blog, invialo agli amici, segnalalo sugli aggregatori di news. Se vuoi seguire Doxaliber con maggiore tranquillità iscriviti ai feed, trovi i link in alto a destra. Intanto questo blog ha già:
Lettori feedburner
senza contare i lettori dei feed per categorie e gli abbonati alla newsletter!

20 Risposte to “Architetture a 64bit, la dimostrazione di come il software proprietario sia un freno all'innovazione.”

  1. andynaz scrive:

    articolo interessantissimo! alcune cose già le sapevo, ma non così in dettaglio.

    devo dire che in effetti ho gli stessi problemi, soprattutto per quanto riguarda(va) Firefox a 64 bit per Linux, che avrei voluto scaricare dal sito ufficiale, visto che la versione in Ubuntu 9.04 non era molto recente :-)
    Per fortuna che dopo aver fatto l'aggiornamento alla 9.10 non ho più avuto problemi... l'unica cosa che un po' mi manca è Acrobat Reader...

    Ti piace questo commento? Thumb up 0 Thumb down 0

    • Doxaliber scrive:

      Ti manca acrobat reader? :-O Di quello non ho mai sentito la mancanza (io ho kde ed uso Okular, ha pure i segnalibri!). Quello con flash è stata una battaglia (persa) durata anni, anche per questo sono favorevole alla diffusione di Moonlight. In ogni caso html 5 ha introdotto il formato video incorporato (c'è già chi ha fatto un sito che permette di vedere i video di youtube senza flash!) e quindi, in un lontano futuro, flash diventerà davvero inutile.

      Ti piace questo commento? Thumb up 0 Thumb down 0

  2. andynaz scrive:

    in realtà non sento proprio la mancanza, ma diciamo che (per lavoro) mi potrebbe tornare utile; attualmente mi trovo perfettamente con il lettore di documenti incluso in gnome...

    per quanto riguarda flash ho installato il plugin alpha e mi trovo benissimo. qual è il sito in html5 di cui mi parlavi?

    Ti piace questo commento? Thumb up 0 Thumb down 0

    • Doxaliber scrive:

      Una sola volta ho dovuto usare acrobat reader, quando i geniacci di un sito istituzionale mi avevano mandato un file pdf che si apriva esclusivamente con Acrobat Reader (come abbiano fatto non so).

      Il visualizzatore html5 per video youtube:
      http://neosmart.net/YouTube5/

      Ti piace questo commento? Thumb up 0 Thumb down 0

      • scaloppina scrive:

        Avete mai provato minitube?
        Peccato che non si integra molto bene con gnome (qt)
        ma è veramente utile...

        http://flavio.tordini.org/minitube

        Ti piace questo commento? Thumb up 0 Thumb down 0

        • Doxaliber scrive:

          Ciao Scaloppina. Io ho minitube installato (ed anche ben integrato perché uso nuovamente kde.. :mrgreen). Ho notato che alcune volte il player salta e non funziona perfettamente. Comunque è veramente un bel programmino. :-)

          Ti piace questo commento? Thumb up 0 Thumb down 0

      • Mor scrive:

        Hai provato con xpdf? Scarno comè però mi ha salvato parecchie volte. Tipo quando altri programmi (mi pare ad es kghostview o simili) si rifiutavano di stamparmi alcuni pdf mentre xpdf non ha fatto una piega.

        Ti piace questo commento? Thumb up 0 Thumb down 0

        • Doxaliber scrive:

          Ho usato xpdf in passato ma nel caso specifico non credo sarebbe servito. Secondo me, siccome quello era un pdf generato automaticamente, c'era dentro qualche DRM che ne impediva la visualizzazione senza acrobat reader. Infatti aprendo il pdf mi dice: questo file deve essere aperto con Acrobat reader.

          Ti piace questo commento? Thumb up 0 Thumb down 0

        • Doxaliber scrive:

          Comunque, per curiosità, ho provato xpdf su quel file. Naturalmente non funziona.. :-)

          Ti piace questo commento? Thumb up 0 Thumb down 0

  3. Ugo scrive:

    articolo interessante! solo una piccola nota...
    Il funzionamento di WoW64 ce l'hanno accennato all'uni (faccio ing. informatica) e ti posso dire che ha poco a che vedere con l'emulazione se hai un processore con arch. x86-64 che, come hai detto tu, supporta nativamente l'esecuzione di istruzioni a 32bit. In quest'ultimo caso WoW64 si occupa solo di fare un context-switch dalla modalità a 64bit a quella a 32bit (in un processore x86-64 si può fare perchè il processore supporta il cambio "al volo" delle 2 modalità mentre in un processore a 32bit, per l'esecuzione di codice a 16bit, no perché bisognerebbe tornare indietro in real-mode cosa assolutamente impraticabile se stai eseguendo un sistema operativo).
    L'unico caso in cui è coinvolta l'emulazione via software è in presenza di processori con architettura IA-64 (come i processori della serie Itanium, sempre che non abbiano un modulo per la compatibilità con le istruzioni a 32bit come Itanium 2); in questo caso vengono usati altri 2 file (IA32Exec.bin e Wowia32x.dll) oltre a quelli di WoW64 standard che forniscono i servizi per l'emulazione via software.
    Non so come funzioni per linux32 ma credo che non si discosti molto da questa situazione...spero di essere stato chiaro!

    Ti piace questo commento? Thumb up 0 Thumb down 0

    • Doxaliber scrive:

      No, il concetto di funzionamento di Linux32 dovrebbe infatti essere lo stesso. Sono entrambi "wrapper" che fanno credere al kernel a 64bit di star eseguendo librerie a 64bit (quando in realtà sono 32). Tuttavia si può parlare correttamente di emulazione perché wow64 fa credere al sistema che quelle in esecuzione sono librerie a 64bit quando in realtà sono a 32. La stessa Microsoft qui parla di emulazione:
      WOW64 is the x86 emulator that allows 32-bit Windows-based applications to run seamlessly on 64-bit Windows. WOW64 is provided with the operating system and does not have to be explicitly enabled.

      Forse il funzionamento di linux32 è inverso, fra credere al kernel di essere un kernel a 32bit. Ma non ne sono sicuro.

      Ti piace questo commento? Thumb up 0 Thumb down 0

  4. Ugo scrive:

    uhm...si, se la mettiamo così parlare di emulazione sembra sensato...
    tuttavia è un po' fuorviante perchè nell'accezione "standard" per poter parlare di emulazione si sottointende la presenza di un processore virtuale...
    Inoltre ti faccio presente una cosa: l'overhead introdotto da WoW64 (e quindi anche linux32 suppongo) su un architettura x64 è ridotto al minimo perché si riduce solo allo switch delle 2 modalità e ad altri task piuttosto semplici...dire che l'acquisto di un processore a 64bit è inutile nella seconda situazione secondo me è esagerato...poi probabilmente è una questione di punti di vista ;)

    Ti piace questo commento? Thumb up 0 Thumb down 0

    • Doxaliber scrive:

      Si, può essere fuorviante però nell'articolo è spiegato che le architetture x86-64 sono totalmente compatibili con x86 e quindi possono eseguire codice x86 in maniera nativa. Converrai con me che non è semplice spiegare ad un newbie certi concetti.

      n processore a 64bit è inutile nella seconda situazione secondo me è esagerato

      Infatti io ho scritto che è scarsamente utile. Devi considerare che, sia con wow64 che con Linux32, l'esecuzione di codice a 32bit non è così trasparente, anzi, spesso è problematico. Naturalmente oggi la situazione è migliorata anche da questo punto di vista tuttavia è bene che l'utente sia consapevole che l'acquisto di una cpu a 64 bit non introduce miglioramenti prestazionali significativi se non si usa codice ottimizzato per tale architettura.

      Io ho letto volantini che recitavano cose tipo: "scopri la potenza dei 64bit" .... su computer che poi montavano windows a 32bit. La cosa fa un po' sorridere ed è ingannevole, non credi? ;-)

      Ti piace questo commento? Thumb up 0 Thumb down 0

      • Ugo scrive:

        per carità, il tuo discorso ha senso...
        tuttavia sono dell'opinione che un processore a 64bit sia una scelta, come dire, lungimirante...
        ovviamente non ha senso comprarne uno se poi si ha intenzione di usare s.o. e tutto il resto a 32bit...
        Però personalmente mi sembra un buon acquisto se si intende usare un sistema operativo a 64bit e qualche software a 32bit (perchè i driver e altra roba di sistema in ogni caso non possono essere a 32bit)...
        Complici le prestazioni nell'esecuzione del suddetto software, che sono accettabili, mi sembra una scelta rivolta al futuro, soprattutto in considerazione del fatto che non ci sarà sempre questa situazione di "stallo" nel settore dei sw, non credi?

        ad ogni modo l'esecuzione di software a 32bit su o.s. a 64bit potrebbe dare problemi solo se si affida pesantemente alla struttura interna del sistema operativo (come driver o roba del genere) la maggior parte dei sw funzionano alla grande (te lo dico per esperienza personale).

        Ti piace questo commento? Thumb up 0 Thumb down 0

        • Doxaliber scrive:

          "tuttavia sono dell'opinione che un processore a 64bit sia una scelta, come dire, lungimirante..."

          Credimi, proprio con quest'idea in mente nel lontano 2004 ho deciso di acquistare un processore a 64 bit....

          ".....a maggior parte dei sw funzionano alla grande (te lo dico per esperienza personale). "

          ...oggi forse (ed anche questo mi sembra di averlo esplicitato nell'articolo, ma qualche problema rimane, dipende dalle necessità e dall'hardware che si intende usare) ma non quando ho iniziato ad usare i 64bit. :mrgreen: Il perno centrale dell'articolo è proprio su quanto i produttori di software proprietario siano stati lenti nell'adozione di questa tecnologia (che ancora viene fatta passare per novità quando ormai è vecchia di anni!).

          Grazie per aver commentato, a rileggerci! ;-)

          Ti piace questo commento? Thumb up 0 Thumb down 0

  5. Tufano Michele scrive:

    Articolo molto interessante e ben fatto.

    È stupefacente quanto il mondo dei software open source sappia adeguarsi e innovarsi restando sempre all'avanguardia con il progresso tecnologico. Non a caso il primo sistema operativo a supportare il nuovo standard USB 3.0 è stato Linux.

    Ti piace questo commento? Thumb up 0 Thumb down 0

  6. [...] Architetture a 64bit, la dimostrazione di come il software proprietario sia un freno all’innov... [...]

    Ti piace questo commento? Thumb up 0 Thumb down 0

  7. [...] che, come tutti i formati proprietari, ci lega di fatto per mani e piedi (ho fatto l'esempio dei 64bit e di Flash proprio pochi giorni fa, leggetelo), ma gli utenti raramente si pongono problemi di questo tipo e quindi il mio desiderio rimarrà [...]

    Ti piace questo commento? Thumb up 0 Thumb down 0

Rispondi

top