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