QNX: Echtzeit-OS zum Nulltarif

01.03.2002 von Jörg Luther
Bisher standen Echtzeit-Betriebssysteme nur Entwicklern zur Verfügung - gegen viel Geld. QNX bietet sein Linux-kompatibles RTOS 6.1 zum kostenlosen Download an. Wir zeigen, wie es arbeitet und was es kann.

Die QNX Software Systems Ltd. kann auf reichlich Erfahrung im Bau von Betriebssystemen verweisen. Bereits seit 20 Jahren entwickelt und vertreibt das Unternehmen Echtzeit-OS für den PC- und Embedded-Einsatz. Die Produkte der kanadischen Software-Schmiede finden sich in Settop-Boxen, Kernreaktoren und sogar im Space Shuttle.

Inzwischen hat die jüngste Version des QNX-RTOS auch Einzug auf Hunderttausenden von Desktops gehalten: Seit Ende September 2000 bietet QNX seine Realtime Platform für Entwickler und Privatanwender zum kostenlosen Download. Dieser Schachzug soll dem Echtzeit-Betriebssystem zu größerer Verbreitung und einer umfassenderen Software-Unterstützung verhelfen. Die Anwender nehmen das Angebot dankbar an: Schon in den ersten drei Tagen nach dem Release wurden über 200.000 Kopien der QNX Realtime Platform vom Server gezogen.

Mittlerweile verzeichnet das Unternehmen über eine Million Downloads der Software. Mit QNX RTOS 6.1 liefern die Kanadier seit Ende Juli 2001 bereits das zweite größere Update aus. Es bringt zahlreiche Optimierungen an Kernel und Applikationen mit. Dazu zählen unter anderem die stark erweiterte Hardware-Unterstützung, der nochmals verbesserte Multimedia-Support sowie eine Protokollunterstützung für DSL-Verbindungen.

Die aktuelle Version des QNX RTOS 6.1.0A finden Sie auch auf der CD zum neuen tecCHANNEL-Magazin (ab 13. März im Handel).

Quickinfo

Produkt

QNX RTOS 6.1.0A

Hersteller

QNX Software Systems Ltd.

Preis

Für OpenSource-Entwickler und Privatanwender kostenlos; CD-ROM 36 Euro; Entwicklerlizenz ab 4.700 Euro

Download

http://get.qnx.com (selbst installierendes Basispaket 29 MByte, ISO-Image 442 MByte)

Systemvoraussetzungen

Hardware

CPU der 586-Klasse; IDE- oder SCSI-Festplatte min. 300 MByte frei

Software

Selbst installierende Version: Windows 9x/Me/NT/2000/XP

Sonstiges

Maus; für selbst installierende Version FAT- oder VFAT-Partition erforderlich, NTFS wird nicht unterstützt

RTOS und Microkernel

Das Herz des QNX RTOS 6.1 bildet der Neutrino-Microkernel. Er verfügt über Echtzeitfähigkeit, kann also innerhalb einer vorhersagbaren, definierten Zeitspanne auf Unterbrechungsanforderungen reagieren. Das erlauben ihm sein prioritätsgesteuertes, präemptives Multitasking und die Fähigkeit zur schnellen Kontextumschaltung. Beides basiert wesentlich auf der Auslegung von Neutrino als Microkernel.

Anders als monolithische Betriebssystemkerne lagert ein Microkernel alle nicht unmittelbar zur Steuerung der Programmabläufe benötigten Funktionen in externe Subsysteme aus. Diese werden anschließend je nach Bedarf in den Kernel eingeklinkt. Auf diese Weise lässt sich das OS für jeden Einsatzzweck anpassen und auf engstem Raum unterbringen - bei Embedded-Systemen etwa in einem Chip.

Der Neutrino-Microkernel fasst als Schalt- und Steuerzentrale eine gezielt auf den Einsatzzweck zugeschnittene Auswahl von untereinander kooperierenden Subsystemmanagern zum eigentlichen RTOS zusammen. Das Einbinden von Applikationen in diese Architektur gestaltet sich relativ einfach, da Neutrino den POSIX-Standard unterstützt.

QNX und die Konkurrenz

Zu den Grundanforderungen für ein hartes RTOS zählen eine Interruptauflösung im Mikrosekundenbereich, ein zuverlässiger Jitter unter 25 µs, eine Reaktionszeit von wenigen 10 bis 100 µs sowie eine garantierte Verarbeitung jedes Interrupts. Solche Fähigkeiten sind einem Betriebssystem nachträglich nur schwer aufzupfropfen. Daran leiden speziell die zwei potenziellen QNX-Rivalen Windows NT/2000/XP und Linux.

