Computer

Quick-Index

Was ist QNX? - Wozu QNX? - Echtzeit - Architektur - Einsatz - Installation - Aussichten - Literatur

QNX

Was ist QNX?

QNX (sprich Kjunix) ist ein echtzeitfähiges UNIX der kanadischen Firma QNX Software Systems Ltd. Da UNIX ursprünglich für eine spezifische Hardware konzipiert wurde, der x86-Prozessor aber dank seiner Preis-Leistung die Mainstream-Architektur in der Geschichte wurde, gibt es auch x86-kompatible Versionen. Von UNIX entspricht dies z.B. Linux, der QNX-Ableger für "unseren" Alltags-Desktop nennt sich QNX-Realtime Plattform.

Wozu QNX?

Manchmal ist bei einem Betriebssystem ein definiertes Management von Ressourcen und Scheduling notwendig. Zum Beispiel bei Steuerungscomputern in der Medizin und Industrie. In solchen Fällen muss ein Echtzeitbetriebssystem -> Realtime-Operating System (RT-OS) eingesetzt werden. Das Mainstream-OS (Operating System) Windows ist kein RT-OS, für viele aber überraschend ist auch Linux kein RT-OS (es kann zwar modifiziert werden, ist allerdings vom Konzept her nicht für solche Zwecke ausgelegt).

Was bedeutet Echtzeit?

Auf einem Desktop-PC, auf dem Anwendungen wie WWW, Usenet, Office-Produkte & CO. laufen, ist Echtzeit-Betrieb nicht zwingend notwendig. Es wird zwar im live im Internet operiert, allerdings spielen zeitkritische Anwendungen keine primäre Rolle, bzw. im privaten/nichtkommerziellen Bereich sind sie in der Regel auch nicht notwendig.

Echtzeit (nicht zu verwechseln mit live!) bedeutet, dass innerhalb einer gewissen Zeitspanne mit Sicherheit darauf reagiert werden kann. Das Betriebssystem bildet dabei nur die "Unterlage" für die Applikationen. Dabei ist es notwendig, dass das Betriebssystem schnell auf Ereignisse reagieren und weitere Aktionen veranlassen kann, damit Applikation dann mehr Zeit für weitergehende Aktionen zur Verfügung hat.

Am Desktop spielt es zum Beispiel beim Surfen keine Rolle, ob die Anfrage an den Webserver 0.1 Sekunden oder vielleicht 3 Sekunden braucht. In solchen Fällen ist eine Garantie dank der Komplexität der Infrastruktur Web auch gar nicht möglich (zumindest für Otto-Normalverbraucher). Wenn allerdings in einer Systemsteuerungsanlage ein für das System kritischer oder relevanter Zustand eintritt, muss innerhalb einer gewissen Zeitspanne - je nach Komplexität und Wichtigkeit in einer Zeitspanne von Mikro- bis Millisekunden- darauf reagiert werden. Diesen Echtzeitbetrieb ermöglicht ein sogenanntes RT-OS.

QNX unterstützt an dieser Stelle Multitasking (Fähigkeit, mehrere Programme gleichzeitig auszuführen), prioritätsgesteuertes, verdrängendes Scheduling (Ablaufplanung von Threads/Prozessen) und schnelle Kontextumschaltung (Hin- und Herschalten zwischen Prozessen).

QNX ist dabei sehr fortschrittlich, speziell für den Entwickler, da das Betriebssystem an die Bedürfnisse skalierbar ist. Man kann den Kernel mit nur ein paar Modulen laden, um auf leistungsschwacher Hardware schnell operieren zu können, auf stärkerer Hardware wiederum kann man ein Netzwerksystem implementieren, mit dem man dann unzählige Benutzer steuern und bedienen kann.

Die Architektur von QNX

Warum ist QNX skalierbar? Dies beruht auf der Mikrokernel-Architektur, bei der der Mikrokernel an die Umgebung angepasst ist. Der Kernel beschränkt sich dabei auf die Verwaltung der zentralen Systemressourcen. Typischerweise ist das Allokation und Verwaltung des Hauptspeichers, Erzeugen und Scheduling von Prozessen und Interprozesskommunikation. Hier eine Grafik zur Architektur von QNX:

QNX
        Systemarchitektur - Bild

Im Gegensatz dazu steht der monolithische Kernel wie z.B. bei Linux. Das Betriebssystem ist dabei ein ausführbares Hauptprogramm. Dieses Programm kann sich in einem von zwei Modi befinden, dem Benutzermodus oder dem Kernmodus. Im zweiten Modus befindet sich das Betriebssystem nur temporär, zur Erledigung gewisser Systemaufrufe. Diese Systemaufrufe definieren dabei die Schnittstelle, über die Benutzerprogramme Dienste des Betriebssystems anfordern können. Letztere werden durch eine Vielzahl von Hilfsprozeduren implementiert. Ein monolithisches System kennt somit nur interne Subprozesse. (Anmerkung: Andrew Tanenbaum (Entwickler von MINIX) und Linus Torvalds (Entwickler von Linux) haben sich bezügl. den Architekturen Mikrokernel vs. Monolithischer Kernel in einer legendären Newsgroup-Diskussion verewigt.)

