BETA
BETACopertinaSommarioInternet IDInformazioniBrowserGuida
BETA

Sommario
Internet ID
Indici di BETA
Redazione
Mailing list
Installazione
Mirror ufficiali
Licenza Pubbl. Beta
Cerca
Stampa





BETA sul Web
Beta.it
Menu Settori e sezioni

Multipiattaforma e open source

Introduzione

Cosa si richiede ad un moderno sistema operativo? Potremo tranquillamente tutti menzionare almeno una decina di requistiti indispensabili tra cui multitasking, multithreading, multiutenza, robustezza e scalabilità.
Proprio sulla scalabilità vorremo concentrarci. È indubbio che i numerosissimi produttori di hardware Intel possano coprire una enorme varieta' di requisiti e di situazioni. È tuttavia indispensabile capire  come per alcuni compiti particolarmente gravosi questa architettura mostri la corda. Sarebbe una grande facilitazione prendere il nostro sistema operativo con tutte le sue applicazioni e portarlo su un hardware più potente, o migliore, e continuare il nostro lavoro.
E' possibile?

Sistemi operativi Multipiattaforma

Sul mercato ci sono svariati sistemi operativi Multipiattaforma, OpenStep, Solaris, Windows NT, OpenBSD, NetBSD, Linux ecc.
Per la nostra trattazione vorrei però sceglierne due ed esaminare a fondo l'attuale situazione: Linux e Windows NT.
Questo non per fare un torto agli altri ma perché questi due sistemi sono, per certi versi l'antesignano l'uno dell'altro.
Windows NT è in mano ad una organizzazione che crede fortemente nel centralismo e nella definizione di standard e protocolli proprietari.
Linux è invece fa sua l'architettura decentralizzata, è disponibile anche in forma di sorgente, è basato su standard aperti ed è l'unico sistema, oltre a NT, che sta guadagnando quote di mercato.
Per scrivere questo articolo mi sono basato essenzialmente su due cose:
  1. Prove dirette effettuate sulla mia rete a casa e basate su un computer di classe x86, una workstation Alpha e un MAC 8500/120.
  2. Ricerche effettuate su Internet tra i maggiori produttori ed utilizzatori di questi sistemi operativi.

Un po' di storia

Uno dei requisiti che Microsoft diede a David Cutler per lo sviluppo di Windows NT fu la possibilità di effettuare un veloce porting fra piattaforme differenti. Questo influenzo' profondamente il progetto di Windows NT. Tutto il sistema fu infatti scritto in ANSI C (il passato è d'obbligo dato che recentemente Microsoft ha stravolto i requisiti iniziali riscrivendo gran parte del kernel in C++ e compilandolo con il proprio compilatore) e in maniera completamente modulare. Unica parte in assembler lo strato più a basso livello chiamato HAL (Hardware Abstraction Layer) che si occupa di comunicare con l'hardware e di astrarre il sistema operativo dalla piattaforma su cui gira. La prima versione di Windows NT (la 3.1) usci' supportando direttamente 4 architetture:
  1. X86 di Intel
  2. Alpha di Digital
  3. MIPS
  4. PowerPC di IBM
Non tutte ebbero egual fortuna dato che MIPS fu abbandonata con la versione 3.51 (da quel che mi risulta solamente Siemens Nixdorf faceva macchine basate su MIPS e compatibili con Windows NT) e PowerPC fu condannato dopo l'uscita della versione 4.0 visto lo scarso interesse mostrato dai clienti IBM sia per la piattaforma PC Serie 8XX sia per Windows NT.
Allo stato attuale Windows NT è installato  per quasi il 90% su piattaforma Intel e per il resto su Digital (ora Compaq) Alpha. Varie statistiche confermano queste cifre.