Windows NT und seine Nachfolger würden sich schon wegen ihrer Verbreitung im professionellen Bereich zur Verarbeitung von Echtzeitaufgaben anbieten. Im Basiszustand können sie solche jedoch nicht lösen: Die zur Interruptverarbeitung benötigte Zeitspanne lässt sich nicht vorhersagen, auch bei der Speicherzuweisung treten unkalkulierbare Verzögerungen auf. Von der Industrie angebotene Workarounds, wie etwa über NMIs arbeitende Spezial-Hardware oder Systeme mit modifiziertem HAL, realisieren nur "weiche" Echtzeit oder lassen lediglich bestimmte Interruptquellen zu. Lediglich Windows CE bietet ähnliche Fähigkeiten wie QNX RTOS, kann jedoch bedeutend weniger Prozesse verwalten (32 gegenüber 4095) und gibt sich beim Interrupt-Handling weniger flexibel als QNX.

Auch Linux ist nur mit Tricks zu Echtzeitverarbeitung zu bewegen. Die Timer-Auflösung des Kernel liegt auf den meisten Hardware-Plattformen bei 10 ms - für Realtime um zwei Größenordnungen zu langsam. RTLinux, eines der beiden verbreiteten Echtzeit-Linuxe, implementiert einen eigenen Realtime-Microkernel. Er bindet ein Standard-Linux als präemptiv angesteuerten Task niedriger Priorität ein. Applikationen mit Betriebssystem-Aufrufen lassen sich also bestenfalls als "weiche" RT-Tasks realisieren. Die Alternative KURT (Kansas University Real Time Linux) operiert über eine Reprogrammierung des Systemtimers sowie entsprechend angepasste Scheduling-Mechanismen. Bei diesem Ansatz können allerdings einzelne Subsysteme, etwa Massenspeicher, die Interruptverarbeitung für bis zu 450 µs blockieren.

Realtime unter QNX

Bei einem von vornherein auf Echtzeitverarbeitung ausgelegten Betriebssystem wie QNX entfallen Beschränkungen, wie sie modifizierte NT- oder Linux-Varianten bedingen. Um die Verarbeitung der Unterbrechungsanforderungen kümmert sich der speziell dafür entworfene Microkernel.

Neben dem Interrupt-Handling stellt der Microkernel als weitere Dienste Interprozess-Kommunikation (IPC), Scheduling und Netzwerk zur Verfügung.

Zur Kommunikation zwischen Kernel und eingeklinkten Subprozessen dienen die IPC-Funktionen Send(), Receive() und Reply(). In der einfachsten Form tauschen die beteiligten Prozesse Nachrichten ohne Queuing, also mit nahezu der Speicherbandbreite des Systems, aus.

Komplexere Prozesse agieren als Server mit Message Queuing, wozu sich auch mehrteilige Nachrichten aus den Nachrichten-Primitives zusammensetzen lassen. Nach diesem Muster sind beispielsweise die Filesystem- und Device-Manager von QNX aufgebaut. Diese Architektur garantiert eine zügige Verarbeitung von Interrupts und deren schnelle Weitergabe an die entsprechenden Verarbeitungsroutinen.

QNX: Typische Latenzzeiten (Quelle: QNX Software Systems Ltd.)

Prozessor

Interrupt-Latenz (µs)

Schedule-Latenz (µs)

386EX, 33 MHz

22,5

74,2

486DX, 100 MHz

5,6

11,1

Pentium, 100 MHz

4,4

6,7

Pentium, 166 MHz

3,3

4,7

Download

In Sachen Hardware gibt sich QNX RTOS 6.1 nicht sonderlich wählerisch. Das Release unterstützt praktisch jede gängige PC-Hardware und ließ sich im Test sogar problemlos auf einem älteren Notebook des Typs Acer Travelmate 7100 installieren. Eine ausführliche Liste der unterstützten Hardware hält QNX auf seiner Website bereit.

QNX bietet drei Varianten des RTOS 6.1 zum Download an. Die erste und zweite umfassen lediglich das eigentliche Betriebssystem und sind als selbstinstallierendes Windows-Binary respektive QNX4-Tarball (je 29 MByte) konzipiert. Die dritte, ein ISO-CD-Image, bringt auf 442 MByte ein umfangreiches Archiv von Applikationen, Entwicklertools, Sources und Libraries mit. Falls Sie den umfangreichen Download scheuen, können Sie alternativ zum neuen tecCHANNEL-Magazin greifen, das am 13. März erscheint: Die bootfähige CD zum Heft enthält sowohl die Standalone- als auch die Windows-Variante von QNX.

Eine bereits installierte QNX-Realtime-Plattform kann man direkt über den Paketmanager des Betriebssystems aktualisieren. Um allerdings in den Genuss aller Vorzüge der neuen Version zu kommen, müssen komplett oder aus vorhandenen Sourcen erstellte Applikationen anschließend neu kompiliert werden.

