| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
. |
AROS di Bernardo Innocenti (bernie@cosmos.it) - per gentile concessione di Amiga Life I primi tentativi in tal senso fallirono miseramente prima ancora di iniziare. Gli sviluppatori Amiga, pur essendo molto numerosi, hanno sempre sofferto di una pressoché totale mancanza di coordinazione. Le mailing list dei primi progetti di riscrittura di AmigaOS, tra cui uno chiamato AOS, vennero letteralmente soffocate da polemiche infruttuose su dettagli tecnici quali la protezione della memoria ed il multi-processing simmetrico, senza che fosse stata scritta una sola linea di codice.
Per semplificare il debug nelle prime fasi dello sviluppo, AROS è stato scritto in modo da poter essere eseguito anche come un normale programma di Linux, permettendo così agli sviluppatori di avvalersi di un ambiente di sviluppo potente e flessibile. Nella comunità di sviluppatori UNIX, invece, la prassi è di rendere immediatamente disponibili i sorgenti dei programmi in modo da incoraggiare altri a correggerne i bug e ad aggiungere funzionalità. Utilizzando strumenti appositi, è possibile coordinare centinaia di sviluppatori freelance in progetti di dimensioni mastodontiche. AROS utilizza un modello di sviluppo di questo tipo. I sorgenti sono mantenuti da un server CVS (Concurrent Version System) accessibile via Internet. Il CVS risolve i problemi legati alla sincronizzazione delle modifiche apportate dagli sviluppatori e mantiene dei log che permettono di risalire all'autore e allo scopo di ogni singola modifica. Gli sviluppatori hanno la possibilità di aggiornare la propria copia dei sorgenti collegandosi al server, ed eventualmente inviare le proprie modifiche in modo che siano rese disponibili anche agli altri. Grazie alla mailing list aros-dev è possibile discutere le questioni implementative prima di procedere nel lavoro. Ogni partecipante può offrirsi volontario per sviluppare una parte del sistema operativo. L'assegnazione dei lavori è stata automatizzata mediante un apposito Job Server, che permette di tenere traccia dello stato di avanzamento di ogni singolo lavoro.
Attualmente, gli unici moduli che offrono una compatibilità binaria sufficiente con l'OS 3.1 sono exec.strap, alert.hook, utility.library, keymap.library e commodities.library. Gli altri moduli non sono ancora utilizzabili su Amiga perché la maggior parte dei partecipanti utilizza il flavour Linux e preferisce concentrarsi sull'implementazione delle parti mancanti di AmigaOS, lasciando la fase di testing e debug in ambiente nativo per ultima. AROS è stato progettato in modo da essere facilmente portato in una varietà di ambienti diversi ed i flavour attualmente disponibili costituiscono solo un inizio. L'unico vero limite alla possibilità di portare AROS su altri sistemi in modo nativo o emulato è costituito dalla disponibilità di sviluppatori che si offrano volontari per realizzare il lavoro. Qualche mese fa nella mailing list è stata discussa la possibilità di un port per PowerPC. Przemyslaw Szczygielski sta lavorando ad una versione di AROS che girerà indistintamente su Linux APUS, Linux PPC e MkLinux. Claus Herrmann sta invece lavorando ad una versione nativa per Amiga dotati di schede PowerPC. Non si tratterebbe dell'ennesimo kernel PPC come quelli offerti da Phase5 ed Haage & Partner: AROS sarà invece un sistema completamente nativo PowerPC sul quale le vecchie applicazioni 68000 non potranno essere eseguite senza ricorrere ad un emulatore software. In alternativa, sarebbe possibile realizzare un flavour emulato come in UNIX, lanciando quindi AROS per PowerPC in uno schermo a parte mentre sul 68000 continua a funzionare la versione originale di AmigaOS. Alla fine del 1998, dopo una serie interminabile di discussioni tecniche, la progettazione è ripartita in grande stile. Nils Henrik Lorentzen, Stefan Berger, Henning Kiel e Bernhard Fastenrath hanno formato una task-force che in pochi mesi ha portato Intuition, Graphics e Layers ad uno stadio di maturità sufficiente a poter proseguire lo sviluppo di GadTools, Asl e Boopsi. Johan Alfredsson, che ha da poco completato commodities.library e datatypes.library, sta ora lavorando alla realtime.library e alle parti mancanti del console.device, grazie al quale sarà presto possibile aprire la shell all'interno di una finestra CON: come avviene su Amiga. Quando Michael Schultz avrà completato i necessari driver, sarà possibile creare partizioni FastFileSystem sull'hard disk di un PC per poter effettuare il boot della versione ibmpc-native. Nel frattempo, Branko Collins si è offerto di aggiornare e correggere la documentazione di AROS e di rinnovare il look del sito web in modo da renderlo più accessibile agli utenti non programmatori. La nuova home page dovrebbe essere disponibile on-line entro Settembre. A mano a mano che i vari moduli di sistema verranno completati, diverrà possibile portare su AROS il software attualmente esistente per Amiga. Per non dissipare risorse inutilmente, il team di AROS ha deciso di non iniziare a riscrivere le utility di sistema per le quali sono già presenti delle versioni sostitutive nel pubblico dominio. Sono infatti innumerevoli i programmi che, negli corso degli anni, hanno sostituito e migliorato gli equivalenti forniti con AmigaOS 3.1. Il Workbench, per esempio, potrebbe essere sostituito da Scalos oppure da Directory Opus. Ogni buon utente Amiga ha installato dozzine di questi programmi, tipicamente assieme a varie patch che migliorano l'estetica o la funzionalità del sistema. Queste ultime su AROS diverrebbero del tutto superflue e superate: disponendo dei sorgenti dell'intero sistema operativo sarebbe infatti più semplice aggiungere tutte queste migliorie direttamente nel sistema anziché ricorrere a dei patch. Un driver di una nuova scheda grafica può essere scritto in poche ore implementando semplicemente il codice che inizializza il framebuffer grafico ed una funzione che permetta di disegnare singoli pixel. Tutti gli altri metodi del driver HIDD possono essere ereditati dalla classe generica ''dispositivo grafico'', che è in grado di emulare qualsiasi funzione di disegno chiamando soltanto il metodo WritePixel. Ovviamente in seguito è possibile ottimizzare il driver implementando direttamente altri metodi in modo da sfruttare eventuali acceleratori grafici. Perciò in AROS la graphics.library si riduce ad una sorta di interfaccia di alto livello per accedere agli HIDD sottostanti. Attualmente esiste un HIDD che permette di usare una finestra di X11 come dispositivo di output grafico ed altri per poter ricevere da essa l'input del mouse e della tastiera. Il flavour IBM-PC possiede degli HIDD equivalenti che accedono direttamente all'hardware dei PC. Nessuno ha ancora iniziato a scrivere degli HIDD per l'hardware di Amiga, ma ovviamente non ci sarebbero difficoltà. È possibile, anche se non accertato, che la distribuzione di un sistema operativo funzionalmente identico ad AmigaOS costituisca una violazione di alcuni dei brevetti di proprietà di Commodore, passati adesso nelle mani di Gateway 2000. In caso di un'azione legale da parte di Amiga Inc., il team di AROS non possederebbe la forza economica necessaria per potersi difendere adeguatamente. Nel corso degli ultimi due anni Aaron Digulla e gli altri sviluppatori hanno tentato di contattare Petro Tyschtschenko, Jeff Schindler e Bill McEwen. Anche se i pareri personali dello staff di Amiga Inc. sono sempre stati positivi riguardo ad AROS, ancora oggi non è stato possibile ottenere una risposta ufficiale definitiva. In mancanza di informazioni certe sullo stato legale di AROS, fino ad oggi soltanto gli sviluppatori coinvolti nel progetto hanno avuto accesso ai sorgenti di AROS. In seguito a questa scoperta, è stato possibile avviare una discussione sulla possibilità di rilasciare AROS al pubblico. Il cardine del dibattito è stata la scelta di una licenza di distribuzione. Sebbene all'interno del progetto tutti fossero unanimi nella scelta di una licenza open source di tipo non commerciale, il team era diviso tra chi desiderava una licenza stile GPL e chi avrebbe preferito una licenza stile BSD. Nel corso del dibattito sono state proposte numerose alternative, tra le quali quella di scrivere unaw licenza ad-hoc. Alla fine la scelta è ricaduta su una licenza MPL. La MPL presenta diverse analogie con la GPL, ma permette al team di AROS di offrire i sorgenti a terze parti con licenze di tipo diverso, consentendo così a compagnie come Amiga Inc., Phase 5 e Haage & Partner di utilizzare AROS in parte o per intero come base per lo sviluppo di prodotti commerciali senza avere l'obbligo di distribuire i sorgenti. Successivamente, Aaron Digulla ha stabilito una dead-line per la prima distribuzione pubblica di AROS, invitando tutti ad inviare eventuali lavori non ancora rilasciati. Il primo upload su Aminet è avvenuto in concomitanza con il World Of Amiga. La distribuzione è suddivisa in 4 archivi che contengono i sorgenti, la documentazione, gli eseguibili per Amiga e quelli per Linux. Oggi AROS è senza dubbio il più maturo tra i progetti di riscrittura di AmigaOS, ed il giorno in cui gli utenti potranno iniziare ad usufruirne si avvicina sempre di più. I sorgenti depositati nel server CVS ammontano ormai a oltre 31MB e il 65% delle funzioni di sistema sono state già scritte. In AROS sono impegnati oltre 90 sviluppatori e grazie al progressivo consolidamento del sistema il lavoro procede sempre più rapidamente. In futuro, il successo di AROS dipenderà in larga misura dalla capacità dei programmatori Amiga di adeguare il proprio modo di lavorare ad un sistema operativo open-source. Anziché disperdere le proprie energie lavorando individualmente a programmi di piccole e medie dimensioni, gli sviluppatori dovranno contribuire attivamente al miglioramento dell'intero sistema. Ormai sono innumerevoli gli esempi di progetti di successo a cui ispirarsi. Basta nominare Linux o FreeBSD per rendersi conto che, anche nell’ambito del software, l'unione fa la forza. Riferimenti
|
. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contact: For this article: bernie@cosmos.it General info: info@amiworld.it |