>


visita il sito del nostro sponsor





MorphOS!




Il presente articolo è già apparso sulla rivista:

Ci preme ringraziare Nicola Morocutti per averci concesso l'onore di ospitare sulla nostra e-zine l'articolo di Elena Novaretti.



Parte terza - MorphOS dal vivo
-------------------------------

Con la scorsa puntata abbiamo trattato l'installazione di MorphOS, o perlomeno abbiamo cercato, basandoci sulle nostre esperienze, di tracciare una linea guida su come procedere in questo compito purtroppo ancora poco o male documentato, e proprio per questo fonte spesso di scoraggiamento da parte del potenziale utente. E' oramai imminente l'uscita del Pegasos completo di MorphOS 1.0 (anzi si parla già addirittura di 1.2) e continuare a riferirsi alla vecchia beta release pubblica 0.4 può sembrare forse non piu' produttivo; ma essendo in concreto e attualmente ancora questa la versione che noi tutti possiamo installare ed usare sui nostri Amiga dotati di schede PowerPC è sempre di essa che noi tratteremo, nei pregi e anche nei difetti. E' doveroso comunque ricordare che nella versione commerciale e finale di MorphOS venduta assieme al Pegasos non sarà piu' necessario in alcun modo basarsi sulle vecchie ROM e/o distribuzioni software AmigaOS di AmigaINC così come invece è necessario attualmente. Allo stesso modo in un secondo tempo verrà costantemente aggiornata anche la versione per schede PowerUP, almeno stando alle loro affermazioni, anche se attualmente questo progetto ha per ovvie ragioni assunto una priorità secondaria. Fatte queste doverose precisazioni, vediamo di riprendere il discorso dal punto in cui lo avevamo interrotto la volta scorsa.