Linux ha invece una storia opposta. Il kernel (oramai lo sanno anche i sassi) nacque come progetto scolastico da parte di Linus Torvald per lo sviluppo di un sistema Unix like su X86 al posto del vetusto e limitato minix, e  successivamente si è evoluto arricchendosi di funzionalita' fornite mediante lo sforzo congiunto di migliaia di programmatori. L'aggiunta inoltre di programmi sviluppati ad hoc e degli ottimi tool del progetto GNU ha portato  Linux fino agli ottimi livelli di oggi. Qualche tempo fa cominciarono i progetti di porting. Molti appassionati, disponendo di hardware diverso (e magari un po' esoterico e quindi poco supportato), dei sorgenti e dell'ottimo Gcc fondarono un congruo numero di gruppi che iniziarono ad effettuare il porting del sistema sull' hardware più disparato. Tra le principali piattaforme ricordiamo:
  1. Digital Alpha, a opera soprattutto di Jon 'Maddog' Hall
  2. ARM e Strong ARM (come i nuovi Corel Netwinder o svariati modelli della Acorn Computer)
  3. Motorola 68K (per i vecchi MAC, Amiga e Atari ST)
  4. PowerPC (Power MAC e piattaforma PreP)
  5. SPARC e Ultrasparc (anche con la benedizione di Sun)

La situazione attuale

Quel'e' lo stato attuale di Windows NT e Linux? In gran parte la situazione di Windows NT è stata riassunta prima. Microsoft ha abbandonato MIPS e PowerPC per dedicarsi ad Intel e Alpha e una buona fetta dell' installato NT risiede su archittetura Intel e sue evoluzioni. 
Perché questo enorme divario, verrebbe da chiedersi dato che  Alpha ha dei notevoli vantaggi..:
  1. Architettura più moderna e meno limitativa di quella, oramai vetusta, dei PC IBM compatibili. Va infatti tenuto in conto il fatto che nonostante i nuovi bus come PCI e AGP e le frequenze di clock sempre più spinte, poco o niente è cambiato dal famoso IBM AT, ultima evoluzione dell'architettura PC. Parliamo di quasi dodici anni fa. Siamo quindi ancorati ai soliti 15 IRQ di cui possiamo utilizzarne solamente la meta', abbiamo solamente 6 canali DMA, ecc. ecc.
  2. Grande potenza di calcolo. Pur tenendo conto che Alpha, essendo un chip RISC molto spinto, richiede un numero di istruzioni macchina molto più elevato, a parita' di programma, di un CISC, gli oltre 700 Mhz degli ultimi Alpha 21164 ci sono tutti e ne fanno un incredibile chip per number crunching ed applicazioni cpu intensive.
  3. Digital (ora Compaq) non ha mai disdegnato di dare in licenza l'archittettura Alpha e quindi, al giorno d'oggi, è possibile trovare un congruo numero di produttori che permette di assemblarsi delle workstation Alpha come fossero dei PC.
Un motivo assolutamente banale che giustifica questa situazione  e' quello che ha fermato molti computer/sistemi operativi/architetture del presente e del passato: la mancanza cronica di applicazioni.
Ho telefonato in Microsoft Italia chiedendo di poter ottenere una statistica delle applicazioni disponibili per NT su piattaforma Alpha. La mia interlocutrice non deve aver ben compreso la domanda dato che mi ha detto senza incertezza che (cito testualmente) "le applicazioni sviluppate su Windows NT sono un numero talmente elevato che è impossibile avere una stima completa". Quando le ho risposto che questo già lo sapevo ma che moltissime sono disponibili solamente per piattaforma Intel e che volevo SPECIFICAMENTE sapere quante erano compilate  anche o solo per Alpha, mi ha risposto che tali dati sono troppo specialistici e che servirà tempo per averli. A tutt'oggi non li ho ancora ricevuti. E qui sta il problema. Gli stessi applicativi desktop di Microsoft non sono compilati per Alpha. Office 97 esiste solo per Intel e per MacOS (come Office 98) ma non per Windows NT su Alpha. Non per niente la Digital ha rilasciato il suo emulatore FX32 gratutitamente per supplire a questo problema.
Perché devo comperare una macchina velocissima per poi ucciderla con un emulatore X86?
Anche nel reparto server le cose non vanno molto meglio. Alcuni, come Oracle e Sybase, offrono i loro prodotti anche per Alpha ma altri semplicemente ignorano questa piattaforma.
E' inutile dire che con il sistema operativo e una manciata di applicazioni non è possibile essere produttivi e questo è un peccato dato che i server di fascia altissima di Compaq su Alpha dispongono di potenze da mainframe che NT, nonostante Microsoft punti decisamente al mercato delle imprese, Enterprise, non potra' quindi sfruttare a dovere.

Non mi sono voluto arrendere e quindi ho cominciato ad installare NT sulla workstation Alpha. L'installazione, tranne qualche piccola sottigliezza, e' identica a quella per Intel e si effettua dallo stesso Cd-Rom della versione Intel. Sappiamo infatti che Microsoft non differenzia i supporti tra le diverse architetture. Connessa la workstation ad Internet ho cominciato a vedere se potevo trovare alcuni programmini shareware che utilizzo di solito in ambiente NT. Niente! Ho provato a cercare su Tucows, su Winfile ed altri siti ma di programmi per NT su Alpha nemmeno l'ombra. Mi arrangio, ma con che cosa? Conoscete voi dei compilatori per NT su Alpha? Visual Studio no! Idem per il porting del Gcc effettuato dalla Cygnus. Sto ancora cercando di risolvere il problema senza estrarre dal portafoglio cifre spaventose per qualche compilatore specializzato. Più fortuna arriva con dei prodotti di alto livello come la suite di Backoffice di Microsoft, Oracle 8, Sybase 11 ed alcuni software di CA. Il tutto sembra dire, senza troppe remore: "Windows NT per Alpha NON è per il desktop".

E Linux? Da questo punto di vista Linux ha di fronte a se una lunga e florida esistenza, specialmente se i produttori di software commerciale non sbaglieranno le politiche di vendita.
Per effettuare qualche test ho scaricato Linux PPC R 4 da Internet e l'ho installato su un Powermac 8500.  Successivamente ho recuperato una Red Hat 5.0 da un cassetto e l'ho installata su una workstation Alpha assemblata. In entrambi i casi l'installazione del sistema è stata un pochino più difficoltosa che su PC e questo per ovvi motivi dato che il firmware presente sulle macchine RISC è di almeno un ordine di grandezza più complesso del BIOS dei PC. In ogni caso lo stesso discorso vale per Windows NT su Alpha.
Una volta installato Linux il sistema non si comporta diversamente da un PC. Solo un cat su /proc/cpuinfo conferma che ci troviamo su una diversa architettura. Il primo test che ho effettuato è stata la compilazione del KDE sulla workstation Alpha cosi' da avere un ambiente comune su tutti e tre le macchine (SuSE e LinuxPPC installano infatti il KDE di default). Tutto è andato a buon fine senza troppi problemi evidenziando la potenza del software open source. Disponendo dei sorgenti, dello stesso sistema operativo e del gcc non si hanno problemi a trasferire le proprie applicazioni sulla piattaforma che si sta utilizzando, anche se questa è a 64 bit. Avere la stessa interfaccia su tre differenti macchine mi ha fatto sentire un po' il Magician delle Hacker's Tarot Card, se qualcuno ha mai avuto modo di leggere questo documento!
Ho scelto varie applicazioni a caso da un cdrom  contenente il mirror della sunsite ma non ho avuto troppi problemi a compilarle sia sotto il PowerMac che sulla stazione Alpha. Bene! Quindi che si abbia a che fare con un'architetura a 64 bit oppure Little Endian non sorgono problemi, se non per programmi particolari legati all' hardware.
Ho cominciato a curiosare quindi tra il software commerciale per vedere se questo idillio continuava. 
Al primo tentativo tutto OK.  L'Open Sound Server della 4 Front Technology (davvero un'ottimo prodotto) si trova sul loro sito già compilato per Alpha, Intel e PowerPC. Una panacea.
Altro software che utilizzo quasi quotidianamente è la suite Applixware 4.4.1 della Applix. SuSE, il fornitore da cui l'ho comprata pacchettizzata come Linux Office 99, fornisce solamente la versione per Intel. Sono andato sul sito della Applix e, tra le novita' ho visto che la suite è attualmente in fase di Betatest per la versione Alpha ed è cominciato il porting per la piattafoma PowerPC. Sono rimasto impressionato. Alla Applix contano di rilasciare entrambe le versioni per inizio dell' anno prossimo.
Dato che la Matrox Mistyque che ho sul PC fa le bizze con XFree 86 uso da sempre Metro-X. Ho provato a vedere se è disponibile e ho visto che sul sito è disponibile la versione per Alpha. Non si hanno annunci per quella PowerMac.
Sybase e Oracle sono disponibili per ora solamente su piattaforma Intel. Non dubito però che verrano portati entro poco tempo almeno su Alpha. Entrambe le societa' hanno i già compilato, come ho scritto prima, entrambi i prodotti su questa architettura sotto Windows NT. Oltretutto la prova di forza effettuata da Oracle in questi giorni (per chi non lo sapesse Oracle ha dimostrato di poter processare 170 Gb di dati in un'ora su un server Xeon quadriprocessore con Linux Red Hat) dimostra quanto la casa conti su questo SO. Se le voci che ho udito riguardo ad una pacchettizzazione di una versione di Linux direttamente sul cd di Oracle 8 fossero vere c'e' da scommettere un veloce porting di Oracle sulle varie architetture supportate da Linux.

