Windows Embedded CE 6.0 Aktuelle Windows CE-Version mit neuer Kernel-Architektur

Autor / Redakteur: Rudi Swiontek* / Martina Hafner

Ein offengelegter Kernel, ein neues Treibermodell und maximal 32.000 simultane Prozesse – das sind zusammengefasst die wesentlichen Neuheiten in Microsofts neuer Version des Betriebssystems Windows Embedded CE 6.0. Außerdem steht eine Integration mit der Entwicklungsumgebung Visual Studio 2005 Professional für Embedded-Software-Entwickler zur Verfügung.

Firma zum Thema

( Archiv: Vogel Business Media )

Für Windows Embedded CE 6 hat Microsoft nach eigenen Angaben die gesamte Kernel-Architektur umgeschrieben, so dass nun mehr Prozesse simultan ablaufen können. Es lassen sich statt bisher 32 nun bis zu 32.000 Prozesse gleichzeitig ausführen. Dabei kann jeder der Prozesse auf einen virtuellen Speicherbereich von 2 GByte zugreifen. Damit können Embedded-Software-Entwickler mit Windows Embedded CE komplexe Applikationen entwickeln, um etwa ausgefeiltere Multimedia- oder Webfunktionen anzubieten.

Wie in Bild 1 gut zu erkennen ist, gelangen bei Windows CE 5.0 alle Systemcalls zuerst in den Kernel und werden dort validiert. Anschließend erfolgt der entsprechend Aufruf in den Serviceprozess. Nach Beendigung des Aufrufes erfolgt der Return in umgekehrter Reihenfolge. Der Aufruf durch mehrere Prozesse wird durch sogenannte PSL-(Protect-Server-Libraries-)Aufrufe realisiert.

Bildergalerie

Diese Technik und vorgehensweise ist zeitaufwendig. In Bild 2, Windows Embedded CE 6.0, kann nun der Aufruf in den Serviceprozess direkt auf Kernel-Ebene realisiert werden. Dadurch sind die Systemcalls viel schneller als in der Vorgängerversion des Betriebssystems.

Visual Studio und Windows Embedded CE im Paket

Eine weitere Neuerung: Ab sofort wird Visual Studio 2005 Professional als Teil von Windows Embedded CE 6.0 ausgeliefert. Der Platform Builder, eine auf Embedded-Systeme abgestimmte integrierte Entwicklungsumgebung, ist als Plug-In in Visual Studio 2005 Professional eingebunden. Der Embedded-Software-Entwickler hat somit eine gesamte Entwicklungskette in einem einzigen, benutzerfreundlichen Werkzeug für Applikations- und Geräteentwicklung zusammengeführt.

Gerätehersteller haben im Rahmen der Windows-Embedded-CE-Shared-Source-Initiative auch Zugriff auf den Quellcode von Windows Embedded CE 6.0. Auf der Basis des Betriebssystems erstellte Entwicklungen bleiben dabei Eigentum des Herstellers.

Windows Embedded CE für unterwegs, am Arbeitsplatz und zu Hause

Mit der neuen Version adressiert Microsoft die Entwicklung spezifischer Applikationen kategorisiert in:

  • Windows CE unterwegs: Durch die Integration neuer Kernkomponenten für die Daten- und Sprachkommunikation unterstützt Windows Embedded CE 6.0 den Aufbau von Datenverbindungen und Sprachanrufen über Mobilfunknetze. Dadurch können Verbindungen für Maschine-zu-Maschine-Kommunikationsszenarien für Geräte wie beispielsweise Parkuhren, Verkaufsautomaten und Navigationsgeräte mit GPS entwickelt werden.
  • Windows CE am Arbeitsplatz: in Windows Embedded CE 6.0 sind Komponenten für die Entwicklung von Projektoren enthalten, die die in Windows Vista enthaltene drahtlose Übertragung der Desktop-Umgebung nutzen.
  • Windows CE zu Hause: Die neuen Version bietet Multimedia-Funktionen für die schnellere Entwicklung von vernetzten Multimediageräten, digitalen Videorekordern und IP-Set-Top-Boxen.