L'installazione è certamente lo scoglio più grande da superare proprio per il fatto che la documentazione, forse perchè si tratta ancora di una beta, è piuttosto scarna e lascia molto in parte all'immaginazione, in parte all'intuito e al buonsenso dell'utente. Ma una volta capito il meccanismo di emulazione ed entrati nell'ottica di capire cosa va fatto e cosa non va fatto, si prenderà confidenza e tutto ci sembrerà uguale a prima, anzi direi molto migliore di prima in termini di prestazioni. Ma in che misura esattamente ? Cerchiamo di capirlo insieme. Ovvio, il migliore dei modi per rendersene conto sarebbe provarlo di persona, in quanto il fattore velocità, come affermato anche nel capitolo scorso, dipende ampiamente dalla propria configurazione: chi, come chi scrive, possedeva un 68040 sicuramente apprezzerà un incremento di velocità notevole. Chi invece disponeva già di un 68060 a 50 Mhz, per esempio, sentirà meno questa accelerazione, che rimarrà comunque piuttosto evidente nello svolgimento di operazioni grafiche in generale, specialmente se dispone di una scheda video supportata dal driver nativo (come la CVisionPPC). Per fare un esempio, il tracciamento dei pattern di sfondo del Workbench ora è nettamente più veloce, quasi istantaneo, poichè la funzione AllocBitMap() di CGX PPC è abbastanza intelligente da allocare la bitmap in videoram, se c'è spazio a sufficienza, e non è più necessario ricorrere a patch.
Inoltre la banda con cui i dati vengono spostati dalla Fast Ram della
CyberStormPPC alla scheda video da parte del PPC è nettamente superiore a quella disponibile sul lato 68K. Il caricamento di immagini tramite Multiview o altri programmi che fanno uso dei datatypes avviene in frazioni di secondo, grazie ai datatypes PPC (se correttamente installati). I programmi che utilizzano MUI avranno un feeling decisamente migliore ed un refresh fulmineo, sempre che sia stata installata la MUI nativa. Parlando di emulazione si può affermare che la velocità nel puro calcolo intero si assesta mediamente su quella di un 68060 a 20 Mhz, usando un PowerPC 604e200, anche se i programmi che utilizzano codice FPU saranno avvantaggiati e più veloci di un normale 68060-50. Avevamo già accennato a questo punto chiave nel primo capitolo, vediamo ora di chiarirlo meglio. Un programma compilato specificatamente per 680x0 normalmente utilizza delle link library per la risoluzione di molte operazioni in virgola mobile, come per esempio le funzioni trigonometriche e trascendenti, poichè tali CPU sono sprovviste di queste istruzioni a livello di codice macchina; istruzioni che invece erano implementate nei buoni vecchi coprocessori, come il 68881-2. Le link library usate allo scopo contengono quindi funzioni, spesso molto lunghe e complesse, anche solo per calcolare un semplice coseno o radice quadrata. E' evidente che l'emulatore risulti molto più veloce nell'interpretazione di una singola istruzione specifica che non nell'emulazione di qualche centinaio di istruzioni! Quindi vale la seguente regola: se potete scegliere tra uno stesso programma compilato per diverse cpu, scegliete quello che solitamente viene indicato come "FPU" oppure "68881-2": sarà sicuramente molto più veloce della controparte compilata per il 68040 o il 68060. Se invece si tratta di un programma che non fa uso della FPU o la cosa non è specificata, è palese che la scelta dovrà cadere sulla versione 060: non dimentichiamoci che, dal lato 68K, MorphOS emula un perfetto 68060, oltre a comprendere ed emulare molto rapidamente tutto il subset di istruzioni
FPU specifiche dei vecchi coprocessori matematici. Dove non ci si può aspettare un grande incremento di prestazioni è invece nei programmi che non giovano minimamente della FPU, come la maggior parte dei compattatori/scompattatori, oppure nei programmi che per il caricamento e salvataggio delle immagini utilizzano algoritmi proprietari senza fare uso dei datatypes. ImageFX ne è un esempio: se escludiamo la disponibilità di alcuni moduli per PowerPC rapidissimi (che comunque sono scritti per PowerUP e venduti separatamente) le prestazioni generali sono pressochè identiche a quelle di prima, anche se l'uso di finestre in true color su Workbench e altre operazioni grafiche di blitting trarranno sicuramente vantaggio dalla presenza di CGX5 PPC. Le stesse affermazioni si possono fare per programmi simili come ArtEffect, Photogenics, etc. L'immancabile PersonalPaint, programma arcinoto per accedere all'OS in modo sporco e fare ancora affidamento alla grafica planare, benchè sempre lento lavora alla perfezione anche sotto emulazione - e questo la dice lunga sull'affidabilità di MorphOS. Se volete giocare un pò con i benchmark a vostra disposizione fate pure, ma prendete i risultati con le pinzette perchè spesso sono tutt'altro che attendibili. In modo particolare il vecchio Sysinfo è sconsigliabile sotto emulazione. Per fare qualche esempio, Scout mostra come CPU uno 060 a 16 Mhz con FPU a 80 Mhz (risultati piuttosto coerenti con l'evidenza). SysSpeed indica circa 9 MIPS e 11 MFLOPS sul lato 68K, e 286 MIPS e 185 MFLOPS sul lato PPC...
L'accesso ai dischi fissi collegati al controller UltraWide della CSPPC sembra leggermente più veloce rispetto ad AmigaOS: SCSIBench indica transfer rate di circa 15MB/Sec per il migliore hard disk provato (un IBM in modo sincrono) contro i circa 11 ottenuti sotto AmigaOS; mentre per lo ZIP, sempre collegato alla stessa catena, il valore è sempre di circa 800KB/Sec. Come FileSystem abbiamo usato sia il FFS che il PFS3, entrambi funzionanti in modo egregio e trasparente in emulazione. Il kernel di MorphOS comprende comunque una versione PPC residente dell'SFS per chi si volesse cimentare nel suo utilizzo: a noi non è stato possibile provarlo per via del non funzionamento di HDToolBox (vedi oltre). Sembra comunque che le prestazioni siano simili a quelle ottenibili col PFS3.


Fin'ora abbiamo parlato di emulazione, dando quasi per scontato che nel 90% dei casi ci troveremo a dover utilizzare ancora, vuoi per la carenza delle rispettive versioni per MorphOS, vuoi per nostalgia o necessità, vecchie applicazioni scritte per il 68K. Ma come si comporta il PPC ?
Nella prima puntata avevamo accennato che l'attuale release di MorphOS "emula" in un certo senso le API dei kernel PowerUP e WarpOS, rendendole entrambe visibili all'utente e senza conflitti di sorta. Questo significa, almeno su carta, che finalmente potremo usare indistintamente i nostri vecchi programmi per PUP o WOS senza dover ogni volta resettare la macchina, disabilitare uno dei due kernel o utilizzare la (a suo tempo utilissima!) ppclibemu di Frank Wille. In pratica sembra comunque, e possiamo riconfermarlo, che la compatibilità e la stabilità sia nettamente maggiore nei confronti dei programmi .elf scritti per il vecchio kernel PowerUP: capita spesso che le relative versioni per WarpOS causino alerts o blocchi di sistema. Ma salvo rari casi, questo è un problema abbastanza raggirabile poichè la disponibilità di molti programmi, utilities, devices e librerie in forma nativa per MorphOs sembra crescere piuttosto rapidamente. Già sul numero precedente avevamo stilato una breve lista del materiale disponibile, a cui attualmente si aggiungono l'editor CED, emulatori come il MAME, per la prima volta in versione MorphOS, e ScummVM, l'interprete di avventure della Lucas ad opera del bravo Rudiger Hanke, da cui attendiamo con impazienza anche il porting per MorphOS del suo software-synth AMidi. Un elenco delle utility minori o porting da ambienti unix/linux è pressochè impossibile, e consigliamo a questo fine di consultare quotidianamente le news sulla home page di MorphOS.


