Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
QNX - Wikipedia

QNX

Da Wikipedia, l'enciclopedia libera.

QNX (si pronuncia Q-N-X o Q-nix) è un sistema operativo real-time Unix-like POSIX-compliant commerciale, basato su microkernel e mirato principalmente al mercato dei sistemi embedded.

Indice

[modifica] Descrizione

QNX è progettato come sistema microkernel, la cui idea base è quella di costruire il sistema operativo come un insieme di piccole parti che offrono uno specifico servizio: queste parti sono denominate 'server' e prendono anche il posto dei 'device driver' dei sistemi operativi tradizionali.

Proprio in questo approccio sta la differenza tra un sistema microkernel ed il kernel dei sistemi operativi tradizionali: in questi il sistema operativo è composto sin dall' inizio di molti moduli raggruppati in un unico grosso software (kernel monolitico) che normalmente non possono essere individualmente separati dal resto.

Nel caso di QNX, il sistema microkernel permette all' utente di assemblare un proprio sistema utilizzando solo le parti realmente necessarie, tralasciando completamente quelle non desiderate e questo senza modificare o ricompilare il sistema operativo stesso.

Allo stesso tempo è invece possibile estendere il sistema con parti scritte dall'utente o da altri senza pericolo di causare malfunzionamenti nel resto del sistema operativo. Un sistema operativo real-time completo e provvisto di molte funzionalità, compreso stack di rete TCP/IP, file system, un interprete di comandi e altro può comodamente stare su un floppy disk.

Dalla versione denominata Neutrino QNX è stato portato, oltre che sulle CPU x86, su un vasto numero di differenti processori, purché dotati di Memory management unit (MMU), tra cui: PowerPC, ARM, StrongARM, MIPS e SH-4.

Originariamente QNX forniva una licenza d' uso utilizzabile per sviluppi non commerciali (QNX NC) che però è stata sospesa nel 2003 ed ora fornisce solamente la possibilità di scaricare il sistema completo con una licenza temporanea di 30 giorni. Poiché il sistema di sviluppo, rispetto a uno equivalente per un sistema comparabile tipo Windows CE o linux RTAI, è piuttosto costoso, questo tipo di limitazione di fatto impedisce lo studio e la diffusione di questo ottimo sistema, che potrebbe finire per chiudersi in una nicchia.

Il sistema di sviluppo si avvale della piattaforma Eclipse, in cui QNX ha integrato i propri tools di sviluppo ed il sistema operativo. Essendo Eclipse sviluppato in java, il sistema di sviluppo può girare virtualmente su qualsiasi sistema dotato di java e di una interfaccia grafica compatibile, tra cui Windows, sistemi Unix e Linux e QNX stesso.

[modifica] Storia

Gordon Bell e Dan Dodge, furono le persone che originarono QNX. Nel 1980 furono studenti all'Università di Waterloo e seguivano il corso di progetto di sistemi operativi, dove era prevista la scrittura di semplici kernel real-time. Entrambi convinti della possibilità di sfruttare commercialmente questi sistemi, fondarono nel 1982 la Quantum Software Systems a Kanata, Ontario, (Un' area high-tech area fuori Ottawa). Nello stesso anno fu rilasciata la prima versione per di QNX, che girava su architettura Intel 8088

QNX fu inizialmente scelto come sistema operativo per il computer Unisys ICON progettato dal comprensorio educativo dell' Ontario. QNX fu utilizzato soprattutto per progetti 'grossi', in quanto i suoi 44Kbyte di kernel erano troppi per i piccoli controllori dell' epoca. In quest'ambito QNX si guadagnò una reputazione di sistema robusto ed affidabile e pertanto venne utilizzato per applicazioni industriali. Alla fine degli anni '80 la società decise di riscrivere il kernel e utilizzare lo standard POSIX e il risultato fu QNX 4. Grazie all'interfaccia POSIX, il passaggio di software Unix e BSD su QNX divenne molto semplice.

In questo periodo Patrick Hayden e Robin Burgener svilupparono un nuovo sistema di finestre grafiche: windowing system Questo concetto fu implementato in una GUI brevettata chiamata Photon microGUI. In QNX è però anche disponibile una versione grafica di X Window System.

Verso la fine degli anni '90 la società riscrisse completamente QNX, progettato ex-novo come sistema operativo per il supporto nativo di sistemi a multiprocessori, SMP. Fu aggiunto il supporto completo delle API delle specifiche POSIX, compreso parti POSIX non ancora implementate da nessun altro sistema. Il risultato fu QNX Neutrino, rilasciato nel 2001. Contemporaneamente al rilascio del kernel Neutrino, la QNX system divenne membro del consorzio Eclipse e rilasciò una suite del workbench Eclipse con plug-in dedicati allo sviluppo di QNX neutrino denominata Momentics.

Nel 2004 la società fu venduta al gruppo Harman International Harman International Industries.

QNX è stato molto utilizzato in ambiente Automotive per sistemi telematici. Fino alla cessione al gruppo Harman QNX è stato utilizzato in più di 180 differenti modelli di automobile.