Neues Treibermodell in Windows CE mit Kernel- und User-Mode

Windows Embedded CE 6.0 beinhaltet ein neues Treibermodell. In den Vorgängerversionen liegen die Gerätetreiber hauptsächlich im device.exe-Prozeß. device.exe ist ein Prozess mit den gleichen Adressraumbeschränkungen. Er verwaltet, administriert und entkoppelt die Treiberaufrufe zwischen der Anwendung, dem Treiber, dem Filesystem und dem Kernel. Korrupte Treiber können den device.exe Prozess beenden.

Die neue Kernel-Architektur des Betriebssystems stellt mehr Flexibilität und zwei unterschiedliche Treibermodelle zur Verfügung. Die alte device.exe-Funktionalität wurde in den Kern verschoben und ein neuer User-Device-Prozess (udevice.exe) eingeführt. Durch diese Änderung ergeben sich zwei unterschiedliche Treibermodelle, Kernelmode- und Usermode-Treiber.

BSP-Entwickler müssen wählen, wie jeder ihrer Treiber auf einer bestimmten Plattform implementiert werden soll. Kernelmode-Treiber werden durch device.dll innerhalb des Kerns geladen. Dieses Verhalten ähnelt dem alten device.exe-Modell. Der große Gewinn hier liegt in der Leistung, die zeitintensiven Interprozessaufrufe wurden beseitigt.

Der Kernel beinhaltet das Dateisystem und die Gerätetreiber. Die Kernelmode-Treiber von Windows Embedded CE sind jetzt ein Teil des Kernels. Sie haben volle Privilegien für den gesamten Kerneladressbereich. Ein defekter Treiber könnte demnach den Kernel und mit ihm das gesamte System zum Absturz bringen. Folglich müssen diese Treiber robust sein.

Hohe Leistung versus geschütztem Treibermodus

Windows CE 6.0 stellt im Treibermodell ferner einen neuen Mechanismus zum Laden von Usermode-Treibern in die einzelnen Usermode-Prozesse (udevice.exe) zur Verfügung. Diese Treiber können keine priviligierten Befehle (VirtualCopy oder Hardwarezugriffe) aufrufen. Dadurch sind sie eingeschränkt.

Microsoft hat das Benutzermodus-Treibermodell entworfen, um einen sehr hohen Grad der Kompatibilität mit Kernelmode-Treibern zu haben. Es gibt sehr wenige Unterschiede zwischen den zwei Treibermodellen. Ein Treiber, der für den Usermode geschrieben wurde, kann im Kernel ohne Änderungen geladen werden. Ein neuer Kerneltreiber, Reflektor, stellt ein Interface zwischen Usemode und Kernelmode zur Verfügung.

Es ist einfach, einen Treiber im User-Mode anstelle des Kernelmoduses zu laden. Hierfür existiert ein Registry-Eintrag, wohin der Treiber zu Laden ist. Defekte Usermode-Treiber können zum Absturz des Usermode-Prozesses führen, der Rest des Systems sollte intakt bleiben.

BSP-Entwickler haben jetzt mit Windows Embedded CE 6.0 also die Wahl zwischen einer hohen Leistung der Kernelmode-Treiber und einem geschützten Usermode-Treiber. Treiber von Zulieferfirmen, die nicht gut getestet sind, können in den Usermode geladen werden um die Systemsicherheit und Robustheit zu erhöhen. Später, wenn sie ausgetestet sind, lassen sie sich in den Kernelmode verschieben.

*Rudi Swiontek ist Diplominformatiker und bei der Firma Hilf Microcomputer-Consulting für Schulung und Entwicklung zuständig. Kontakt: rswiontek@hilf.de

(ID:205000)