Sul fronte dei programmi per Internet l'accoppiata YAM PPC e Voyager PPC si riconferma vincente. Yam, grazie anche alla MUI per PPC, è letteralmente una scheggia e sembrerebbe ancora una volta il programma perfetto. Su Voyager si potrebbe scrivere un libro, come sempre. Va a suo favore il fatto di essere attualmente l'unico browser per Amiga in codice PPC (solo recentemente si è tentato un porting non troppo riuscito di
Aweb) oltre ad essere l'unico a venire costantemente aggiornato, ma a suo sfavore troviamo i consueti bachi e intriseche instabilità o incoerenze di sempre. Certamente questa versione PPC è visibilmente più veloce e fluida nel refresh e nella risponsività rispetto all'originale, ma non è raro imbattersi in crash, funzioni ancora disabilitate, stati di "morte apparente" e altre noiose evenienze.


Va fatto notare che nella maggior parte dei casi, quando si verifica un errore, MorphOS riesce ad aprire una finestra della console per visualizzarne i dettagli, come la task incriminata e il contenuto dei registri del PPC e del 68K emulato (a meno che non sia stato impostato un altro tipo di debug nel comando Startup, come quello seriale o il ram-debug). Se siamo fortunati si tratta di un errore recuperabile, altrimenti può accadere che tale output continui ad oltranza e l'unica speranza sia quella di rimuovere la task in questione tramite utilities come Scout. Se l'errore è grave, invece, è possibile che il sistema si blocchi irrimediabilmente, con un reset manuale come unica via di uscita.
A questo proposito dobbiamo precisare che il kernel di MorphOs non resiste ai reset, almeno nella versione attuale, ma che dopo ogni chiamata a ColdReboot() o reset manuale esso si rimuove rendendo necessario il suo ricaricamento. Tutto avviene in modo automatico ovviamente, se sono stati seguiti i consigli di installazione dello scorso numero, ma quella ventina di secondi necessaria per compiere un doppio boot possono essere fastidiosi, specialmente se si hanno i nervi logorati per aver appena subìto un crash di qualche programma...


