![]() |
|
![]()
Der riesige, rasant wachsende
PC-Markt produziert eine Vielzahl von Werkzeugen und Plattformen, die
Hersteller zur Entwicklung von Internet-Geräten verwenden können
- vom Web-Browser bis hin zu hoch integrierten embedded Prozessoren.
Nichts desto trotz bleibt ein Problem: Die Betriebssystem-Umgebungen
für den Desktop-PC erzwingen typischerweise enormen Overhead bei
Platten- und Hauptspeicherkapazitäten und sind daher nicht für
das Preissegment eines Konsumproduktes geeignet. Die ideale Lösung?
Eine auf Standards basierende Echtzeitbetriebssystem-Umgebung, die speziell
für Runtime-Systeme mit minimalen Prozessor- und Speicherressourcen
entwickelt wurde.
Diese Abhandlung untersucht, wie eine solche Lösung es ermöglicht, basierend auf dem QNX® Echtzeitbetriebssystem und der grafischen Benutzeroberfläche Photon microGUI preisgünstige, hoch-performante Internet-Geräte zu entwickeln, die der schnellen Entwicklung der Internet-Dienste folgen können. Da sich PC-Hardware genauso schnell weiterentwickelt, befaßt sich diese Abhandlung auch mit Fragen im Zusammenhang mit Produkt-Lebenszyklen (Konfiguration, Skalierbarkeit, Updates und Erneuerung) und untersucht embedded PC-Hardware, die den langfristigen Anforderungen der Hersteller von Internet-Geräten genügt.
Mit der weitverbreiteten Verfügbarkeit von kosten-günstigen 32-Bit Mikroprozessoren können Anwendungen, die zuvor nur auf einem Desktop vorhanden waren - inklusive Applikationen für den Zugriff auf das Internet - nun in eine Vielzahl von embedded Systemen und "appliance-class"-Geräten integriert werden. Beispiele hierfür sind z.B. digitale Set-Top-Boxen (STBs) für Fernseher, "Smart Phone"-Telefone für Zuhause oder das Büro sowie Intranet-Geräte für industriespezifische Anwendungsbereiche, wie z.B. Kassensysteme. In dieser Abhandlung bezeichnen wir all diese Geräte mit Internetzugriff als `Internet-Geräte' ("Internet Appliances"). Derzeit werden bereits verschiedene Referenz-Entwürfe für Internet-Geräte entwickelt: beginnend bei selbstgestrickten Betriebssystem-Kernels, die auf kostengünstigen embedded Prozessoren laufen, bis hin zu Desktop-Betriebssystemen, die auf modifizierten PC-Workstations laufen, komplett mit MPEG-Hardware für "Live-Video". Während diese Referenzplattformen bereits zeigen, wohin der Trend bei Internet-Geräten letztendlich führen wird, bieten die meisten verfügbaren Internetverbindungen für den Verbraucher (Modem, Kabelanschluß usw.) nicht die entsprechende Infrastruktur und Netzwerk-bandbreite, um Dienste wie z.B. "Video-on-demand" liefern zu können. Trotzdem können Internet-Geräte bereits jetzt auf verschiedene wichtige Informationsdienste zugreifen, inklusive des World Wide Webs. Internet-Dienste- und Technologien entwickeln sich mit atemberaubender Geschwindigkeit. Daher haben Produkte, die diesen Technologien nicht folgen können, kaum eine Chance, im Markt Fuß zu fassen. Um die Nachfrage der Verbraucher befriedigen zu können, müssen sowohl Software als auch Hardware von Internet-Geräten skalierbar sein im Idealfall durch von Kunden selbst durchgeführte Upgrades. Des weiteren müssend diese Komponenten relativ billig sein, damit das Gerät regelmäßig ersetzt oder ausgetauscht werden kann, sobald es veraltet ist. Innerhalb dieses turbulenten Marktes haben Produkt-entwickler die Aufgabe, Produkte zu entwerfen, die wenig kosten aber dennoch eine hohe Funktionalität bieten. Sie sind zudem noch einem außergewöhnlichem "Time-to-Market"-Druck ausgesetzt. So betreiben Hersteller z.B. einen erheblichen Aufwand, um bei der Entwicklung von Produkten die "Manufacturability" zu optimieren, also die Kosten des Herstellungsprozesses so gering wie möglich zu halten. Durch den inhärent kurzen Lebenszyklus jeglicher Geräte mit Internetzugriff muß diese Phase für Kostenreduzierungen so kurz wie möglich sein. Des weiteren muß das Design die Möglichkeit bieten, schnelle Updates ohne eine komplette - und teure - Umrüstung des Fertigungsprozesses durchzuführen. Glücklicherweise müssen Hersteller die erforder-liche Technologie nicht erst entwickeln, um den sich ständig ändernden Funktionalitätsanforderungen zu folgen. Statt dessen können sie diese Technologie von einer bereits existierenden Quelle ausleihen: dem Desktop-PC.
Mit riesigem Marktanteil und Tausenden Herstellern weltweit ist die PC-Plattform der de facto Standard für ein breites Anwendungsspektrum und bietet einen bewährten Satz von Standard-Werkzeugen. Tatsächlich wird ein Großteil der Technologie, die für Internet-Geräte benötigt wird, mit und für den Desktop-PC entwickelt. Ein vom PC abgeleitetes Design für ein Internet-Gerät profitiert vom vermin-derten Entwicklungsaufwand und -risiko. So wurde z.B. während der frühen Diskussionen über "Video-on-Demand" für Set-Top-Boxen die Echtzeitdekompression von MPEG-Videodaten als erhebliches Performanceproblem identifiziert und hoch-performante RISC-Prozessoren wurden routinemäßig als Lösung vorgeschlagen. Zur gleichen Zeit begann die Multimedia-Bewegung im Desktop-PC-Bereich eine Reihe von MPEG-fähigen Grafik-Chipsätzen und Erweiterungen von CPU Befehls-sätzen (z.B. MMX) zu generieren. Letztendlich hat die große Nachfrage nach Desktop-Multimedia - zusammen mit den Effekten der Massenproduktion - kostengünstige dedizierte Chips hervorgebracht, die das MPEG-Performanceproblem lösten, sogar wenn diese Chips mit Low-End PC-Prozessoren kombiniert wurden. Der Netto-Effekt: Set-Top-Boxen mit Live-Video, deren Technologien vom PC abgeleitet wurden. Reichhaltiges Angebot an WerkzeugenMit der Verfügbarkeit von verschiedenen PC-Technologien für die Integration in Internet-Geräte werden auch andere Vorteile der PC-Architektur relevant. So bietet z.B. der Desktop-PC unbestritten das reichhaltigste Sortiment an Betriebssystemen, Entwicklungswerkzeugen und Peripheriegeräten für den Entwickler von embedded Systemen. Da ein vom PC abgeleitetes Gerät architektonisch verg-leichbar mit einem Desktop-PC ist, werden der PC und die dafür verfügbare Software zu natürlichen Prototyping-Werkzeugen für den Entwickler von Internet-Geräten. Es gibt einen weiteren, noch wichtigeren Vorteil: Die Anlehnung der Architektur von Internet-Geräten an den Desktop-PC erleichtert die Migration von Hardware- und Software-Technologien auf die Internet-Geräte, weil Internet- und Multimedia-Technologien ursprünglich auf dem Desktop-PC entstehen.Eine zu direkte Koppelung an die Entwicklung der PC-Technologie birgt allerdings auch Gefahren. Es ist zwar relativ einfach, ein PC-kompatibles embedded System zu entwerfen, indem man ein x86-Prozessor mit einem PC-Motherboard-Chipset kombiniert, jedoch macht das Erscheinen der nächsten Generation die meisten Chipsets sehr schnell überflüssig. So werden die Hersteller von Motherboard-Chipsets durch den Wettbewerb gezwungen, alle sechs Monate neue Versionen zu entwickeln. Offensichtlich benötigen Produkte, die auf diesen Komponenten basieren, regelmäßig eine Überarbeitung des Designs, nur um die Produktion aufrecht erhalten zu können. Der Hersteller muß entweder langfristige Verein-barungen mit den Komponenten-Herstellern treffen oder den Redesign-Zyklus des Geräts beschleunigen, um der Desktop-PC-Hardware folgen zu können (eine praktikable Lösung, da der Markt für Internet-Geräte erfordern könnte, daß die Produkt-Leben-szyklen im Verhältnis zu anderen elektronischen Konsum-produkten beschleunigt werden). Dennoch gibt es andere PC-Hardware-Komponenten, die besser an die Anforderungen der Hersteller von Internet-Geräten angepaßt sind. Längere ProduktlebensdauerDank des schnellen Wachstums der embedded x86 Industrie gibt es eine Reihe von hochintegrierten x86-Prozessoren, u.a. den AMD Élan SC310/400 (www.amd.com), den Cyrix MediaGX (www.cyrix.com), den Intel386 EX (www.intel.com) und den National Semiconductor NS486SXF (www.national.com). Da diese Prozessoren genau auf den embedded Markt zielen, sind ihre Hersteller eher bereit, diese auf lange Sicht bereitzustellen - viel länger als Motherboard-Chipsets, die auf den Desktop-PC zielen. Darüber hinaus integrieren diese Prozessoren eine Vielzahl von Peripheriekomponenten in die CPU, wodurch sowohl die Komponentenanzahl als auch die Kosten von System-Designs verringert werden. Neben diesen Prozessoren gibt es auch Zusatzchips mit Garantien für langfristige Verfügbarkeit. So bietet z.B. der RadiSys R380EX Chip (www.radisys.com) kombiniert mit dem Intel386 EX einen erheblichen Teil der erforderlichen Funktionalität für einen Embedded PC. Verfügbare StandardhardwareUm Herstellern eine schnelle Entwicklung zu ermöglichen, bieten x86 Chiphersteller auch Evaluations-Boards und Referenz-Entwürfe an. Davon zielen einige direkt auf die Low-Cost Bedürfnisse der Internet-Geräte. Dazu gehören der AMD ÉlanSC310 (www.amd.com), das Intel EXPLR2 Evaluation-Board (www.explr2.com), und der National Semiconductor Odin, ein Referenz-Entwurf speziell für Web-Geräte (www.national.com). Hersteller benutzen diese fertigen Plattformen für Produktevaluierung, schnelles Prototyping, Systementwicklung und in einigen Fällen begrenzte Produktionsläufe. Sie können Teile der Referenz-Entwürfe kopieren, um ihre eigene spezifische Hardware zu entwickeln. Viele Hersteller von PC-Komponenten haben den Trend erkannt und bieten Set-Top-Box-kompatible Gehäuse, Stromversor-gungen, kabellose Infrarot-Tastaturen und kabellose Mäuse an. Diese Hardware ermöglicht es einem Set-Top-Box-Hersteller, viele Probleme in der frühen Phase des Produktlebenszyklus zu umgehen und ein System basierend auf verfügbarer Standard-hardware zu konfigurieren - ähnlich dem üblichen Vorgehen von PC-Herstellern. Während diese Methode kaum geeignet ist, die Preisklasse eines echten Konsumproduktes zu erreichen, ermöglicht es dem Hersteller in jedem Fall die schnelle Markteinführung eines Produktes.
Bis jetzt haben wir die Anwendbarkeit von PC-Hardware diskutiert, aber der Löwenanteil der Funktionalität eines Internet-Geräts steckt in der Software. Glücklicherweise existiert diese Software bereits auf dem Desktop-PC. Leider benötigen die Betriebssysteme, auf denen diese Software basiert, eine ungeheure Menge an RAM, Plattenplatz und CPU-Zyklen. Das Ausstatten eines Internet-Geräts mit genügend Ressourcen, um ein Desktop-Betriebssystem und eine grafische Benutzerober-fläche zu betreiben, inklusive eines Internet-Browsers, würde die Hardware-Ausstattung des Internet-Geräts in die Region eines Desktop-PC verschieben und somit das Preisniveau eines Konsumproduktes völlig verfehlen. Da das Internet-Gerät nur eine spezielle Funktion erfüllen soll und kein Allzweck-PC ist, benötigt es nicht den Software-Overhead eines Desktop-Betriebssystems, das entwickelt wurde, um beliebige Desktop-Anwendungen zu unterstützen, wie z.B. eine ressourcenintensive Benutzerober-fläche, binäre Kompatibilität zu Legacy-Anwendungen, usw. Statt dessen kann das Gerät ein wesentlich kleineres, spezialisierteres Betriebssystem verwenden, das entwickelt wurde, um Anwendungen für Internet-Geräte auszuführen. Mit der größeren Effizienz und den geringeren Speicher/Platten-Anforderungen dieses Betriebssystems können die Hardwarekosten reduziert werden, um unter dem kritischen Preisniveau von $300 zu bleiben. Die hieraus resultierenden niedrigen Stückkosten für Set-Top-Box-Geräte können in den monatlichen Kabelgebühren versteckt werden, wodurch der Zwang zum Kauf durch den Verbraucher ganz vermieden wird. Neben den grundsätzlichen Multitasking-Fähigkeiten, die benötigt werden, um mehrere Prozesse auszuführen, muß ein Internet-Gerät einen Web-Browser zur Verfügung stellen, ein Email-Programm, möglicherweise einen Newsreader und andere Anwendungen, die vom Verbraucher erwartet werden. Zur Unterstützung dieser Anwendungen und für die Benutzerfreundlichkeit benötigt das Internet-Gerät eine grafische Benutzeroberfläche. Zieht man die präzisen Timing-Anforderungen für das Abspielen von Video- und Audiodaten in manchen Anwen-dungen in Betracht, muß das Betriebssystem zusätzlich über Echtzeitfähigkeiten verfügen. Verfügbare StandardsoftwarePraktischerweise bieten Echtzeitbetriebssysteme für embedded Anwendungen prozessor- und speichereffiziente Laufzeitumgebungen, die für diese Anwendung geeignet sind. Nichts desto trotz sollte der gleiche Zwang zur Minimierung des Entwicklungsaufwands, der die Hersteller ermuntert, "Anleihen" bei PC-Hardware-Standards zu machen, sie in die Richtung von standardisierten Software APIs bewegen. Wenn das gewählte Betriebssystem eine API unterstützt, die auch von den Anwendungen benutzt wird, die das Internet-Gerät bieten soll, können die Hersteller erheblichen Entwicklungsauf-wand vermeiden, indem sie diese Anwendungen einfach vom PC und anderen Umgebungen portieren. Darüber hinaus ermöglicht eine Standard-API dem Hersteller, den sich schnell weiterentwickelnden Technologien zu folgen, die vom Verbraucher gefordert werden. Ein Beispiel für die Wirksamkeit einer auf Standards basierendem Betriebssystem-Umgebung ist die Portierung des Spyglass HTML 3.2 Web-Browsers (www.spyglass.com) auf das QNX Echtzeitbetriebssystem. Nur ein einziger Tag war erforderlich, um die X Windows Version der Spyglass Technologie auf QNX zu portieren. Natürlich ist X zu ressourcenintensiv für die Verwendung in einem Internet-Gerät, so daß der Spyglass-Port seitdem an die Photon microGUI® angepaßt wurde (ein Windowing-System für QNX, das später beschrieben wird). Die neue Version läuft in ca. 400K ROM oder Flash und 1MB RAM. Dies ist ein exzellentes Beispiel dafür, wie eine auf Standards basierende Umgebung die Portierung einer gängigen Internet-Technologie auf ein Internet-Gerät erleichtern kann (auch Microsofts Web-Browser basiert auf der Technologie von Spyglass). Die komplette Neuent-wicklung eines Web-Browsers für ein proprietäres Betriebssystem mit einer minimalen Grafikbibliothek hätte einen erheblich höheren Entwicklungsaufwand erfordert wobei durch die sich ständig weiterent-wickelnden Web-Browser-Technologien gar kein Ende des Entwicklungsprozesses abzusehen wäre. Echtzeit POSIXDa ein Großteil der bereits existierenden Internet-Software auf Unix-Systemen entwickelt wurde, ist eine Unix oder POSIX-API folglich eine gute Wahl. Eine Überprüfung des Quellcodes der Java Laufzeit-umgebung zeigt, daß ein Betriebssystem mit folgenden Eigenschaften bevorzugt wird: POSIX-konform, asynchrone I/O-Vorgänge, generische Threads, Dateisystem, Netzwerk und Windowing-System. Während POSIX-Umgebungen den Ruf haben, ressourcenhungrig zu sein (im Hinblick auf ihre historischen UNIX-Wurzeln), zeigt das Studium der POSIX-Standards eine sorgfältige Definition der Schnittstellen, jedoch nicht der Implementierung. Daher kann durch die Verwendung einer Mikrokernel-Architektur eine POSIX-API zur Verfügung gestellt werden, die ohne den architektonischen "Overhead" eines Unix-Kernels auskommt. So bietet z.B. der QNX/Neutrino Echtzeit-Mikrokernel fast alle Basisdienste eines POSIX-Betriebssystems in ca. 32K Code. Dies beinhaltet die zentralen Dienste von POSIX 1003.1a, 1003.1b (Echtzeit), 1003.1c (Threads) und 1004.1d (Echtzeit-Erweiterungen). Die einzige Basis-Funktion, die der Microkernel nicht bietet, ist die Fähigkeit, zusätzliche Prozesse zu erzeugen. Diese Funktionalität bietet der Neutrino Prozeßmanager, Proc, der weitere 32K Speicher benötigt. Insgesamt stellt dieser 64K große Betriebssystemkern einen Großteil der Betriebssystem-Funktionalität zur Verfügung, die von einer Java-Laufzeitumgebung benötigt wird (Netzwerk, Dateisystem und Windowing-System sind extern zum Kernel). Neutrino liefert mehrere Varianten für Memory-Protection, von keinem Schutz bis zum vollen "Prozeß-zu-Prozeß-Schutz". Im Modell ohne Memory-Protection laufen alle Anwendungsprozesse als Threads in einem gemeinsamen Adreßraum. Im Modell mit "Prozess-zu-Prozess-Schutz" läuft jeder Prozeß in einem separaten, MMU-geschützten Adreßraum (die meisten embedded x86-Prozessoren haben integrierte MMUs). Für Java-Applets, die aus dem Web heruntergeladen wurden, ist dieses Maß an Schutz unnötig, da Java selber eine sichere Laufzeitumgebung bietet. Aber für System-komponenten, die nicht in Java implementiert sind, gewährleistet der Speicherschutz die Zuverlässigkeit des Systems, indem er diese Komponenten sicher gegeneinander abschottet. Das Endergebnis? Ein Internet-Gerät, das sowohl Java-Applets, als auch hoch-performante Applikationen im prozessor-spezifischen Binärformat unterstützt und dabei maximale Zuverlässigkeit bietet. Dank der Möglichkeit, POSIX (und damit auch Unix) Quellcode zu verwenden, können Hersteller von Internet-Geräten der Entwicklung von vielen neu aufkommenden Technologien - vom PC oder anderen Plattformen - mit minimalem Aufwand folgen. Natürlich kommen diese Technologien nicht alle aus der Unix-Welt; viele stammen aus der Windows-Welt. Daher arbeitet QNX Software Systems mit Award Software International (www.award.com) an einer Portierung des API-Access Toolkits, das es Entwicklern ermöglicht, Win32 Quellcode auf das QNX Echtzeitbetriebssystem zu portieren. Embedded Windowing-SystemUm die Vielzahl von grafischen Anwendungen unterbringen zu können, die vom Verbraucher erwartet werden, benötigt ein Internet-Gerät ein Windowing-System. Eine konventionelle Grafikbibliothek ist zwar klein genug, bietet aber nicht die Funktionalität, die komplexe Anwendungen wie z.B. Web-Browser benötigen. Andererseits verfügt ein konventionelles Desktop-Windowing-System zwar über die entsprechende Funktionalität, aber es benötigt zu viele Ressourcen, um kosteneffektiv zu sein! Es gibt einen Weg aus diesem Dilemma. Wir haben bereits gesehen, wie mit der Microkernel-Technologie eine Betriebssystem-Umgebung geschaffen werden kann, die komplette Funktionalität bei einem Minimum an Ressourcen bietet. Das gleiche ist auch für eine Windowing-Umgebung möglich. So ist z.B. die Photon microGUI von QNX ein skalier-bares Windowing-System mit einem "grafischen" Microkernel, das die Funktionalität eines "high-end" Windowing-Systems mit sehr wenig Speicherplatz bietet: etwa 500K in einer Konfiguration für ein Internet-Gerät. Eine 2+4 KonfigurationUm die benötigte Funktionalität für die Entwicklung eines Internet-Geräts zu vervollständigen, bietet die QNX/Photon-Laufzeit-Umgebung eine minimale TCP/IP-Implementierung, die nur ca. 50K belegt, sowie ein embedded Dateisystem für Flash-Speicher (oder rotierende Festplatten). Beide Dienste werden in Form von Prozessen hinzugefügt, die vom Betriebssystem-Microkernel verwaltet werden. Die kompletten Speicheranforderungen für diese Umgebung inklusive Betriebssystem, Windowing-System, Netzwerk, Dateisystem, HTML 3.2 Web-Browser, Email, Internet-Newsreader und einem persönlichen Informations-Manager (Termin-verwaltung, Adreßlisten, usw.) betragen weniger als 2MB Flash-Speicher und 4M RAM. Diese "2+4" Speicherkonfiguration ist offensichtlich weniger als das, was ein Desktop-Betriebssystem benötigt, um ähnliche Funktionalität zu liefern. Es ist auch wesentlich kleiner als das, was eine Java-Betriebssystem-Umgebung benötigt. Eine Demo dieser Software-Umgebung, die mehr Funktionalitäten bietet als die obige Konfiguration (und etwas mehr Speicherplatz benötigt) steht zum Download unter www.qnx.de/iat bereit.
Da das Internet-Gerät eine PC-kompatible Plattform sein kann, können Entwickler einen konventionellen Desktop-PC als Entwicklungs- und Prototyping-Plattform für das Endprodukt nutzen. Die erfor-derlichen Hardwarekomponenten können in einem PC installiert werden (z.B. ein Kabelmodem), und die Software-Entwicklung kann beginnen, während parallel dazu das Hardware-Team arbeitet. Um die Performance-Charakteristika des tatsächlichen Internet-Geräts besser modellieren zu können, haben Entwickler die Auswahl unter mehreren Evaluation-Boards von AMD, Intel oder National Semiconductor.
Durch Kombination von Hardware-Technologie aus der Welt des Desktop-PC's mit einer geeigneten embedded Software-Umgebung können Entwickler ohne weiteres einen Entwurf für ein Internet-Gerät realisieren. Bei steigenden Kundenanforderungen können zusätzliche Technologien der ständig wach-senden PC-Welt durch eine minimale Überarbeitung des Designs integriert werden. Diese Kombination von Eigenschaften erlaubt es einem vom PC abgeleiteten Internet-Gerät, die Kennzeichen eines kommerziell erfolgreichen Elektronik-Produktes für den Konsummarkt zu erreichen: kurze "Time-to-Market"-Zeit, niedrige Entwicklungskosten, minimales Risiko und die Fähigkeit, die neuesten Features und Technologien zu bieten, die von Verbrauchern erwartet werden. |
|
© 1999, QNX Software Systems
GmbH
|