Installation

Die Windows-basierte Minimalversion von QNX installiert sich direkt in eine FAT- oder VFAT-Partition. Mit NTFS kommt sie allerdings nicht zurande. Die CD-basierte Variante beherrscht den Windows-Installationsmodus ebenfalls. Daneben lässt sie sich jedoch auch auf einer eigenen primären Partition einer IDE- oder SCSI-Festplatte einrichten. Deren Vorbereitung als QNX-Partition - etwa mit dem Linux-cfdisk - kann man sich aber schenken: Neutrino will seine Heimstatt partout selbst partitionieren und formatieren.

Die eigentliche Installation beansprucht rund 235 MByte Plattenplatz. Auch der genügsameren Windows-Variante sollte man diesen Raum zubilligen, da sie via Web auf den Stand der Komplettinstallation nachzurüsten ist. Zudem belegt QNX eine 128 MByte große Swap-Partition mit Beschlag. Plant man 500 MByte Plattenplatz ein, ist man in jedem Fall auf der sicheren Seite.

Benutzeroberfläche

Per Default bootet QNX nach der Installation in seine grafische Oberfläche, die Photon GUI. Bis zu vier so genannte Shelves rahmen den grafischen Arbeitsbereich ein, zwei liefert das System bereits vorkonfiguriert an die Hand. Das Shelf an der Bildschirmunterkante nimmt ein Startmenü auf und betätigt sich außerdem als Taskbar.

Am rechten Bildschirmrand logiert eine Schnellstartleiste mit einigen eingehängten Applets. In der Grundeinstellung finden sich hier ein Systemmonitor, eine Uhr sowie eine Lautstärkeregelung. Über das Shelf-Setup lassen sich die Leisten nach individuellen Vorstellungen mit Menüs, Kontrollelementen und weiteren Applets bestücken. Als besonders nützlich erweist sich das World-View-Applet, das bis zu neun virtuelle Bildschirme zur Verfügung stellt.

Konfiguration

QNX stellt eine ganze Reihe nützlicher Werkzeuge zur Konfiguration des Systems bereit. Schon während des Installationsvorgangs erscheint die Photon Display Configuration zum ersten Mal. Sie bindet den Treiber für die erkannte Grafikkarte ein und erlaubt auch im laufenden Betrieb einen Wechsel zwischen den Videomodi.

Über die TCP/IP-Konfiguration kann die von Neutrino erkannte Netzwerkkarte mit den nötigen Informationen versorgt werden. Das Appearance-Applet ermöglicht die Einstellung der Bildschirmfarben und des Hintergrundbildes für die Arbeitsfläche. Der Screensaver-Manager steuert diverse Bildschirmschoner an, ein Spool-Manager überwacht die Nutzung des Druckers. Mit Hilfe des Localization-Tools lassen sich die Zeitzone und die gewünschte Tastaturbelegung anwählen. Die ebenfalls vorgesehene Umstellung der GUI auf die Landessprache funktioniert auch in QNX RTOS 6.1 noch nicht.

Management

Die Einbindung zusätzlicher Software ins System regelt QNX über einen komfortablen Paketmanager. Bei der Installation nutzt er als mögliche Quellen die Installations-CD, die QNX-Homepage sowie weitere frei definierbare Internet-Quellen. Daneben kennt er auch einen Deinstallationsmodus, mit dem sich die Platte von unerwünschten Software-Paketen säubern lässt.

Management-Tools zur Verwaltung der Benutzerkonten sowie zur leichteren Einbindung von Filesystemen lässt die GUI bislang noch vermissen. Einrichtung und Änderung von Benutzer-Accounts erfolgen mittels Unix-Befehlen an der Kommandozeile. Lokale FAT- und VFAT-Filesysteme mountet Neutrino automatisch. Das Einbinden von Netzlaufwerken via NFS oder CIFS kann manuell erledigt werden.

Browser und E-Mail

Zum Grundumfang des QNX-Pakets zählt ein recht brauchbarer Webbrowser namens Voyager. Er bietet guten HTML-3.2- und Javascript-Support. Auch Funktionen wie ein automatisches Vervollständigen von URLs, einfaches Bookmarking und eine rudimentäre History zählen zum Leistungsumfang des Voyager. HTML-4- oder CSS-Unterstützung sucht man dagegen vergeblich. Immerhin unterstützt der Browser 128-Bit-Verschlüsselung via SSLeay.

Als Mail- und News-Client liefert QNX ein V-Mail genanntes Tool mit. Es kann nicht nur durch eine ansehnliche Oberfläche, sondern auch durch seinen Funktionsumfang glänzen. So sind parallel mehrere POP3-Konten zu nutzen und auch das IMAP-Protokoll beherrscht V-Mail. Allerdings fehlen dem Tool eine ausführliche Nachrichten- und Ordnerverwaltung wie auch jegliche Filterregeln.

