S.O. al Confrono? WTF? No Thx - Parte 1
Categorie: Tecnologie, HW, SW, Pensieri, News
In questo periodo ho assistito a molte battaglie Vista-è-innovativo, Vista-Vs-Linux, Vista-Vs-Mac e addirittura Linux-Vs-Mac ma non ho visto nessuno parlare di HW… Perchè tutti si interessano solo al lato SoftWare?
Certo, è facile, il SW lo abbiamo sempre sott’occhio e sopratutto ben poche persone si interessano a cosa c’è dentro il nostro “pc” ( pc lo uso in senso generale ), per molti lo “scatolone magico” ( termine coniato da Longinus ) è semplicemente Windows o Mac. Eppure tutto funziona grazie a quell’insieme di schede che non è fatto dalla casa del nostro Sistema Operativo!
Quindi perchè per una volta non far un discorso sulla nostra scatola? Bene, questo è il mio obbiettivo.
Quando siete andati a prendere un computer avrete certamente guardato il prezzo che, in teoria, dovrebbe rappresentarvi una sorta di scala delle prestazioni ( in teoria.. ), ma sicuramente la maggior parte di voi non sa nemmeno che tipo di processore monta, però allo stesso tempo saprebbe benissimo dirmi il tipo, il nome, la cilindrata e i cavalli del motore della propria auto.. Strano no?
Il tipo di HardWare influenza moltissimo le prestazioni, proprio come la meccanica dell’auto influenza tutta la guida, e in testa alla piramide immaginaria delle influenze c’è il cervello del vostro computer, il processore. Il processore può essere di due tipi CISC o RISC ( disel o benzina.. Longinus e Dario non picchiatemi, è un esempio
) e premetto che ormai tutti i computer che attualmente le persone usano in ufficio/casa/lavoro sono CISC, ma cosa significa?
“Semplice“, le architetture “Complex instruction set computer” ( CISC appunto ) hanno un set di istruzioni che permettono di fare più cose tramite una singola istruzione, al contrario dell’altro paradigma RISC ( Reduced instruction set computer ), un’architettura contenente un set di istruzioni in grado di eseguire operazioni semplici. ( se non vi fosse tanto chiara la differenza, pensate che un vostro programma sia una casa e voi abbiate due modi per cotruirla: muri prefabbricati, CISC, o calce e mattoni, RISC )
Quindi la differenza è molto chiara: le architetture CISC semplificano la vita ai programmatori grazie a tutte le istruzioni che permettono la realizzazione di programmi più compatti e colmano in parte la grande differenza tra programmazione di alto e basso livello ( linguaggi di programmazione e istruzioni del computer ). Un grandissimo vantaggio, anche se negli anni 80 si è scoperto che spesso era più veloce e efficace utilizzare più operazioni semplici anzichè utlizzare poche istruzioni complesse ( senza dimenticare che più un’istruzione è complessa, più occupa spazio, più richiede silicio, più richiede progettisti, più richiede ricerca e quindi più spazio è più consumo e quindi più costo ). Senza rincarare la dose dicendo che molte operazioni erano ignorate e che i compilatori ignoravano le istruzioni più esotiche per concentrarsi su quelle più semplici..
“Per tagliare la testa al toro” arriviamo ai giorni odierni dove telefoni cellulari, palmari, console, automobili e molti altri apparecchi si appoggiano a un’architettura RISC, mentre l’architettura di riferimento per le CPU destinate ai computer è di tipo CISC. “CISC“, perchè usa, per competere con le RISC, istruzioni complesse che devono essere tradotte in operazioni più semplici, riconducendosi a una sorta di CPU RISC.
A questo punto voi vi chiederete “ma se alla base c’è sempre un qualcosa di riconducibile a una RISC, perchè usiamo le CISC?”
Bellissima domanda!
La risposta potrebbe essere che gli utenti cercano di mantenere una buona compatibilità con tutte le applicazioni. Potrebbe..
Oppure agli utenti interessa solo che il loro pc vada, e non si interessano a porsi domande superflue.. Va meglio?
Questa filosofia ci ha portati a un bel controsenso: lo sviluppo di nuovi processori diventa sempre più costoso e complesso, anche per non dover ricorrere a un porting troppo costoso ( il porting è l’operazione che serve a tradurre codice per un’architettura di cpu a un’altra ), fino ad arrivare a tagliare fuori dal mercato tutte le società tranne AMD e Intel ( considerate che perfino l’IBM ha smesso di produrre proprie cpu per personal computer ), ma fa andare i pc e rende inutile l’avanzata delle nuove tecnologie che ridurrebbero i costi di produzione. Sintetizzando, questa bizzarra evoluzione ha fatto si che all’inizio si risparmiassero i soldi del porting per investirli in una ricerca più economica, finendo in un vortice che obbliga ora a grandissimi costi in ricerca rispetto a un, ora, meno costoso porting che però richiederebbe programmatori, che nessuno vuole mettere a diposizione, e tempo, tempo che le persone non sarebbero disposte a pagare..
26 Feb 2007 Juspolo
my two cents su alcune questioni:
L’hardware imho non è _così_ importante (non sparatemi) come il software. Software fatto bene va anche su harwdare datato o poco potente (escludiamo qui l’hardware che semplicemente non va, come potrebbe farlo il software).
Voglio dire, l’hardware ha le sue caratteristiche, difficilmente modificabili… sono quelle, punto.
Un buon software può, molte volte, sopperire a caratteristiche/funzioni mancanti all’hardware… che ne so, esempio banalissimo, pensa alle virtualizzazioni di interi sistemi operativi.
Sulla seconda parte del post, ovvero del rapporto utenti - filosofie - costi - porting e chi più ne ha più ne metta, il discorso credo sia (purtroppo) semplice: il 90% degli utilizzatori di un pc ha comprato la propria “macchina” a scatola chiusa, guardando tutt’al più la singola caratteristica per ogni componente.
La CPU1 fa 100, la CPU2 fa 200, ecco allora prendo la CPU2. Costa di più? Ovvio, fa 200 e non 100.
Sono i pc da supermarket, che sono delle bombe per 6 mesi dall’acquisto e poi già superati perchè magari non si è stati attenti a tutto quello che c’era dentro, ma semplicemente a dei poco significativi numeretti.
Il mio pc è stato “comprato” a pezzi ed assemblato successivamente da me e un amico, ovvio che non tutti possono avere conoscenze di questo tipo.
Pardon per la lunghezza, altri 2 cents
Quello che forse Juspolo intendeva dire è che si sta ponendo molta attenzione al mondo del SW, più precisamente dei SO, essendo meno vario e più monopolistico rispetto alle soluzioni HW per realizzare un componente ( o una intera macchina ) adatta ad un certo scopo.
Limitando il discorso alle CPU, quello che può far pensare è il fatto che da tempo, per economia di scala, monopoli vari e praticità, abbiamo visto scomparire soluzioni RISC ( e quindi SW dedicato ) in luogo delle architetture comuni ( x86 ).
Questo è passato un pochettino “sotto l’uscio”, ma in questo momento di grande subbuglio riguardo quale piattaforma sia migliore delle altre, le considerazioni, i pro e i contro, le testimonianze sono quasi sempre legate al solo ambito SW.
Non tutti pensano alla possibilità di avere una nuova architettura RISC su cui poter lavorare e creare una piattaforma e un ambiente di lavoro nuovo che possano garantire prestazioni anche migliori degli attuali protagonisti del mercato
IMHO
[…] Si tratta di Juspolo, che in questo articolo parla delle architetture dei processori e come la loro diffusione abbia permesso lo sviluppo di uno o l’altro SO. […]
La programmazione ha subito numerosi progressi dagli albori sino a oggi, l’hardware è diventato sempre meno rilevante perchè è stato astratto su parecchi layer che non implicano più le chiamate di basso livello.
La maggioranza dei programmatori odierni non si concentra sull’implementazione, fa e basta.
L’ormai scarsa conoscenza di certi aspetti è forse caratterizzata anche da questo, i tempi cambiano!
Grazia tutti dei commenti, rispondo con ordine
@joshuavox: 1.
Ho riletto questa parte più, e più volte ancora.. e sai che non capisco cosa vuoi dire..
comunque: ho capito che del sofware fatto bene gira ovunque ( oddio riesci a far girare Mac OS, non X, su una cpu x86? ), ma io sto parlando del fatto che usiamo delle CISC con delle istruzioni che non sono utilizzate e spendiamo soldi per il lavoro di ricerca e produzione di queste istruzioni.
2.
Tutti si preoccupano del lato SW, ma nessuno si preoccupa del lato HW. Tutti coloro che hanno preso il pc a scatola chiusa e che ora fanno battaglie lato SW perchè non ne fanno anche per il lato HW?
@Longinus: Esatto, ho cercato di dire quello e molto altro.
Ormai stiamo raggiungendo un punto in cui c’è talmente tanto da investire nella ricerca per mantenere le compatibilità che sarebbe sicuramente più economico e produttivo passare a una tecnologia RISC ( anche perchè è un controsenso usare CISC che emulano RISC -_- ).
@wastzzz:i tempi cambiano e come hai detto tu nessuno si concetra più sulla programmazione a basso livello, anche perchè ormai ci sono i compilatori che pensano a fare quello sporco lavoro. Appunto per questo, che i compilatori fanno tutto in automatico scartando molte operazioni, a questo punto ( visto che usiamo solo i compilatori per fare le atrazioni ) a cosa ci servono le tecnologie CISC? non si può passare direttamente a tecnologie più affine all’uso dei compilatori?
Dipende sempre dal contesto
Costava molto meno produrre un processore in un unico chip no? Sai quanto costavano le memorie 30 anni fa? :p
Il mio parere su tutto questo?
Dire che i processori odierni sono CISC non ha molto senso. Sfruttano tecnologie tipiche dei RISC, si possono definire degli ibridi. Siamo in un era post-RISC dove la distinzione tra CISC e RISC è qualcosa di obsoleto e ormai inutile
E non è la potenza di calcolo che manca nei nostri processori, quanto più che altro le mancate ottimizzazioni.
Fossi in te proverei un Mac, io non li sopporto (ma tutto può succedere!) ma molti mi dicono che sia un altro mondo :p
Ciao!
@Wastzzz:
O.o? Io sto parlando di adesso
( la parte di storia era solo introduttiva )
Sono ibriti che non si sa a cosa servono imho.. a che serve avere delle istruzioni CISC che non si usano? A cosa servono istruzioni che devono essere convertite prima di andare?
Tanto vale fare delle implementazioni CISC nei compilatori allora, e usare solo istruzioni di un set RISC nel processore no?
:P i mac hanno perso la maggior parte delle ottimizzazioni appena hanno lasciato l’architettura powerpc per andare sulle cpu intel
, però rimane ancora un ottimo SO