Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

25.08.2000 - 

Die Zukunft des PCs/Appliances und Embedded-Produkte erfordern neue Technik

Echtzeit-Betriebssysteme bewähren sich in digitalen Kleingeräten

Dass PCs gelegentlich abstürzen, ist bekannt. Dabei besteht stets das Risiko, Daten zu verlieren. An Non-PC-Devices werden höhere Maßstäbe angelegt. Da in diesem Bereich ein Maximum an Stabilität gefordert ist, entscheiden sich hier etliche Hersteller für Echtzeit-Betriebssysteme. Heike Stautner* stellt deren Vorteile gegenüber PC-Systemen dar.

Was am PC zur Gewohnheit gehört, ist den Anwendern von Handys, Settop-Boxen oder Navigationssystemen im Auto kaum zuzumuten: ein Hänger des Systems und die damit verbundene Gefahr von Datenverlust. Um die von der PC-Plattform her bekannten unerwünschten Nebenwirkungen zu vermeiden, suchen einige Hersteller im Bereich Consumer Electronics und Telekommunikation Alternativen zu herkömmlichen Betriebssystemen. Echtzeit-Betriebssysteme kommen bereits in einer Reihe von Embedded-Architekturen wie in der Medizintechnik, industriellen Automatisierung und Automobilindustrie zum Einsatz.

Es stellt sich dabei die Frage, inwieweit sich einerseits herkömmliche Betriebssysteme für die Embedded-Welt eignen und welche Vorzüge andererseits Echtzeit-Betriebssysteme in diesem Bereich haben. Derzeit ist der Markt zweigeteilt. Desktop-Betriebssysteme wie Windows, Windows CE, Epoc, Be-OS oder Linux drängen verstärkt in den Embedded-Markt. Bisher hatten hier Echtzeit-Betriebssysteme wie QNX einen angestammten Platz.

Echtzeitsysteme glänzen durch ZuverlässigkeitHerkömmliche Betriebssysteme haben hier bisher mit gewissen Nachteilen zu kämpfen, da sie nicht immer speziell für die Anforderungen von Embedded-Systemen wie PDAs, Web-Pads oder Mobilfunkgeräten entwickelt worden sind. So sind sie nicht absolut zuverlässig, nur beschränkt echtzeitfähig und benötigen zu viel Speicher. Auch lassen sich ihre APIs nicht immer kundenspezifisch anpassen. Microsoft hat dies bereits vor längerem erkannt und versucht, mit Windows CE auf diese Bedürfnisse am Markt zu reagieren. Nicht umsonst haben die Redmonder bei CE 3.0 besonders auf die verbesserte Echtzeitfähigkeit hingewiesen. Linux ist in aller Munde, doch sind hier noch einige Aufgaben zu erledigen, um es für die Embedded-Entwicklung brauchbar zu machen. Eine Standardisierung wird hier sicher noch auf sich warten lassen.

Gerade im Bereich Consumer Electronics geht die Entwicklung rasant voran. Immer neue Geräte drängen auf den Markt und buhlen um die Gunst des kaufkräftigen Anwenders. Produktlebenszyklen werden gerade in diesem Markt immer kürzer und als Folge damit auch die Entwicklungszyklen. Dan Dodge, CEO von QNX Software Systems, kennt die Wünsche und Probleme der Gerätehersteller: "Inzwischen ist die Zeit zwischen Produktentwurf und Marktreife so kurz geworden, dass unsere Kunden nicht mehr in eigene, große Entwicklungabteilungen investieren wollen. Sie sind auf der Suche nach einer fertigen, umfassenden Lösung, die ihnen die Funktionalitäten und Möglichkeiten eröffnen, die sie brauchen. Mit einem ,nackten´ Betriebssystem kommt man gerade in diesem Markt nicht mehr weiter."

Der Trend geht eindeutig hin zur One-Stop-Lösung. Hersteller haben einfach nicht mehr die Zeit, die entsprechenden Komponenten bei einzelnen Anbietern einzukaufen und dann viel Mühe und Geld zu investieren, um sie aufeinander abzustimmen. Gefragt ist eine komplette Lösung, die sich bereits im Embedded-Bereich bewährt hat und die sämtliche Funktionalitäten bietet, um Internet-Zugangsgeräte, Home und Information Appliances schnell zu entwickeln.

Komplexe, multifunktionale Internet-Geräte sind ein ideales Einsatzgebiet für Echtzeit-Betriebssysteme. Hier wird vorausgesetzt, dass alle Funktionen und Applikationen des Systems simultan kontrolliert und gesteuert werden. Die Vielfalt der zu integrierenden Funktionen stellt hohe Anforderungen an das System. So sind diverse Media-Player für DVD, MP3, MPEG und Real heutzutage Standard. Hinzu kommt die Integration von Internet-Applikationen wie Web-Browser, Plug-Ins und E-Mail-Client sowie 3D-Hardwarebeschleuniger für Spiele, Spracherkennung- und Video-Conferencing-Software. Zu guter Letzt wird auch noch Treiberunterstützung für USB-Geräte, Highend-Audio-Geräte und Drucker erwartet. Entscheidend dabei ist, dass alle diese Komponenten aufeinander abgestimmt sind und der Gerätehersteller die Möglichkeit hat, die einzelnen Interfaces kundenspezifisch anzupassen.