Wem Voyager und V-Mail zu mager ausfallen, der kann sich mittlerweile auch entsprechende Tools aus anderen Quellen besorgen. Sowohl Opera als auch Mozilla sind seit einiger Zeit in QNX-Varianten zu haben.

Applikationen

Für den Umgang mit Dateien und Verzeichnissen dient ein einfacher, nach dem Muster des Windows Explorer gestrickter Dateimanager. Auch Applets wie Terminal, Texteditor oder Taschenrechner fehlen nicht. Auf ein Grafikprogramm muss der QNX-User allerdings verzichten, lediglich ein Snapshot-Programm sowie ein Viewer finden sich im Lieferumfang.

Erstaunlich opulent fällt dagegen die Multimedia-Ausstattung des Betriebssystems aus, die in QNX RTOS 6.1 noch einmal verbessert wurde. Zu ihr zählen ein voll ausgestatteter Media-Player mit Playlist-Verwaltung sowie ein passender Mixer. Daneben bringt QNX auch einen RealPlayer G2 mit. Dem Streaming von Audio- und Videofiles in den gängigsten Formaten inklusive MP3 steht also nichts im Wege. Zudem wurden alle Multimedia-Anwendungen auf minimale CPU-Belastung hin optimiert.

Software-Entwicklung

Im optionalen Software-Fundus von QNX findet sich eine komplette GNU-Toolchain. Mit ihrer Hilfe stellt die Portierung von Linux-Software direkt auf QNX kein größeres Problem dar. Daneben enthält das RTOS aber auch eigene Entwicklungswerkzeuge von der 3dfx-Unterstützung bis zum grafischen Debugger.

Das Highlight der Toolsammlung ist das grafische RAD-Tool Photon Application Builder (PhAB). Über zahlreiche, teils neue Widgets und Ressourcen lassen sich mit seiner Hilfe in Minutenschnelle Applikationsprototypen erstellen und mit programmtechnischem Leben füllen. Dazu trägt nicht zuletzt die seit QNX RTOS 6.0 vorhandene Fähigkeit zur Verarbeitung von Templates bei. Auf Knopfdruck generiert und startet PhAB anschließend die neu erstellte Anwendung.

Fazit

Mit QNX RTOS 6.1 liefert der Hersteller ein gelungenes Betriebssystem ab, das nicht nur für RTOS- und Embedded-Entwickler von Interesse ist. Als Ersatz für Windows eignet es sich freilich mit seiner recht dünnen Software-Unterstützung nicht. Dagegen öffnet es für bisher nur mit Microsoft vertraute Anwender die Tür zu neuen Betriebssystem-Welten - und das mehr als nur einen Spalt breit. Auch mancher Linux-Adept dürfte an dem vage vertraut wirkenden Spielzeug rasch Gefallen finden.

Für ein bereits installiertes System rechnet sich das Update auf die neue Version schon wegen des optimierten Kernels und des Feinschliffs an zahlreichen Utilities. Zudem erhält die Multimedia-Fraktion umfassenden Streaming-Support. Die Entwickler werden sich über die neuen Möglichkeiten des Application Builder freuen.

Auf Grund seines minimalen Ressourcen-Hungers eignet sich QNX fast ideal für das Recycling von Pentium-Rechnern der ersten Generation zur Experimentier- und Surfstation. Dazu trägt nicht zuletzt der mittlerweile recht breite Hardware-Support bei. So kommt das Echtzeit-Betriebssystem mittlerweile auch mit USB, SCSI und sogar WLAN-Adaptern gut zurecht. Eine Schwäche zeigt QNX RTOS aber doch: Über die serielle Schnittstelle kommt es noch einigermaßen mit Modems klar, dagegen fehlt auch in Version 6.1 noch jegliche direkte Unterstützung für ISDN-Hardware. Lediglich einzelne Drittanbieter wie Stollmann (für die passiven Karten der tina-Serie) liefern ISDN-Treiber für QNX mit. Immerhin bietet QNX RTOS ab der aktuellen Version 6.1 Support für PPPoE, so dass eine Anbindung via DSL erfolgen kann. Legt man also gesteigerten Wert auf flotte Kommunikation mit der Außenwelt, hängt man seine QNX-Maschine tunlichst in ein lokales Netz oder spendiert ihr einen DSL-Zugang.

Eine komfortable Möglichkeit zum Einstieg in den Umgang mit QNX RTOS 6.1 bietet übrigens das neue tecCHANNEL-Magazin, das am 13. März erscheint: Die bootfähige CD zum Heft enthält sowohl die Standalone- als auch die Windows-Variante von QNX. (jlu)