AROS Research Operating System: AmigaOS everywhere

Le notizie sulla rinascita di Commodore e dell’Amiga sono ormai cicliche. Ogni tanto ne spunta qualcuna che riporta in auge l’argomento, da una parte sollevando la gioia dei nostalgici che aspettano il “riscatto”, e dall’altra facendo storcere il naso a chi pensa che si tratti di manovre puramente commerciali per sfruttare un marchio (e un sogno) che rimane ancora impresso nell’immaginario collettivo, il tutto per arrivare al portafogli dei precedenti.

Da qualunque prospettiva la si veda, rimane il fatto che la comunità Amiga è ancora viva e vegeta, e risulta particolarmente sensibile a eventi di questo tipo. L’ultimo è stato analizzato di recente da Alessio Di Domizio, e porta un’interessante novità: l’installazione di AROS nelle “macchine Amiga” (dei PC a tutti gli effetti).

In precedenza abbiamo parlato di Minimig e Natami, “evoluzioni” dell’hardware originale (quindi basate su Motorola 68000 e chip custom), per cui era perfettamente naturale trattare anche la controparte software, cioè AmigaOS.

In parte è stato già trattato l’argomento in quest’articolo in cui è stato discusso di come sia possibile far girare questo sistema operativo su macchine con hardware diverso, in particolare focalizzando l’attenzione sull’assenza dei chip custom che hanno segnato la storia di questa piattaforma.

Il s.o. dell’Amiga ha subito alterne vicende, che lo hanno portato alla fine a essere sviluppato da una società chiamata Hyperion Entertainment che ne ha rilasciato qualche tempo fa la versione 4.1, la quale gira però su sistemi con hardware completamente diverso dall’originale, basati su CPU PowerPC e vecchie schede grafiche per PC.

In precedenza un altro s.o. (basato su microkernel), chiamato MorphOS, aveva provato a riportare lustro ad AmigaOS, ma girando sempre su macchine PowerPC. Il record di longevità spetta, però, ad AROS, in quanto il progetto era stato pensato circa 17 anni fa, e i lavori iniziati all’incirca 15 anni fa, quando ancora internet era roba di pochi e le informazioni circolavano su reti basate su BBS, come FidoNet.

Questa volta si tratta di un progetto a più largo raggio, in quanto non è legato a una specifica famiglia di microprocessori, ma si pone l’obiettivo di realizzare una riscrittura di AmigaOS in grado di funzionare potenzialmente su qualunque architettura hardware, riproducendo API e funzionalità tipiche del suddetto, con l’intento dichiarato di essere totalmente compatibile con le applicazioni a livello di sorgente, e anche a livello binario per CPU di classe 68000.

Attualmente sono supportate le CPU x86 (a 32 bit, dall’80486 in poi), x86-64 (a 64 bit) e PowerPC a 32 bit. Ironia della sorte, proprio i 68000 (e successori) non sono supportati, per cui non è possibile farlo girare sui computer da cui la storia dell’Amiga, e di AmigaOS in particolare, è partita.

Allo scopo sono stati creati due sostanziosi bounty (trovate i dettagli qui e qui) per invogliare qualche sviluppatore a tentare l’impresa, ma al momento sono stati fatti dei tentativi senza purtroppo venirne a capo.

Comunque la situazione potrebbe sbloccarsi grazie ai già citati Minimig e Natami, che hanno riportato un po’ di gente (anche giovani che hanno scoperto questo mondo e vogliono smanettarci) e quindi risollevato l’interesse per questi microprocessori (in particolare) e macchine.

La spinta maggiore arriverà da Natami, di cui entro fine sembra verrà commercializzata la prima, lungamente attesa, versione, per cui sia gli sviluppatori del progetto che gli utilizzatori (e programmatori che vogliono realizzare applicazioni) hanno interesse a che venga completato questo porting.

Difatti fra i donatori si trova il nome di qualche personaggio che lavora nel team di Natami, oppure che vi gravita attorno (gli appassionati che fremono per la sua commercializzazione e ne frequentano il forum sono tanti, ve l’assicuro!).

Personalmente penso che avere AROS portato su 68K sia enormemente importante per diversi motivi. Il primo è chiaramente di prestigio: sarebbe (e lo è, a mio avviso) assurdo avere una riscrittura di AmigaOS che non giri proprio sugli originali Amiga.