Wichtig für Entwickler von Embedded-Systemen ist die offene Architektur des Betriebssystems, so dass der Support von Standard APIs problemlos möglich ist. Dies zeichnet natürlich auch eine Reihe herkömmlicher Betriebssysteme aus, doch ist es schwierig beziehungsweise unmöglich, dem Embedded-System Treiber und Applikationen im laufenden Betrieb hinzuzufügen, upzugraden oder zu entfernen, ohne das System zu rebooten oder neu zu testen. Hier liegt der Vorteil eindeutig auf der Seite Posix-basierender Echtzeit-Betriebssysteme wie QNX. Letzteres kann zudem dank seiner UPM-(Universal-Process-Modell-)Architektur Speicherschutz für sämtliche Software-Komponenten einschließlich Betriebssystemmodule und Treiber gewährleisten.

Außerhalb des Kernels werden alle Systemdienste durch optional hinzufügbare Prozesse bereitgestellt. Das führt dazu, dass jeder Treiber, jedes Protokoll, jedes Dateisystem, jeder I/O-Manager und jedes Grafiksubsystem in seinem eigenen speichergeschützten Adressraum laufen kann, was die Zuverlässigkeit erhöht. Von Vorteil ist, dass der Betriebssystemkernel nur wenig Programmcode hat, der Fehler verursachen könnte. Zudem ist es sehr unwahrscheinlich, dass irgendein Modul - auch ein schlecht programmiertes mit höchstem Zugriffsrecht - den Kernel korrumpieren könnte. Darüber hinaus läuft nun jedes Modul als unabhängiger Prozess. Das bedeutet, dass sich jeder Teil des Softwaresystems beliebig starten, stoppen, verändern oder upgraden lässt, ohne einen Neustart durchführen oder den Kernel neu erstellen zu müssen.

Gerade bei Geräten des täglichen Lebens oder der Unterhaltungselektronik entscheidet der Faktor Zuverlässigkeit über Kundenzufriedenheit, Wiederholungskauf und damit Absatzzahlen. Anders als der Desktop-Bereich, den nach wie vor Microsoft dominiert, ist der Embedded-Bereich noch sehr offen. Erst in den nächsten Jahren wird sich entscheiden, wer das Rennen macht, wobei hier Portabilität und Erweiterbarkeit entscheidende Kriterien für Erfolg oder Misserfolg sein dürften.

Auch die Entwicklung neuer Prozessoren mit einer höheren Performance oder besseren Integrität wird dazu beitragen. Die Architektur des eingesetzten Betriebssystems muss es erlauben, Software zu schreiben und in das System einzuspielen, ohne über den eingesetzten Prozessor nachzudenken oder von einem Prozessor zum nächsten wechseln zu können, ohne dabei die Software groß anpassen zu müssen. Java kann in diesem Fall einen gewissen Grad an Unabhängigkeit bieten. Jedoch sind heutzutage viele Komponenten, gerade Treiber oder Multimedia-Applikationen, zugunsten der Performance in der Programmiersprache C geschrieben. Die Betriebssystem-Architektur sollte also eine einfache Portabilität auf andere Prozessoren zulassen.

Ein anderes Dilemma beanspruchen speziell "All-in-one"-Entertainment-Systeme für sich. Einerseits sollen Applikationen wie Browser oder E-Mail-Client regelmäßig auf den neuesten Stand gebracht werden, um den aktuellen Standards zu genügen. Andererseits sind gerade die Benutzer solcher Systeme keine Computerspezialisten, das heißt, sie sind abgeneigt oder einfach nicht in der Lage, neue Software selbst zu installieren. Die Erweiterung oder das Updaten des Systems sollte also idealerweise automatisch vonstatten gehen. Dasselbe gilt für neue Hardware. Schließt der Benutzer einen neuen Drucker an, so sollte das System diesen Drucker erkennen und von einer Website einen neuen Treiber laden und installieren.

Anwenderfreundlichkeit und Flexibilität sind für den Erfolg kommender Geräte entscheidend. Kommunikation darf nicht mehr nur eingeschränkt möglich sein, sondern muss auch über die unterschiedlichen Plattformen und Systeme verschiedener Hersteller hinweg funktionieren. Im Idealfall sollte der Anwender beispielsweise über sein Mobilfunkgerät auch seinen PDA, Fernseher oder Kühlschrank "ansprechen" können, ohne dabei mühsam bestimmte Konfigurationen vorzunehmen. Dieses Szenario kann allerdings nur Realität werden, wenn das eingesetzte Betriebssystem die Möglichkeit zu einem verteilten und transparenten Netzwerk mitbringt, so dass jede neue Applikation oder Plattform existierende Ressourcen automatisch erkennt.

Konfiguration muss einfach seinDamit sind die Anforderungen an zukünftige Betriebssysteme identifziert: Zuverlässigkeit, Stabilität, Portabilität, Erweiterbarkeit, Netzwerktransparenz und kundenspezifische Anpassungsfähigkeit. Voraussetzungen, die sicherlich auch bei der Implementierung zukünftiger Technologien wie Wireless Connectivity, Spracheingabe und Video-Conferencing in Embedded-Systeme von Nutzen sein werden. Device-Hersteller werden in Zukunft genau abwägen müssen, über welche Funktionalitäten ihre Geräte verfügen sollen, wie lange die Entwicklungszeiten sein sollen und zu welchem Preis sie ihr Produkt anbieten wollen. Bestimmte Appliances werden mit dem einen oder anderen herkömmlichen Betriebssystem sicherlich gut beraten sein. Doch gerade bei Konsumelektronikgeräten gibt es einen eindeutigen Trend hin zur Echtzeitplattform.

*Heike Stautner ist Mitinhaberin der PR-Agentur Stautner&Stautner.

Abb: Universal-Prozess-Modell bei Echtzeit-Betriebssystemen: Hier werden nur essenzielle Dienste innerhalb des Kernels wie zum Beispiel Scheduling, Interprozess-Kommunikation und die Umleitung von Hardware-Interrupts implementiert. Quelle: QNX