Als Vergleich dazu vielleicht die komplexe Systemarchitektur von Windows NT. Windows NT ist modular aufgebaut, jede Systemfunktion und jedes Subsystem wird von einem Modul oder einer kleinen Gruppe von Modulen bedient. Eine Grafik zum Vergleich mit QNX:

Windows
        Systemarchitektur - Bild

Copyright/Quelle: www.tecchannel.de

Geschichte von QNX

DatumVersion
1981QUNIX
1983QNX beta
1984QNX 1.0
1987QNX 2.0
1989QNX 2.21
1990QNX 4.0
1994QNX 4.1
1995QNX 4.2
1996QNX 4.22
1996QNX 4.24
1996QNX Neutrino 1.0 (RTP)
1997QNX 4.25
1998QNX Neutrino 2.0 (RTP)
1999QNX Neutrino 2.10 (RTP)
2000QNX RTP 6.0, erstmals für Privatkunden kostenlos
2001QNX RTP Update, SCSI und Multimedia
2003QNX RTP 6.2.1

Quelle/Copyright: http://www.operating-system.org/betriebssystem/_german/bs-qnx.htm

Wie schaut QNX im Einsatz aus?

QNX-Desktop - Bild

Das ist der Desktop von QNX

QNX-Voyager - Bild

Der Browser namens Voyager von QNX

QNX-PED - Bild

Der Editor namens PED von QNX

QNX
        Filemanager - Bild

Der Filemanager namens PFM von QNX

Weitere Screenshots gibt es auf http://dufo.tugraz.at/~prokop/qnx/ (von QNX Neutrino RTOS v 6.2.1 ­ Non-Commercial-Edition).

Die Installation von QNX

Wer sich mit UNIX oder Linux auskennt, wird keine gröberen Probleme mit QNX haben. Allerdings bestehen auch Unterschiede, wie z.B. beim Bootvorgang oder im /dev- und /proc-Verzeichnisbaum. Der Grund ist, dass sich die Macher von QNX an den POSIX-Standard gehalten haben.

Vorbereitungen

QNX kann entweder in einer eigenen Partition oder unter Windows in Dateien verpackt installiert werden. Da QNX für den nichtkommerziellen, also privaten Gebrauch kostenlos ist, kann man es auch downloaden, und zwar z.B. unter get.qnx.com. Am Besten zur Sicherheit auch noch die Hardware-Support-Seite von QNX durchchecken.

Installation

Die eigentliche Installation ist sehr einfach gehalten. Es gibt mehrere Versionen, die zum Download angeboten werden:

Die erste Version ist qnxrtp.exe (29 MB), die direkt unter Windows ausgeführt werden kann (Vorsicht, funktioniert nicht auf NTFS-Partitionen!). Diese Version beinhaltet nur die Standardversion von QNX ohne Zusatzsoftware, die allerdings dann später noch direkt übers Web unter QNX zugeladen werden kann.

cksum
2396638483 29843541 qnxrtp.exe
md5sum
a0558c3ab36136e4295651f1516c184a qnxrtp.exe

