Sinclair QL, emulazione, OS/2: the next generation. di Mentore Siesto Come tutti sappiamo, il mondo del QL si reincarna gior- nalmente nei personal computer tramite i programmi di emu- lazione, che in modo piu' o meno completo cercano di rias- semblare le caratteristiche del QL originale oppure svilup- pano capacita' affatto nuove e interessanti, sfruttando le potenzialita' dello hardware su cui girano. Lungi dal fare una noiosa e lunga dissertazione sull'emulazione dei sistemi tramite personal, in questo articolo vorrei tracciare la si- tuazione dell'emulazione QL sotto una delle piattaforme piu' interessanti del mercato, ancorche' in posizione di nicchia: IBM OS/2 e il suo successore, Serenity Systems eComStation. OS/2, un sistema multi-quasitutto. Nel senso che l'unica cosa che gli manca e' la multiuten- za! Per il resto, giudicate voi... OS/2 nasce come progetto congiunto IBM / Microsoft ai tempi dell'MS-DOS 3.20, quando per la maggior parte le macchine di allora montavano l'accoppiata 8086 / 80286 e i dischi rigidi raramente superavano i 30 MB. Nelle intenzioni delle due aziende, OS/2 doveva rappresentare la logica evoluzione dal- lo MS-DOS, che gia' allora tirava notevolmente il fiato di fronte all'arrembaggio dei primi 80386, con capacita' sempre maggiori e peggio sfruttate. Dopo le primissime versioni, avversate da parecchia stampa, e la scissione da Microsoft, responsabile di aver parecchio rallentato lo sviluppo del progetto per spingere invece su Windows, in IBM si decise di dare una svolta epocale al prodotto, trasformandolo in un sistema operativo integralmente a 32 bit, con un'interfaccia utente che fosse davvero innovativa. In breve, cosa fa OS/2 che gli altri non facciano? Diverse cosette: tanto per cominciare e' multitasking in un senso molto stretto. Il suo multitasking e' dalla nascita di tipo preemptive (comandato quindi da uno scheduler, toh, proprio come il QL...), ma soprattutto e' multithreaded. Il termine thread, rozzamente traducibile come "processo", designa una parte del codice di un programma, che puo' essere (ed e') eseguita separatamente dal resto del programma stesso. Se la cosa appare poco significativa ai piu', un programmatore ap- pena esperto capisce cosa significhi avere piu' thread in un programma: immaginate per esempio di dover stampare un docu- mento particolarmente complesso, e nel frattempo di volerne modificare un altro. In un programma monothread, anche dis- ponendo di un opportuno spooler di stampa, sarebbe comunque necessario attendere che tutto il processo di stampa termi- nasse per poi provvedere a caricare il nuovo documento e la- vorarci: ma se la stampa viene gestita da un thread, magari posto appositamente a priorita' bassa rispetto agli altri, il problema del tempo nemmeno si presenterebbe. In OS/2 esi- stono poi quattro classi di priorita', ciascuna con 32 sot- tolivelli di priorita', e il sistema stesso puo' decidere di aumentare temporaneamente la priorita' di alcuni thread, in modo molto elegante ed efficiente (per i linuxisti; e' una soluzione piu' efficiente di quella attualmente implementata in Linux). Ma, a parte molte altre cose interessanti e tut- tavia da "addetti ai lavori", OS/2 integra l'interfaccia u- tente piu' potente e intuitiva che io abbia mai visto in ol- tre 18 anni di informatica: WorkPlace Shell. Oggettizziamoci! Cos'e' WorkPlace Shell (WPS)? Si tratta di un'interfaccia utente con un concetto molto diverso da tutte le altre, im- plementato solo nel NeXT; e' completamente a oggetti. In questo modo, ogni oggetto presente sulla scrivania (sullo schermo) non e' una mera rappresentazione di qualcosa di fi- sicamente esistente nella macchina, ma ne assume le carat- teristiche intrinseche: un'unita' disco sara' trattata in modo completamente diverso da un documento di testo, proprio perche' gia' a livello di definizione appartiene a una dif- ferente *classe*. Le effettive potenzialita' di WPS si notano fin dall'inizio, se si preme il tasto destro (gia', il destro...) del mouse su una qualsiasi zona dello schermo, e si osserva il compor- tamento del menu che appare in corrispondenza del puntatore del mouse (chiamato - non a caso - menu contestuale o Window Context Menu): ogni menu e' diverso a seconda che si sia sullo sfondo della Scrivania oppure su un oggetto, e varia da oggetto a oggetto. Una buona applicazione WPS compliant deve tenere conto di questo e fare un uso poderoso sia del multithreading, sia delle caratteristiche specifiche di WPS (avete mai visto un menu apparire alla pressione del tasto destro del mouse nella finestra di un programma? No? Beh, non avete visto PMView per OS/2...), ma la bellezza di ques- to sistema non si ferma qui: mi fermo io, pero', perche' qui si parla di QL... Spirito di emulazione. "Ma non ci sono applicazioni per OS/2"! Sbagliato! Di ap- plicazioni ce ne sono quante se ne vogliono, e molte tuttora sono mantenute e aggiornate. In particolare, il suo succes- sore eComStation, prodotto dalla Serenity Systems, ha desta- to molto interesse nei produttori di software, oltre che ov- viamente negli aficionados di OS/2. E parlando di emulatori? Anche qui c'e' molto materiale. In particolare, vediamo il mondo QL. Vero e' che non c'e' - ancora - nulla di funzionante in modo nativo per OS/2-eCS, ossia nulla che sfrutti il sistema come sarebbe giusto, ma anche questo non e' del tutto vero al mo- mento... Ma andiamo con ordine. Prima di tutto e' necessario sapere che OS/2 gestisce gia' nativamente un nucleo compatibile con MS-DOS 5 e Windows 3.1 con tanto di estensioni Win32s, funzionante oltretutto me- glio degli originali... Questo significa che praticamente tutti i programmi DOS funzionano correttamente sotto OS/2, e anche questo spiega perche' molti enti e aziende non abbiano la minima intenzione di migrare verso altri "sistemi" (ehrm) piu' pubblicizzati ma che ormai non supportano piu' il vec- chio DOS, per non parlare di stabilita' ed efficienza. Ma non ci si ferma qui: Netlabs (www.netlabs.org), un progetto di software free per OS/2 ed eCS, ospita attualmente tra gli altri ODIN, progetto opensource con il quale si tenta di da- re a OS/2 completa compatibilita' (runtime) con le API Win32 cosi' da poter convertire al volo ed eseguire tranquillamen- te (piu' o meno!) le applicazioni Win32. E funziona, orpo se funziona! Ecco alcuni risultati, contornati dalle immagini allegate in questo numero di QL Magazine. Ho provato QLAY 0.90 di Jan Venema, riscontrando un limitato funzionamento (limite dovuto molto probabilmente al fatto che non ho mai studiato il programma), mentre risultati meno gradevoli ci sono stati con un emulatore commerciale (ma si tratta di un annetto or sono, ODIN e' in costante sviluppo e potrebbe essere cambiato qualcosa): oltretutto, OS/2 dis- pone gia' nativamente di un certo supporto Win32, per cui sarebbe anche possibile ricompilare certe applicazioni, per farle funzionare direttamente senza conversione al volo da parte di ODIN. Molto, molto, MOLTO bene invece QemuLator di Daniele Terdina: il programma e' partito immediatamente, senza alcun problema e velocissimo, nonostante sia stato e- seguito sotto ODIN (che converte le API Win32 a tempo di e- secuzione, sia chiaro!) su un vecchio sistema K6-II 3D. Sempre per quanto riguarda i programmi DOS e Win32, in for- ma nativa e' reperibile un programma di configurazione nati- vo sotto OS/2 per QLAY, chiamato QLAYConfig: ovviamente, e' completamente gratuito e consente la configurazione completa del file qlay.rc. E per quanto riguarda quell'"ancora" che ho scritto sopra? Beh, dovete sapere anche che OS/2 dispone, sempre nel free- ware, di una certa interfaccia grafica disponibile per un certo sistema operativo gratuito. Proprio cosi', XFree86 e- siste e funziona correttamente, e non solo, funziona anche molto bene e coesiste con WPS e Presentation Manager, il vero e proprio gestore di finestre di OS/2 - eCS: ma se e- siste XFree86, esiste anche UQLX, si'? Si'! Infatti, io stesso mi sto occupando della ricompilazione di UQLX per OS/2 insieme all'autore del programma, che ave- va solo bisogno di un betatester per poter provare i risul- tati della compilazione. Gli sviluppi iniziali promettono benissimo, per cui aspettiamoci entro breve tempo un emula- tore degno di tale nome per un sistema operativo degno di tale nome... Un'altra possibilita', realizzabile grazie a GCC per OS/2 e' la ricompilazione di QLAY nella versione per Linux: sto considerando anche quest'opzione , nonostante per ora mi sia impossibile studiarla a fondo, a causa dei miei numerosi, e pressanti, impegni. Il futuro. Il futuro, per quanto mi riguarda, si chiama eComStation: tutto quello che esiste in OS/2 e molte altre cose, nonche' molte applicazioni nuove e potenti... E ovviamente molto QL! Mentore Siesto Team OS/2 Italia