Il sistema Cisco IOS-XR (ultra high availability IOS), è basato su QNX, come anche il sistema IOS Software Modularity.

[modifica] Architettura

QNX è un sistema microkernel, il kernel stesso contiene solo queste parti:

Ogni altra cosa gira come quello che in altri sistemi di kernel monolitici si chiamerebbe processo utente. In questa modalità gira anche il processo di sistema denominato proc, abbinato al microkernel, e che ha il compito di gestire la memoria memory management e la creazione dei processi.

Il principio di base che rende possibile utilizzare i servizi del kernel e collegare tra loro i vari processi sono i meccanismi di IPC di QNX ed il boot loader che può caricare una immagine del sistema contenente non solo il kernel, ma ogni altra risorsa desiderata come programmi utente, librerie condivise o shared libraries ed altro.

interprocess communication Il meccanismo base di comunicazione tra i processi di QNX, su cui sono stati sviluppati tutti gli altri, è costituito dal passaggio di un messaggi da un processo ad un altro e dall' attesa della risposta. Questa funzione viene atomicamente eseguita dalla procedura 'MsgSend. Il messaggio è copiato, tramite il kernel, dallo spazio di memoria del processo mittente allo spazio di memoria del processo destinatario. La parte interessante è che se il processo destinatario è già in attesa del messaggio, contemporaneamente alla ricezione esso verrà attivato, senza passare dallo scheduler. In questo modo, sia il mittente che il destinatario non dovranno attendere cicli di scheduler per completare la loro operazione. Questo meccanismo integra alcune funzioni di scheduling del kernel nelle funzioni di IPC e rende QNX uno dei sistemi a micro kernel con il sistema IPC tra i più veloci. In molti sistemi tipo UNIX, Linux o Windows i meccanismi di IPC sono molto più pesanti e non efficienti, dovendo invece passare sempre attraverso il kernel e lo scheduler. Anche in molti micro-kernel la mancanza di efficienti meccanismi di IPC diminuisce di molto le loro prestazioni.

Nonostante questi meccanismi, un confronto diretto tra sistemi microkernel e sistemi a kernel monolitico indicano che i sistemi microkernel non hanno in generale le stesse prestazioni dei sistemi a kernel monolitico. Questo perché i servizi di un sistema micro kernel sono necessariamente implementati in spazi di memoria diversi e quindi richiedono servizi IPC di comunicazione, mentre i servizi in un kernel monolitico condividono lo stesso spazio di memoria e non richiedono di norma servizi IPC. Ovviamente la maggio efficienza di un kernel monolitico è pagata in termini di affidabilità in quanto un crash in un servizio nello spazio di kernel causerà probabilmente un crash dell'intero sistema. Un crash in un servizio di un micro kernel invece causerà di norma solo la perdita di quel servizio e non dell'intero sistema. QNX implementa alcuni accorgimenti per aumentare le prestazioni, limitando per esempio l'uso di interrupts ed utilizzando tecniche di polling per diminuire il numero di cambi di contesto (task switching). Inoltre è possibile utilizzare tecniche di caricamento di un driver usando DLL o plug-in in uno spazio di un singolo processo. Queste tecniche però riducono la sicurezza del sistema in quanto diminuiscono la protezione offerta dalla separazione degli spazio di memoria, che è la chiave dei sistemi microkernel. Se si desidera mantenere una struttura completamente microkernel, anche QNX sarà soggetto a diminuzioni di prestazioni, specialmente se utilizzato in sistemi con carichi di interrupt molto pesanti.

Grazie alla struttura microkernel QNX può diventare anche un sistema operativo distribuito distributed operating system. La tecnologia utilizzata da QNX è denominata Transparent Distributed Processing ed è stata sviluppata da Dan Dodge e Peter van der Veen, che ne detengono il brevetto: patent Questa tecnologia rende estremamente facile creare reti di sistemi QNX che possono costituire un supercomputer e gestire in parallelo più applicazioni su macchine diverse.


[modifica] Sistemi similari

Altri importati sistemi embedded paragonabili sono LynxOS, VxWorks, Linux, THEOS, ThreadX, Windows CE, RTEMS, OS-9, sistemi ITRON.

[modifica] Bibliografia

[modifica] Collegamenti esterni

BSD
FreeBSD - NetBSD - OpenBSD - DragonFly BSD - PC-BSD
GNU/Linux (Lista)
Debian - Fedora - Gentoo - Mandriva - Red Hat Linux - Slackware - SUSE - Ubuntu
Mac OS
System 5 - 6 - 7 - 8 - 9 - Mac OS X -.0 -.1 -.2 -.3 -.4 -.5 - Server
MS-DOS - Microsoft Windows
1.0 - 2 - 3.x - 95 - 98 - Me - NT - 3.5x - 4.0 - 2000 - XP - 2003 - Vista
Altri
AmigaOS - BeOS - Inferno - LynxOS - Haiku OS - OS/2 - QNX - Solaris - Unix - MVS - I5/OS - Plan 9 - ReactOS - VMS - Zeta - FreeDOS
Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com