Il secondo, lo ammetto, è di convenienza. Quanti hanno provato a smanettare con WinUAE per rituffarsi nel passo? Penso molti, e sappiamo bene che serve una copia delle ROM originali per poterlo utilizzare.

Ed è il motivo per cui tengo ancora in garage il mio vecchio, ma ormai malfunzionante, Amiga 1200: poter usare KickStart 3.0 e AmigaOS 3.0), oppure acquistarne una (venduta da una delle poche e rinomate aziende italiane ancora impegnate a supportare questa meravigliosa piattaforma, com’è testimoniato anche dal fatto che risulta il maggior contributore al primo bounty!).

Avere un “rimpiazzamento” sarebbe sicuramente comodo, certamente non soltanto per evitare di spendere soldi (non parliamo, infatti, di cifre astronomiche), quanto per avere la possibilità di aggiornare il Kickstart e AmigaOS in generale, cosa abbastanza complicata al momento e che richiede una certa abilità (bisogna “patchare” opportunamente il vecchio codice).

Infine Natami ne ha ancora più bisogno, in quanto espone delle funzionalità più avanzate in termini sia di CPU (sono state aggiunte diverse istruzioni, e si prospetta l’arrivo di un’unità SIMD nuova di zecca) che di chipset (grafica, Copper, Blitter, audio, e core 3D anch’esso nuovo di pacca).

Con AROS disponibile per 68000 e chipset originale (dall’OCS all’AGA) e/o schede grafiche avanzate (come le celebri Picasso, ad esempio) sarebbe di gran lunga più semplice realizzarne una versione ad hoc che sfrutti queste peculiarità, con driver appositamente scritti e ottimizzati.

Un’altra versione di cui si sente la mancanza è quella per i processori ARM, che negli anni si sono ritagliati una considerevole fetta di mercato (in particolare su PDA, smartphone, e telefonini), e si apprestano a invadere anche il mercato dei PC di fascia bassa (netbook su tutti) e server (che hanno bisogno di bassi consumi e buone prestazioni).

Anche per questa è stato aperto un bounty (di cui trovate qui i dettagli) ben pagato, e sono molto curioso di poter provare AROS/ARM sul mio vecchio Zaurus SL-5500, magari rimpiazzando del tutto il s.o. della casa madre (ma servirebbe anche un buon software di riconoscimento della scrittura).

Il supporto alle periferiche rappresenta chiaramente il tallone d’Achille di questo progetto, che purtroppo non conta molti sviluppatori come per altri s.o. più blasonati. In questa pagina c’è un elenco di hardware più o meno supportato, ma bene o male AROS dovrebbe almeno partire su qualunque macchina che soddisfa i requisiti minimi (estremamente ridotti).

Per cercare di ovviare a questo grosso problema gli sviluppatori hanno realizzato delle versioni di AROS non native (chiamate hosted), che fanno girare AROS su s.o. già esistenti (sono supportati Linux, FreeBSD e Windows), in modo da poterne sfruttare in maniera semplice i driver e, quindi, allargare considerevolmente il supporto ai dispositivi hardware che troviamo in giro.

Un altro motivo che ha spinto i programmatori a questa scelta (che a me non piace, ma ne comprendo le motivazioni) è stato quello di poter disporre di un comodo ambiente per poter sviluppare il progetto, che attualmente fa uso della tool chain GNU e permette agevolmente anche la cross-compilazione.

E’ interessante notare che già da qualche tempo AROS è in grado di “autocompilarsi”, nel senso che non è più necessario un ambiente hosted per compilarne i sorgenti e generare i binari necessari per farlo partire, e questo è sicuramente un grosso passo avanti che è stato fatto per realizzare un s.o. autonomo e indipendente (com’era nelle intenzioni, comunque).

A mio avviso sarebbe stato molto utile poter sfruttare ambienti di sviluppo come Visual Studio o CBuilder (che sono decisamente più produttivi per i coder), ma mi rendo conto che ci sarebbero stati problemi per la generazione del codice oggetto finale (sarebbe sempre necessario l’uso di tool esterni, come la suite GNU appunto).

Per il momento mi fermo qui avendo dato una panoramica di AROS e delle finalità che si propone, ma conto di tornare a breve con un altro articolo che riporta le mie impressioni d’uso (e riflessioni) sfruttando una nota “distribuzione”, Icaros, nata grazie al lavoro di Paolo Besser (che penso alcuni conosceranno dai tempi di Bovabyte).

Press ESC to close