Editoriale
Una grossa opportunità - parte II
L'editoriale del mese scorso ha riscosso un successo superiore alle mie
aspettative, con un discreto numero di persone interessate a cosa si
potrebbe fare per creare questo fantomatico sub-500$ linux pc.
Cercherò di fare una panoramica di cosa sia in realta un pc ultraeconomico,
e di cosa una grossa azienda potrebbe fare per crearne uno davvero capace
(ed economico).
Per prima cosa, uno dei massimi ingegneri della Sun tempo fa annunciò in
una intervista su Byte una regola di massima relativa ai costi reali di
realizzazione di un computer: ogni compoente aggiunto a una macchina si
riflette in un aumento del costo di vendita per il doppio del prezzo
unitario. Detto in parole povere, se aggiungo un floppy che costa 20
dollari, il prezzo all'utente aumenta di 40 dollari. La regola è
approssimata e sbrigativa, ma abbastanza precisa anche oggi (l'articolo
risale ad alcuni anni fa).
Questo significa che un pc che costi 400 dollari deve costare circa 200
dollari in componenti... e questo non lascia molto spazio per l'hardware :-)
A maggior ragione se 25-30 dollari se ne vanno nel software della Microsoft,
in licenze e altri ammennicoli. Vediamo allora cosa potrebbe fare una
ipotetica IBM:
- impiegare un chipset integrato, come il MediaGX. Tali chipset integrano
al loro interno un semplice core simil-intel (un processore solitamente
paragonabile a un Pentium come prestazioni), un chip grafico, un chip sonoro
e i controller usuali per il bus.
Tali chipset costano molto poco, hanno prestazioni non esaltanti ma neanche
disprezzabili - sono insomma un buon compromesso. Per far funzionare
decentemente un chipset di questo tipo però è necessario lavorare a un set
di ottimizzazioni specifiche per il core, in modo da ottenere quel 20/25% di
guadagno in più dai programmi ottimizzati apposta. Tali guadagni sono
abbastanza realistici se le informazioni precise su scheduling delle
istruzioni, struttura interna e simili vengono sfruttate a pieno. Il costo
di una simile operazione è stimabile circa in 300.000 dollari (circa la
cifra che chiede la Cygnus per ottimizzare il gcc per un processore
specifico). Il costo potrebbe essere inferiore, visto che la IBM ha un
ottimo gruppo che lavora sui compilatori (lo scheduler HAIFA utilizzato in
certi casi sul compilatore egcs deriva dal loro lavoro).
- adattare l'X11 per lavorare con il chip grafico integrato, e creare un
piccolo driver 3d per impiegare le (scarse) capacità 3D del chip. Anche se
il guadagno di velocità non è così sensibile come per i chip più evoluti, si riesce comunque a guadagnare un ordine di grandezza in
velocità. Questo rende usabile l'opengl (anzi, la libreria Mesa) anche per i giochi.
- scrivere un driver specifico per il chip sonoro (di solito poco più di un
DAC) e integrarlo in una architettura flessibile come quella dell'ALSA. In
concerto con un buon compilatore si può ridurre il carico sul processore
per cose come il mix in tempo reale, il filtraggio e simili. Anche il midi
play può essere simulato interamente tramite programmi esterni come il
timidity o il csound (quest'ultimo può anche essere impiegato per la
spazializzazione dei suoni).
- un bios ridotto al minimo (così non si pagano le royalties nemmeno di
quello) con giusto quelle 4-5 chiamate necessarie al lilo per partire.
- un kernel recente (i 2.2 che sono in preparazione adesso migliorano di
molto le prestazioni di una macchina in condizioni di bassa memoria, quindi
16-32 mega di ram sono plausibili). Niente KDE (a mio avviso troppo
impegnativo come ram), potrebbe essere meglio gnome, con un window manager
non troppo esoso (WindowMaker va abbastanza bene).
- USB come porta standard per I/O, quindi realizzare i driver per tutte le
periferiche di contorno.
- Aiutare per quanto possibile il wine. Attualmente è in un ottimo stadio,
fa girare un gran numero di giochi, anche in DirectX, e richiede un numero
piccolo di dll di windows. Basterebbe collaborare come la Corel al porting
della SmartSuite, e magari darla in omaggio con la macchina in bundle.
I driver di stampa di Windows a 16 bit funzionano, gran parte dei device del
pannello di controllo svolgono bene la loro funzione, mancano le
implementazioni di una parte delle chiamate di sistema più astruse, e i
toolbox fondamentali (commdlg, commctrl, e pochi altri).
- una decente manualistica per cominciare...
Se tiriamo le somme, vediamo che per finanziare tutti i vari progetti in
giro (USB, Gnome, il compilatore, BIOS, X11, il 3d) si arriva su una cifra di
circa 800.000 dollari. Considerando che queste macchine sono progettate per
"tirature" di almeno qualche milione di esemplari, il costo dell'insieme va
a meno di un dollaro per macchina. E con questo si avrebbe una macchina in
grado di far girare i programmi di 95 (in primis i giochi) con una decente
velocità, un buon assortimento di software, e tutto con due lire.
Aumentando l'integrazione e le economie di scala non è impensabile una
macchina sotto i 300 dollari, e in tal caso l'informatica diventerebbe
davvero "popolare". Chissà se qualcuno ci penserà?
di Carlo Daffara