Conclusioni

Tutto questo cosa ci porta a concludere? Una cosa che tutti i sostenitori di Linux e della politica Open Source già sapevano da tempo. Disporre del codice sorgente è un grossissimo incentivo per una crescita esponenziale del software specialmente in ambito Multipiattaforma. Linux non è nato Multipiattaforma. Una gran parte delle primissime release del kernel era scritta in assembler del 386. Eppure con raffinamenti successivi è stato portato sui sistemi più disparati. Le applicazioni open source non sono da meno. A parte qualche eccezione, legata all'hardware o ad una particolare architettura, tutte possono essere ricompilate senza troppi problemi direttamente dall'utente. Non si deve impazzire andando a cercare se qualcuno l'ha gia' fatto al posto nostro, ne' si devono spedire mail a tutti gli autori per vedere se avranno la possibilità di compilare le appicazioni per una piattaforma specifica.
Inoltre c'e' da considerare un altro fattore non banale. Un sistema commerciale come Windows NT deve necessariamente seguire le leggi di mercato riguardo domanda e offerta. Se una piattaforma non è considerata strategica o importante la societa' produttrice del software non gettera' sicuramente soldi in R&D e quindi il prodotto o non verra' sviluppato o andra' a decadere.
Linux è invece sostenuto dal lavoro volontario di migliaia di persone che lo seguono con zelo quasi religioso. Tra costoro si possono tranquillamente annoverare alcuni dei più irriducibili tecnocrati del pianeta. Pensate che qualcosa, tranne il tempo a disposizione e la disponibilità delle specifiche sull'architettura, possa fermare costoro dal portare Linux su qualche hardware assolutamente esotico e posseduto solo da loro e altre 10 persone nel mondo? Quindi i porting vengono effettuati indipedentemente dalla domanda e dalle leggi di mercato. Una volta che il sistema e' stato compilato e reso funzionante è sufficiente il compilatore della gnu e i sorgenti dei programmi trovati su Internet per crearsi in pochissimo tempo un parco software praticamente senza fine. Da qui poi si genera un ciclo di feedback positivo. In che senso? Come è successo a me, se in un asta o ad una fiera trovo una vecchia workstation oramai non più supportata e quindi anche economica, e sono sicuro che ci gira Linux che faccio, non la compro? La comprero' e comincero' anch'io a portare gli applicativi su quella piattaforma, magari confezionando direttamante gli rpm in formato binario. E il ciclo si rafforza...

