Un primo sguardo al QNX® di Alain Martini
La Storia
La QNX Software Systems Limited (QSSL) viene fondata nel 1980 da Gordon Bell e
Dan Dodge per sviluppare e lanciare sul mercato un innovativo sistema operativo
in "Real Time": QNX.
Il primo prototipo funzionante di QNX gira su due macchine
collegate insieme, basate rispettivamente su di un 8088 ed un 6809.
In origine,
il sistema operativo (SO) viene chiamato "Qunix" che significa "Quick Unix";
tale nome viene poi cambiato in "QNX" a seguito di una lettera dei legali della
AT&T che non gradisce la cosa. Gestita privatamente e autofinanziata, QSSL
aumenta il fatturato di anno in anno.
Nell'arco degli ultimi dieci anni
quadruplica la superficie della sede per far fronte all'incremento del
personale, che ora conta 120 impiegati dei quali il 52% sono tecnici.
Ora QSSL
guarda all'espansione mondiale: di recente sono state aperte nuove sedi negli
Stati Uniti ed in Europa, inoltre sono previsti piani di sviluppo per il mercato
asiatico.
Attualmente QNX distribuisce i propri prodotti in 60 paesi. Nella sede
della società, situata a Kanata (Canada), vi sono dipartimenti dedicati alla
ricerca e sviluppo, alle vendite e al marketing.
QSSL sta conquistando il
mercato professionale, soprattutto nei campi ove è richiesta elevata
affidabilità e qualità dei sistemi:
medicina, monitoraggio di reattori nucleari,
controllo del traffico, automazione industriale, aeronautica e persino nei
controlli di produzione e qualità della birra.
Politica di sviluppo di QSSL
QNX nasce per essere un S.O. che riduce significativamente i tempi necessari per
portare un prodotto sul mercato. In questo momento appare quindi naturale la
ricerca da parte dei commerciali di QSSL di partner tecnologici di tutti i tipi,
sia software che hardware, questo per porre QNX alla base di relazioni
strategiche tra produttori hardware e software. L'alleanza con Amiga Inc. nasce
dunque sotto questa luce: il marchio Amiga porta con sé una grossa utenza di
sviluppatori e "smanettoni" nonché l'archivio Aminet che gli è
invidiato persino da piattaforme come BEOS e LINUX.
Perché scegliere QNX?
- Comprensibile
L'intera architettura di sistema di QNX è racchiusa in un libro di meno di 200
pagine dove è descritto l'intero funzionamento del sistema operativo.
- Veloce.
La QSSL basa gran parte della pubblicità di QNX sulla velocità di risposta del
sistema operativo, cosa per il resto veritiera e verificabile già su di un
semplice 386 con l'apposito dischetto dimostrativo .
- Piccolo
L'impronta del sistema è veramente piccola, anche con tutti i file necessari al
funzionamento del S.O. QNX rimane perfetto per la migrazione verso altro hardware.
La piccola dimensione del kernel rende QNX di facile installazione anche su piccoli sistemi integrati.
- Conveniente
Non è necessario sviluppare in modo incrociato progetti su apparecchiature
diverse. Nella maggior parte dei casi, se la piattaforma su cui si intende
lavorare supporta l'uso di un hard disk, può essere tranquillamente usata come
base di sviluppo per il software.
- Photon MicroGUI
Photon è il sistema per le interfacce utente che "ricopre" QNX. Per molti versi
è simile a X-Windows/Motif. Qualunque programmatore che abbia programmato
X-Window riconoscerà una certa familiarità con l'API di Photon. Contrariamente a
X-Window, Photon, in pieno accordo con la filosofia di QNX, è facile da usare.
- Configurabilità e modularità
Essendo di facile comprensione, la configurazione finale di un sistema è molto
più agevole da controllare in quanto i vari moduli del sistema sono identificabili
in maniera intuitiva. Inoltre la complessità del sistema, essendo QNX modulare, viene
scelta dallo sviluppatore o addirittura dall'utente stesso, che è posto in
condizione di eliminare i moduli di cui non ha bisogno.
- QUICS
QNX Update Information Conferencing System (QUICS) è una BBS con 8 modem, 25
linee e una connessione a internet a 384K. Costruita su un Pentium 60MHz con
QNX4.2, QUICS è in grado di gestire oltre 20000 Login al mese e fornisce agli
utenti file di pubblico dominio, porting da altre piattaforme e sorgenti
d'esempio provenienti dai laboratori di QSSL. E' possibile accedere a conferenze
pubbliche che portano preziose informazioni sia all'utente che allo
sviluppatore. Per gli sviluppatori registrati QUICS fornisce supporto tecnico
on-line. QUICS è raggiungibile via
TELNET://QUICS.QNX.COM oppure via
FTP://QUICS.QNX.COM
QNX, sistema operativo per lo sviluppatore
Lo sviluppatore trova in QNX una maggiore funzionalità
e un minor utilizzo delle risorse di sistema. Anche se oggi la memoria costa
relativamente poco, ciò non implica che si debba utilizzarne troppa e malamente:
un cattivo uso della memoria rappresenta comunque una perdita significativa delle prestazioni di
un sistema. Come ampiamente dimostrato dal demo
il sistema è estremamente compatto, nato per essere incorporato nelle
flash-rom da 1Mb o 4Mb delle apparecchiature consumer di prossima
generazione.
L'elevata modularità di QNX permette al programmatore di usare
sempre lo stesso S.O. per una ampia gamma di prodotti consumer.
Grazie al
sistema integrato di finestre Photon MicroGUI, creare applicazioni
diventa estremamente rapido.
In questo modo si ha la
possibilità di applicare il software, che viene così elaborato una volta sola,
ad una ampia palette di prodotti, dal telefono cellulare alla workstation, il
tutto senza dover cambiare sistema di sviluppo.
Ciò porta ad una sensibile riduzione dei costi di produzione.
Prestazioni realtime
QSSL basa gran parte del marketing sulla caratteristica real time di QNX.
Analizziamo dunque le prestazioni del sistema:
I seguenti parametri temporali ci danno immediatamente l'idea della rapidità
di QNX.
- Latenza di interrupt (Til): tempo che intercorre tra la ricezione di un interrupt
hardware e l'esecuzione della prima linea di codice del gestore di interrupt
software.
Latenza di interrupt |
Processore |
3,3us |
166MHz Pentium |
4,4us |
100MHz Pentium |
5,6us |
100MHZ 486DX4 |
22,5us |
33MHz 386EX |
- Tempo di processazione dell'interrupt (Tint): è il tempo necessario alla risoluzione
dell'interrupt.
- Latenza di scheduling (Tsl): tempo che intercorre tra l'ultima linea di codice
del gestore di interrupt e l'esecuzione del processo driver.
Latenza di scheduling |
Processore |
4,7us |
166MHz Pentium |
6,7us |
100MHz Pentium |
11,1us |
100MHZ 486DX4 |
74,2us |
33MHz 386EX |
Come si può notare QNX risulta molto reattivo anche su macchine povere in termini di potenza di
calcolo.
QNX è connettività
La gestione di una rete locale è affidata a un
meccanismo per la condivisione dei file e delle periferiche.
QNX riunisce l'intera rete in un singolo e omogeneo set
di risorse. Ogni processo di qualunque macchina può essere direttamente usato o usare
le risorse di ciascuna altra macchina in rete. Dal punto di vista
dell'applicazione, non vi è infatti differenza tra una risorsa locale e una remota.
Questo implica che non occorre introdurre all'interno delle applicazioni
codice speciale per far uso di risorse remote. L'utente può accedere ai file
ovunque essi siano sulla rete, utilizzare ogni dispositivo periferico
e lanciare applicazioni su ogni macchina della rete (a patto ovviamente di
averne l'autorità).
Grazie a questa caratteristica ed al web server
integrato Voyager Web Server le pagine dinamiche risultano di
facile implementazione.
Il passaggio di messaggi è trasparente
alla rete e permette controllare a distanza, tramite una porta messaggi, un
programma in esecuzione su di una o più macchine, magari
basate su processori diversi. Quest'ultima caratteristica rende estremamente
flessibile lo sviluppo di applicazioni: e' possibile controllare ogni fase di
debug di una macchina collegata in rete tramite Deja View.
Deja View permette di:
- ottenere tutte le informazioni di debug in ogni istante
- ripristinare situazioni antecedenti a un crash.
- registrare tutti i messaggi
- controllare l'andamento temporale dei processi
- ottenere un profiling in tempo reale.
... continua
QNX, Neutrino, Photon MicroGUI, DejaView, sono marchi registrati.
IAT, PhAB, Phindows, Phinx, Slinger e Voyager sono marchi registrati di
QNX softwareSystems Ltd.
Tutti gli altri marchi registrati sono dei rispettivi proprietari.
|
|
AMIGA |
Alain Martini
allievo presso il Politecnico di Torino dove
frequenta il corso di Ingegneria Elettronica.
Per un anno ha lavorato presso la NonSoLoSoft dove ha dato
prova di competenza ed affidabilità.
Appassionato di elettronica, ottimo programmatore,
si muove con disinvoltura tra Amiga, BSD e Linux
anche su Intel e compatibili.
Ha già pubblicato su Internet alcuni suoi progetti software ed hardware.
| |
Puoi contattare l'autore scrivendo a:
amartini@diff.org
| |
|
|