Piccolo ma bello

di Salvo Miccichè


Epoc è il sistema operativo utilizzato sugli Psion e su molti altri dispositivi wireless ed è il centro del progetto Symbian. vediamone le caratteristiche principali e come è possibile contribuire al suo sviluppo

Il successo di un sistema informatico o di un computer è spesso determinato dal sistema operativo che usa, e altrettanto si può dire dell'insuccesso. Un sistema operativo inadatto rende una macchina inutilizzabile per gli scopi che si prefigge. E nel caso dei palmari questo principio mostra la sua verità in modo palese.
Così si vede come ottimi sistemi operativi, come Dos, Windows, Linux, Mac OS sono adatti alle macchine per cui sono stati progettati, ma non per i palmari, che hanno ben altre esigenze, soprattutto di praticità, di compressione dei file, di efficienza, ma anche di applicazioni proprietarie pensate per compiti specifici.
È per questo che Psion e Symbian hanno scelto come sistema operativo un sistema appositamente concepito per essere utilizzato con sistemi palmari e wireless. Si tratta di Epoc, che nell'attuale versione è definito Epoc 32.


Il cuore


Epoc si basa su un microkernel molto efficiente, residente in rom come le principali applicazioni dei palmari che lo ospitano, che rende possibile la creazione di applicazioni che usano poco spazio su disco per funzionare, condizione essenziale per un palmare. Al kernel sono associati vari moduli o oggetti cui è possibile accedere per svolgere determinati compiti (tasks), e il tutto è poi interfacciato con l'esterno con un'interfaccia ad albero che ricorda molto quella del Dos, da cui però si differenzia per varie ragioni e sopratutto per l'efficienza del sistema.
Symbian (il consorzio che promuove Epoc, e di cui fanno parte Psion, Ericsson, Nokia, Motorola, Matsushita, Sanyo) ha sviluppato varie release del sistema operativo ed ha reso disponibile alcuni strumenti utili agli sviluppatori per programmare applicazioni utili per i palmari "classici", come i modelli Psion, ma anche per altre macchine, come i telefoni cellulari, e la presenza dei vari produttori nel consorzio dimostra quanto sia sentita l'esigenza di un protocollo comune e di un sistema operativo ideale anche per cellulari gsm, umts, ecc...
L'attuale versione del sistema operativo Epoc è la "ER5", presente negli Psion S5mx, Revo e Serie7, che sostituisce la "ER3" dello Psion Series5, che in effetti è stata la prima vera evoluzione dell'ottimo sistema operativo Epoc che si trovava sui modelli S3a, S3c e Siena, che ora - per distinguerlo dal sistema attuale a 32 bit - viene detto Sibo (piattaforma a 16 bit).
Una curiosità: si passa da ER3 a Er5 perché la versione intermedia "ER4" è quella utilizzata nell'Oregon Osaris. In effetti ER4 ha molte funzionalità di ER5, ma il set di istruzioni non è completo.
Nel passaggio da ER3 ad ER5 sono stati resi più efficienti alcuni moduli, migliorata la gestione della "garbage collection" della memoria, risolti alcuni bug delle precedenti versioni (piccole cose riguardanti il file system, non gravissime, in effetti), introdotte novità e aggiunti moduli, ed è stata aumentata notevolmente la velocità del sistema, che ora può sfruttare processori ARM Risc da 36 Mhz. In particolare è stata potenziata la gestione di applicazioni internet, già presente come applicazioni aggiuntive nella versione precedente. Ora l'applicazione per la gestione email e fax risiede in rom e sono state rese disponibili librerie (moduli opx e libs) per una completa interfacciabilità delle applicazioni ad Internet (browser, email, news, ftp, ecc...).
Si è cercato di mantenere la compatibilità con il passato, anche se con la nuova versione è possibile usare applicazioni più efficienti che usano i nuovi moduli e non è possibile lavorare con le release precedenti.

Per chi sviluppa


Gli sviluppatori possono usare vari strumenti per programmare Epoc. Innanzi tutto OPL, un linguaggio evoluzione del Basic, creato apposta per Epoc e il cui interprete è incluso nei modelli Psion. Gli script OPL possono essere compilati anche dal palmare ed essere eseguiti sia come moduli ".opo" (una specie di minieseguibili), sia come ".app" (applicazioni vere e proprie). Moltissimi programmi sono stati creati con OPL, che è in verità la naturale evoluzione di "Opal", un linguaggio studiato per la programmazione delle precedenti versioni di Epoc (Sibo a 16 bit). Rispetto ad Opal OPL sfrutta la tecnologia a 32 bit e i moduli e il kernel di Epoc32 fornendo strumenti semplici e intuitivi per interfacciarsi al SO.
Symbian mette a disposizione degli sviluppatori - sia nel proprio sito: www.symbian.com, sia inviando gratuitamente un cd - non soltanto tutta la documentazione necessaria per programmare in OPL, ma anche un emulatore che gira su Windows e un SDK che consente di programmare in C interi moduli o applicazioni per Epoc. Si tratta nel complesso di oltre 27 mb per l'emulatore e circa 100 per l'sdk e la documentazione. Non male, considerando che tutto questo utile materiale viene offerto gratuitamente.
È ovvio supporre che le applicazioni create in C siano più efficienti e veloci di quelle create in OPL, ed in effetti è così. Ecco perché in questi tempi le applicazioni per Epoc di stile C stanno diventando la maggioranza. Sono tanti anche i tool di "traduzione" di progetti in C in applicazioni Epoc, ma ovviamente il punto di riferimento è l'SDK di Symbian.

Iniziare ad orientarsi