Unico grosso punto di vantaggio di Windows NT rispetto a Linux è che Microsoft e' comunque una societa' commerciale di immane potenza. Quindi non ha alcun problema a procurarsi qualunque informazione le sia necessaria tramite contratti di Non disclosure Agreement. Questo ovviamente è impossibile per Linux dato che il software sviluppato con la licenza GPL deve essere disponibile anche in formato sorgente. Questo vantaggio è utile per molte tecnologie emergenti le cui specifiche vengono rilasciate solamente in questa forma. Questo è successo, fino a pochi giorni fa con l'architettura I2O basata sul processore i960 di Intel. Se Intel stessa non avesse fatto un inversione di tendenza cambiando il contratto con cui rilasciava le specifiche, Linux non avrebbe avuto modo di supportarla a meno di non buttarsi in un complesso lavoro di reverse-engineering. Ovviamente, essendo questa una tecnologia estremamente utile per la creazione di server potenti in architettura Intel, sarebbe stata una grave perdita.

Cerchiamo a questo punto di tirare le fila del discorso. I PRO ed i contro per Windows NT sono:
    PRO
  • Nato come sistema Multipiattaforma
  • Richiedeva pochissimo sforzo per effettuare il porting
  • Disponibilità pressoche' totale di informazioni sulle varie architetture/tecnologie
  • CONTRO

  • Forte dipendenza dalle politiche aziendali e richiesta di mercato
  • La mancanza del codice sorgente impedisce l'iniziativa di singoli user group ad effettuare il porting del SO
  • La distribuzione del software in binario costringe a sottostare ai tempi/decisioni dello sviluppatore
  • Mancato supporto da parte delle software house ad architetture non Intel.
 