Die zweite Version ist ein ISO-Image (qnxrtp.iso bzw. http://www.qnx.com/nc/download.qnx). Dieses ISO-File muss dann auf eine CD gebrannt werden und kann entweder wie die 1. Version von Windows aus, oder aber zusätzlich noch in einer eigenen Partition installiert werden. Diese Version ist vom Umfang her die umfangreichste und läuft alternativ zur Installation auf Festplatte auch direkt von CD.

cksum
2313332395 463765504 qnxrtp_rel.iso
md5sum
8d2db8bef362f61cdc0a19d9e8963024 qnxrtp_rel.iso

Die dritte Version qnxrYtp_rel_small.tgz (29 MB) ist ein ISO-File mit geringerem Softwareumfang. Auch diese Version kann entsprechend der 2. Version installiert werden.

cksum
3291458281 29924619 qnxrtp_rel_small.tgz
md5sum
3863ad9406279115ee87ceaca53375dd qnxrtp_rel_small.tgz

Zur Installation selbst ist nicht viel zu sagen, da die Installationsroutine für den User sehr einfach gehalten ist.

Information zur Installation von Windows aus

(Anmerkung: diese Anleitung ist mittlerweile schon mehrere Jahre alt. Vielleicht hilft sie aber noch jemandem - deshalb habe ich sie noch nicht entfernt.)

Gebootet wird QNX dann durch das Windows-Startmenü in der config.sys. Man kann nach der Installation also beim Hochfahren des Rechners sowohl das alte als auch das neue Betriebssystem auswählen (insofern bereits keine andere Bootsituation als der Windows-Standard vorhanden ist).

So kann die config.sys zum Beispiel aussehen:

[menu]
menuitem=WIN, Windows
menudefault=WIN,30
menuitem=QNXDMA, QNX Realtime Platform
menuitem=QNX, QNX Realtime Platform (DMA Disabled)
menucolor=7,0
[QNXDMA]
DEVICE=E:\PROGRA~1\QNX\boot\bin\loadqnx.sys
E:\PROGRA~1\QNX\boot\fs\qnxbas~1.ifs
[QNX]
DEVICE=E:\PROGRA~1\QNX\boot\bin\loadqnx.sys
E:\PROGRA~1\QNX\boot\fs\qnxbase.ifs
[WIN]
[COMMON]

Bei der zweiten Version kann man QNX, wie schon erwähnt, auch in eine eigene Partition und somit unabhängig von anderen Betriebssystem installieren. Um diese Variante erfolgreich durchzuspielen, muss man das ISO-File auf CD brennen und dann von dieser booten (wer nicht von CD booten kann, sollte eine passende Bootdiskette bei der Hand haben). Der weitere Installationsverlauf ist ähnlich wie bei der ersten Variante, allerdings muss ein unerfahrener User noch beim Partitionieren aufpassen, da bei falscher Konfiguration unter Umständen ein Datenverlust auftreten kann! Bezüglich der Partitionsgröße ist hier noch zu erwähnen, dass ungefähr 600 MB empfohlen werden, allerdings kann die Minimalversion (siehe 1.Variante) auch mit weniger MB betrieben werden, ich habe es auch schon mit 240 MB probiert, dann ist der Auslagerungsbereich für den temporären Speicher nicht so groß, aber zum normalen Arbeiten reicht es. An dieser Stelle sei auch erwähnt, dass es von QNX eine 1.44 MB-Demo gibt, die Internet- und grafikfähig ist.

Nach der Partitionierung bzw. der Angabe des Speicherortes wird die grafische Oberfläche namens Photon eingerichtet, das Root-Passwort abgefragt, sowie ein neuer User angelegt. Normalerweise sollte QNX dann bei nicht allzu exotischer Hardware diese auch als solche erkennen (Netzwerkkarte, Grafikkarte,...) und bereits existierende Partitionen sollten auch ohne Probleme in das Dateisystem gemountet (eingebunden) werden.

Deinstallation

Auch die Deinstallation ist sehr einfach. Bei der Windows-Version gibt es einen Eintrag "Uninstall QNX" im Startmenü, mit dem man QNX deinstallieren kann, wie man es von Windows-Programmen gewohnt ist. Die andere Variante ist etwas aufwendiger. Hier muss die Partition mit QNX formatiert oder wenn gewollt, ganz gelöscht werden. Allerdings ist bei dieser Variante anzumerken, dass das Windows-Partitionierungstool FDISK nicht in der Lage ist, das QNX-Format zu erkennen, darum sollte man das QNX-Tool dafür verwenden. Diese erreicht man, indem man noch einmal von CD-ROM bootet, und dann die Option "löschen" aktiviert. Wer jetzt an dieser Stelle den QNX-MBR nicht auf Diskette sondern auf der Festplatte, sowie nur Windows als Betriebssystem hat, der sollte den alten MBR wiederherstellen, z.B. mit dem Befehl:

fdisk /mbr

Das Programm FDISK ist z.B. auf Windows-Startdisketten zu finden. Durch den Parameter "mbr" wird der Standard-MBR von Windows zurückgeschrieben, und QNX ist beseitigt ;).

Die Aussichten von QNX

QNX ist mit Sicherheit kein Mainstream-OS, und auch nicht für jeden geeignet. Es ist zwar verhältnismäßig einfach zu installieren, allerdings hat es zugrunde liegende Probleme, die den Einsatz als Alltags-BS verhindern werden. Das größte Problem ist ganz einfach, dass noch zuwenig Endanwender-Software für QNX auf dem Markt ist. Dadurch wiederum hat QNX gegen den Riesen dieser Branche - Microsoft - kaum reale Chancen.

Allerdings orientiert sich QNX schließlich auch an anderen Zielgruppeen, vor allem in den Bereichen der Industrie-Computer und Embedded-Devices, die durch die Architektur dieses Betriebssystems mit Sicherheit sehr gut bedient werden. Und ich glaube auch, dass durch den Hype rund um Linux, damit verbunden das Interesse an alternativen Betriebssystemen, die Gemeinde der QNX-User auch steigen wird.

Literatur, Quellen

Dokomentation, Einführung

Download

Community

 

* Nach oben