Se si esamina l'interfaccia di Epoc e il file system - magari sbirciando nella rom di un Psion S5mx - si nota soprattutto che tutte le applicazioni, le librerie del sistema, le icone sono contenuti nella cartella /system, e a loro volta divise in varie cartelle: /apps per gli eseguibili (.app), le icone e i descrittori (.aif), ecc; /controls per le applicazioni del pannello di controllo, /libs per le librerie, /data per i dati fondamentali, /recogs per le librerie che consentono il riconoscimento di file associati a determinate applicazioni, /opx per i moduli .opx. Questi ultimi in particolare sono degli oggetti che operano un po' come le librerie .dll di Windows o le librerie .so di Linux, possono cioè contenere istruzioni da eseguire per un determinato task e possono essere linkate alle applicazioni per fare in modo che le applicazioni occupino meno spazio e condividano risorse di sistema. Vi sono moduli opx distribuiti da Symbian e Psion, ma anche da terze parti. Tipici esempi di moduli opx sono librerie con funzioni grafiche, funzioni utili per applicazioni di gestione del tempo, funzioni matematiche, ecc...
Il file system di Epoc - ad albero, come si diceva - è grafico, ad icone e oggetti, come ci hanno abituato da tempo sistemi operativi evoluti, come Mac OS, Windows e Linux. Non c'è traccia del sostrato "a carattere", come avviene in Windows con il Dos o in Linux, e questo proprio perché il kernel e tutto il file system risiedono in rom insieme ad un'interfaccia appositamente studiata.
Ogni "disco" (C, ovvero la ram, e D, la Compact Flash) riproducono l'identica struttura della rom (detta "disco Z"), inoltre consentono di memorizzare in root (/) cartelle a piacimento che si affiancano a /system per la gestione del sistema. Questo vuol anche dire che le applicazioni possono risiedere in ogni disco e non solo in ROM, e pertanto è prevista una costante evoluzione del sistema e la eventuale correzione di bug, perché il kernel considera un particolare ordine nell'esecuzione delle applicazioni, per cui un'applicazione che per es. risiede in /system di "C" prevale su una di identico nome che risiede in rom. Per cui quando si vuole aggiornare un'applicazione si installa la versione più recente in /system del disco C o anche nella compact flash (disco D) e si bypassa l'applicazione in rom, ovviamente a spese della ram rimanente.
Caratteristica comune al kernel, ai moduli e alle applicazioni Epoc è la limitatissima occupazione di spazio su disco e in memoria: un applicazione complessa come Epoc Word può girare in meno di 300 kb di spazio, nulla se si confronta con i Mb occupati da programmi come Microsoft Word e si considera che Epoc Word svolge circa il 60% dei compiti che ogni buon word processor deve svolgere (formattazione, impaginazione, ricerca e sostituzione, indicizzazione, ecc...). Sistemi come Windows, Mac OS, ma anche Linux occupano per varie ragioni molto spazio, ed è per questo che sono poco adatti a palmari e macchine "wireless". Si dirà che nei palmari la grafica è primitiva, ma basta prenderne uno in mano per capire quanto quest'affermazione sia azzardata: la grafica in un palmare è essenziale, non primitiva, a volte anche bella, di sicuro funzionale a quello che deve mostrare, senza fronzoli e meno sprecona di quella di altri SO, che avendo enormi dischi fissi da riempire aggiungono alle utili funzioni spesso anche ammennicoli non necessari. La grafica in Epoc è accettabile, intuitiva, e le funzioni grafiche del sistema operativo, dell'interfaccia e dei moduli occupa il minimo spazio indispensabile per produrre il massimo risultato. Un palmare, in fondo, non serve per vedere i film ma per la produttività personale. E comunque, detto questo, Epoc si presenta ad esempio con un navigatore web di tutto rispetto.
Le applicazioni, come il kernel del sistema posso essere lasciate girare in ram e questo consente all'accensione del computer di trovare il palmare pronto per l'uso ed anche con i documenti su cui si sta lavorando aperti. Inoltre, essendo Epoc 32 multitasking, si posso far girare contemporaneamente molte applicazioni (i limiti li determina la quantità di RAM disponibile) e passare dall'una all'altra con una comoda funzione del sistema operativo (un po' come si fa su Windows con CTRL+TAB), con la possibilità di operare copia-incolla di dati da un'applicazione all'altra. Le applicazioni tipiche del palmare vengono poi associate a dei "tasti", o meglio delle icone attivabili con un tocco della penna e serigrafate per esempio ai lati dello schermo, per essere richiamate al volo. Questo concetto è molto utile ad esempio anche in cellulari che utilizzano Epoc come sistema operativo, consentendo all'utente di imparare ad usare il software residente in modo intuitivo e veloce. Un completo set di menu di sistema consente di accedere a tutte le funzioni principali dell'interfaccia.
Che Epoc 32 sia un sistema in rapido sviluppo lo dimostra l'ottimo lavoro di Symbian e soci che stanno lavorando su alcuni progetti, il principale dei quali, denominato "Quartz" sarà certamente una release particolarmente studiata per macchine "wireless" umts e per "Bluethoot", il successore del sistema IrDA (trasmissione infrarossa). Sarà un Epoc a colori, finalmente, modulare, adatto sia a palmari, sia a cellulari e macchine di altro tipo. Un sistema che assomma in sé la semplicità di un'interfaccia ad icone e la potenza di un file system ad albero. Un sistema adattabile non solo alla macchina, ma anche all'utente. Pare che nei primi mesi di quest'anno (2001) Symbian abbia intenzione di rendere noti tutti i particolari e rilasciarne la release.