Per il software Open Source (e quindi Linux) invece:
 

    PRO
  • La disponibilità del codice sorgente facilita il porting del sistema a chi ne ha le capacita'/necessita'
  • La distribuzione del codice sorgente degli applicativi permette di compilare al volo il programma di cui abbiamo bisogno per la nostra architettura.
  • CONTRO

  • Impossibilità di accedere a tecnologie protette da Non Disclosure Agreement

  •  
E' indubbio alla luce di tutto questo che la tendenza tra i due sistemi si accentui con il passare del tempo. Windows NT, forte della potenza di Microsoft, si specializzerà sempre più sulla piattaforma Intel supportandone velocemente tutte le più moderne tecnologie, ovvero esattamente quello che vuole il mercato a cui è rivolto questo sistema. Le software house seguiranno a ruota.
Linux verrà progressivamente portato anche sulle architetture che ora mancano all' appello. La disponibilità del software Open Source permettera' di ricompilare le applicazioni per le varie architetture senza alcuno sforzo.
In cosa si tradurrà tutto questo per l'utente finale?
Sicuramente in un grande vantaggio, ovvero nell'indipendenza dall'hardware. Questa indipendenza, già ora permette di scegliere l'architettura in base a cio' che già si possiede o alle proprie esigenze. Inoltre permette di scalare il proprio sistema per adeguarsi velocemente alla potenza che gli si richiede. Se il kernel 3.0 conterra', come detto da Linus Torvald più volte, una robusta sezione di clustering e di load balancing, Linux potra' essere utilizzato su computer high-end oggi disponibili solamente per gli Unix commerciali. Con questo si potra' quindi aprire il mondo dei grossi centri di calcolo, del Data warehousing, o delle applicazioni di Rendering e scientifiche particolarmente complesse. Ricordiamoci infatti, come ultimo esempio, il film Titanic. Tutto il rendering è stato effettuato con 150 workstation Alpha connesse in rete, con Linux come sistema operativo. I risultati sono, per una volta, ben visibili a tutti.


Andrea Ghirardini è Collaboratore di BETA dal 1998; è raggiungibile su Internet tramite la redazione oppure all'indirizzo andrea@sodalia.it.

Copyright © 1998 Andrea Ghirardini, tutti i diritti sono riservati. Questo Articolo di BETA, insieme alla Rivista, è distribuibile secondo i termini e le condizioni della Licenza Pubblica Beta, come specificato nel file LPB.


BETA Rivista | Copertina | Sommario | InternetID | Informazioni | Browser
BETA Sul Web: http://www.beta.it

Copertina Sommario Internet ID Informazioni Browser
Home Page BETA Rivista Indice Articoli Beta Editore, articoli e pubblicazioni Beta2, contributi esterni BETA Logo, siti premiati Premio BETA Logo Licenza Article/Document Definition Format Promozione Pubblicita' Mirroring Mirror Ufficiali BETA Navigatore NavSearch Novità BETA Stampa/Press Releases BETA Settori online Eventi Public Bookstore (libreria) Settori riservati Redazione