Cosa non va ancora ?
--------------------
Come abbiamo purtroppo affermato nei capitoli scorsi, MorphOS soffre ancora di diversi difetti di gioventù. Piccoli o grandi... questo dipende in larga misura dall'uso che viene fatto del proprio Amiga, dalle abitudini personali, dalla configurazione hardware... certo sarebbe auspicabile che tutti i difetti presenti venissero rimossi al più presto, o perlomeno che vi fosse un maggiore feedback tra utenti e sviluppatori del team, al fine di dare garanzie circa miglioramenti e futuri sviluppi.
Sicuramente il difetto più fastidioso è quello del nuovo picture.datatype.elf che, oltre a non salvare (e questo purtroppo contribuisce ulteriormente a scoraggiare quei già pochi programmatori che ne potrebbero fare uso al posto di algoritmi proprietari...) compie diversi errori di visualizzazione se usato su modi video a 32 bit. Un difetto visibilissimo specialmente nei pattern di sfondo del Workbench o di altri programmi che usano i datatypes per caricare le immagini. La funzione DrawEllipse() della "nuova" graphics.library (ovvero, patchata da CGX5 PPC) sembra totalmente difettosa, in quanto su molti modi video genera pixel sporchi e privi di significato (questo bug è visibile per esempio tracciando cerchi da un pixel di spessore con PersonalPaint o ImageFX: spesso non viene tracciato un bel niente). Altra cosa piuttosto infelice è l'uso di uno stack dell'input.device PPC di soli 2044 bytes.
Non è chiaro se si tratti di un errore o di una scelta; fattostà che è causa di gravi crash durante l'uso di gadget ReAction o altri gadget complessi usati da GUI esotiche. Dal momento che tutti i programmi di sistema a partire da AmigaOS 3.5 utilizzano ReAction come motore di gui, si tratta comprensibilmente di un difetto penalizzante, anche se non tutte le classi, al tocco, sembrano generare (sempre ?) questo tipo di blocchi.
Un'altra nota spiacevole riguarda HdToolBox: con tutte le macchine usate per la prova, sotto MorphOS mostra i gadget INSTALL DRIVE e PARTITION DRIVE irrimediabilmente disabilitati, e questo rende necessario ritornare sotto AmigaOS per eseguire operazioni di partizionamento e configurazione dei device scsi, sempre che non si scelga di usare il buon vecchio e sempre funzionante HDInstTools. Altro noioso difetto che vale la pena menzionare riguarda dei frequenti e imprevedibili blocchi che sembrano essere collegati all'uso del blitter su schede dotate di Permedia II. Tali blocchi si verificano quando vengono invocati i backfill hooks di sistema, quindi ogni volta che una finestra viene ridimensionata, spostata oppure chiusa o cambiata di profondità; la loro frequenza sembra aumentare all'aumentare del refresh del modo video scelto, sempre con preferenza per i modi a 32 bit. Come ultima nota negativa dobbiamo ribadire che spesso e volentieri i programmi scritti per WarpOS sono quasi del tutto inutilizzabili, salvo rare eccezioni. WarpMAME di Colin Ward 9 volte su 10 si inchioda, mentre la rispettiva versione di AmiDOG, sempre per WarpOS, sembra funzionare correttamente. Lo stesso purtroppo dicasi di AMidi, della versione PPC di AmigaWriter (non totalmente ma piuttosto instabile), dei moduli PPC di ArtEffect e della stragrande maggioranza dei giochi scritti per WarpOS. Ma anche se meno frequenti, non mancano casi di malfunzionamento di programmi o moduli PowerUP: APDF funziona egregiamente, ma quando si tratta di leggere dei file .pdf compressi (come LZW) ecco che si congela irrimediabilmente; inoltre il modulo per la decodifica dei file ShockWave di Voyager sembra anch'esso cadere in coma profondo se usato sotto MorphOS (almeno, sulle macchine usate per le nostre prove). Per correttezza va detto che alcuni di questi problemi (per la precisione, gli errori di rendering a 32 bit, l'incompatibilità con HDToolBox e lo stack dell'input.device ppc troppo piccolo) sono stati in seguito risolti nella versione 1.0 di MorphOS per Amiga PPC, ma si tratta ancora di una versione privata disponibile solo ai betatesters.


Per finire...
-------------
La serie di capitoli che abbiamo voluto dedicare a MorphOS termina con il presente numero. Se in modo provvisorio o definitivo, questo dipenderà principalmente da ciò che accadrà nei prossimi mesi. Tutti infatti ci auguriamo di poter vedere presto e in vesti ufficiali tanto la versione definitiva, completa di emulatore JIT e Ambient (il Workbench-replacement di MOS), quanto la piattaforma Pegasos vera e propria. Già da diversi mesi queste macchine complete di software sono nelle mani dei betatesters quindi possiamo affermare che in effetti diverse persone non solo le hanno "viste" ma le stanno accuratamente utilizzando e testando. Pochi giorni fa si è inoltre tenuta la presentazione ufficiale della piattaforma alla fiera Amiga+Retro (Aachen, Germany) di cui possiamo trovare esaurienti reportage, foto e resoconti su http://www.morphos-news.de. Attendiamo quindi pazienti, ancora una volta, e con la speranza che questi articoli siano riusciti a fare un pò di luce sulla situazione MorphOS, dove sembra regnare ancora il crepuscolo. Come ultima nota vorremmo segnalare la presenza di un ottimo manuale in vari formati, recentemente redatto dagli Autori di MorphOS, scaricabile al seguente indirizzo dalla directory http://zapek.meanmachine.ch/morphos. Tale manuale riunisce in modo ordinato tutte le principali tematiche riguardanti l'uso, installazione, il funzionamento e la programmazione di MorphOS: informazioni precedentemente disponibili solo in tanti files sparsi all'interno del sito, nell'archivio User e in quello Developer. E' recentemente stato reso disponibile anche un copioso testo contenente tutte le caratteristiche tecniche e implementazioni della versione finale di MorphOS, scaricabile sia in formato ascii che .pdf dall'indirizzo http://www.blackford.info/morphos/

Segnaliamo inoltre la recente apertura del sito ufficiale del progetto Pegasos,
precedentemente ospitato nelle pagine di Thendic France (ora Genesi): http://www.pegasosppc.com. Per finire, un sincero augurio di buon lavoro e con tutto il cuore alle persone impegnate dietro a questo progetto, che potrebbe sul serio essere una valida alternativa (anzi, attualmente l'unica) per garantire qualche futuro alla nostra macchina.


Elena Novaretti




visita il sito del nostro sponsor