# Microsoft Windows CE

Windows CE ist eine Betriebssystemlinie von Microsoft und für eingebettete Systeme, Thin Clients und Handhelds vorgesehen. Das Betriebssystem basiert auf keiner anderen Windows-Version und ist keine „verkleinerte Version“.
Die grafische Benutzeroberfläche kann, je nach Zusammenstellung des Herstellers, einer von Windows NT gleichen oder an kleine Bildschirme sowie den Einsatzzweck angepasst sein. Eine Win32-API ist auf beiden Plattformen vorhanden, so dass es theoretisch möglich wäre, Quelltext für beide zugleich zu entwickeln. In der Realität funktioniert dies aber meist nicht so einfach, da es tiefgreifende Unterschiede gibt, die die Portierung von x86-Windows-Software sehr aufwändig machen können.
Nk.exe ist der Kernel von Windows CE, der völlig unabhängig von Windows NT von Grund auf neu entwickelt wurde. Windows CE basiert nicht auf einer der anderen Windows-Varianten (9x- oder NT-basiert) und ist keine „verkleinerte Version“ davon. Zwischenzeitlich unterstützte das Betriebssystem rund ein Dutzend Prozessorarchitekturen.
Im Unterschied zu DOS- oder NT-basierten Windows-Systemen wurde Windows CE in Hinblick auf Echtzeitfähigkeit entwickelt. Die Echtzeiteigenschaften hängen jedoch von einer Vielzahl von Faktoren ab, die dazu führen, dass die Echtzeitfähigkeit in der Praxis nicht zweifelsfrei vorhanden ist. Zu diesen Faktoren gehören die Eigenschaften der Zielarchitektur, Unterstützung durch Hardware und Treiber sowie vor allem die Schwierigkeit der Verifizierbarkeit von Echtzeitfähigkeit. Echtzeitfähigkeit ist nur für eine sehr stark begrenzte Zahl von Plattformen unter bestimmten Voraussetzungen teilweise anhand heuristischer Methoden überprüft worden, so dass es nicht möglich ist, von allgemeiner Echtzeitfähigkeit im Zusammenhang mit Windows CE zu sprechen.
Die Buchstaben „CE“ sind keine Abkürzung, sondern Andeutung einer Vielzahl von Konstruktionsgrundsätzen wie Kompaktheit, Kompatibilität (englisch compatibility) und Effizienz (englisch efficiency). Mit Version 6.0 erweiterte Microsoft den Namen zu Windows Embedded CE und mit Version 7 wurde das System zu Windows Embedded Compact umbenannt, damit es sich einheitlich in die Produktlinie Windows Embedded der Betriebssysteme von Microsoft für eingebettete Systeme einfügt.
Eine weitere CE Umbenennung wurde ab 2002 als Microsoft Windows Mobile vermarktet. 2010 wurde eine CE-Variante mit spezieller Benutzer-Oberfläche Windows Phone 7 genannt. Auch Windows Automotive ist ein weiterer von der Marketingabteilung erdachter Name für Windows CE.

## Märkte

Obwohl die Ausrichtung von Windows CE auf industrielle Anwendungen wegen seiner Auslegung als Echtzeitbetriebssystem offensichtlich ist, wird es von der Öffentlichkeit eher als Betriebssystem für Mobilgeräte wahrgenommen. In diesem Massengeschäft war die Werbung von Microsoft zur Markteinführung auch am intensivsten.
Speicherprogrammierbare Steuerungen auf der Basis von Windows CE gibt es beispielsweise von Beckhoff Automation und Siemens.
Thin Clients mit Windows CE gibt es seit 1998.

## Betriebssystem

Windows CE wurde speziell für die Verwendung in Klein- und Kleinstcomputern, insbesondere für Industrie-, Automotive- und mobile Geräte, entwickelt. Es stellt die Basis für weitere Betriebssysteme für eingebettete Systeme dar, zum Beispiel Pocket PC oder Windows Mobile. Diese Systeme sind Spezialisierungen und Erweiterungen von Windows CE und sind deshalb mit diesem nicht gleichzusetzen.
Es gibt keine einheitliche Version von Windows CE. Windows CE kann auf unterschiedlichen Plattformen mit verschiedenen Eigenschaften laufen. Ein Entwickler nimmt hierzu den Microsoft Plattform-Builder und stellt sein individuelles Betriebssystem zusammen: mit oder ohne grafischer Oberfläche, Kommandozeile, mit Bluetooth-Unterstützung usw. Die Lizenzkosten pro ausgeliefertem Gerät mit Windows CE schwanken entsprechend zwischen 3 und 16 Dollar. Die für die Entwicklung von Anwendungen für die verschiedenen Windows CE bzw. Windows Mobile Plattformen benötigten Werkzeuge („Embedded Visual Tools“) und SDKs stellte Microsoft bis CE-Version von 2002 kostenlos zur Verfügung. Eine wesentlich umfassendere, kostenpflichtige Entwicklungsumgebung ist Microsoft Visual Studio.

### Varianten

Windows Mobile for PocketPC, ehemals „Microsoft Pocket PC“, erweitert die Funktionalität von CE um typische Anwendungen für Taschencomputer wie Terminkalender oder Adressverwaltung. Die Benutzeroberfläche orientiert sich dabei an derjenigen von Windows, wurde allerdings speziell für die Verwendung auf Taschencomputern angepasst.
Windows Mobile for PocketPC Phone Edition ist eine Variante, die ein im PDA integriertes Telefonie-Modul (wie GSM oder 3G/UMTS) unterstützt. Es gibt also zusätzlich eine Empfangsanzeige, die Telefon-Anwendung, eine SMS-/MMS-Erweiterung für die E-Mail-Applikation (die bei normalen PocketPCs via Bluetooth oder IrDA kommuniziert) und diverse zusätzliche Schnittstellen.
Windows Mobile for Smartphones, ehemals „Windows Smartphone“, ist die CE-Variante für Mobiltelefone. Im Gegensatz zu Windows Mobile for PocketPC Phone Edition haben die mit diesem System ausgestatteten Geräte keinen Touchscreen, meist ein kleineres Display und eine Ziffern-Tastatur. Sie ähneln also mehr einem üblichen Mobiltelefon als einem PDA.
Obwohl der Name des Betriebssystems mittlerweile (fast) gleich ist, gibt es erhebliche Unterschiede zwischen Windows Mobile for PocketPC (Phone Edition) und Windows Mobile for Smartphones. Dadurch laufen die meisten Programme, die für die Betriebssystemvariante für Pocket PCs geschrieben wurden, nicht auf Smartphones und umgekehrt. Microsoft ist aber bestrebt, die Systeme wieder langsam zusammenwachsen zu lassen. So gibt es in Windows Mobile 5 beispielsweise die von den Smartphones bekannten Softkeys (zwei Tasten mit im Display angezeigter Funktion) und die Möglichkeit, nur signierte Programme ausführen zu lassen oder vor der Ausführung von unsignierten Anwendungen zu warnen.

## Lizenz-, Vertriebs- und Entwicklungsmodell

Windows Embedded CE unterscheidet hinsichtlich seiner Verwendung deutlich von den klassischen Windows-Betriebssystemen. Ein Windows-CE-System lässt sich aus Sicht des Benutzers nicht als Allzwecksystem betrachten, auf dem beliebige Anwendungssoftware installiert werden kann. Es stellt vielmehr eine Komponente eines fertigen Produkts dar. Mit dieser Komponente hat der Anwender im Einzelnen nichts mehr zu tun. Aus diesem Grund bestehen keinerlei Verpflichtungen seitens Microsoft, Erweiterungen und Aktualisierung für Endkunden anzubieten. Allein der Integrator des Betriebssystems ist für die Pflege des Produkts verantwortlich.
Das Vertriebsmodell, das Microsoft bevorzugt, besteht aus einer flachen Hierarchie von Unternehmen. Es gibt zunächst nur eine kleine Zahl von Distributoren, die Entwicklungswerkzeuge bereitstellen und die Lizenzen an Unternehmen verkaufen dürfen. Diese Unternehmen erstellen ein Image für die Hardware, auf der das System laufen soll. Alternativ können sie ein Drittunternehmen beauftragen, das eine vom Unternehmen geschriebene Anwendung für den besonderen Zweck des Produkts integriert. Das Image und die Hardware bilden ein einheitliches System, das als fertiges, in seiner wesentlichen Funktion unveränderliches Produkt an den Kunden ausgeliefert wird.
Windows CE ist aus lizenzrechtlicher Sicht ein Baukasten für ein Betriebssystem. Es gibt keine generische Variante von Windows CE. Jedes produktiv eingesetzte Windows CE ist eine speziell für den jeweiligen Zweck zusammengestellte Version des Systems.

## Besondere Verwendung

Für Sega Dreamcast gibt es eine besondere Version von CE, welche das Portieren von Spielen auf die Konsole von einem PC oder einem Laptop vereinfachen soll. Das Betriebssystem wird dabei jeweils von der Spiele-GD geladen, weshalb es mehrere Versionen für die Dreamcast gibt.

## Geschichte

Obwohl Windows CE von Grund auf neu entwickelt wurde, hat es eine Vorgeschichte, die ihren Ursprung ab 1992 in den Betriebssystemerweiterungen für Windows 3.1 und Windows 3.11 (Windows für Pen Computing) und Windows 95 (Pen Services for Windows 95) hat.

### Vorgeschichte als Betriebssystemerweiterungen für Windows 3.1 und Windows 95

Windows für Pen Computing ist eine Erweiterung von Windows 3.1x, die auf die Eingabe mittels Lichtgriffel ausgelegt war und auf Tablet-PCs ausgeführt wurde. Die Bedienung zeichnete sich hauptsächlich dadurch aus, dass sie Funktionen wie trainierbare Handschrifterkennung und Gesten einführte. Ein besonderes Schreibfenster, eingeteilt in Zellen, nimmt pro Zelle ein Zeichen auf, wandelt die Handschrift in Text um und sendet diesen an die korrespondierende Anwendung. Die Stiftpalette wird minimiert geöffnet und erkennt Zeichen und Gesten für Anwendungen, die selbst keine Stifteingabe unterstützen. Teil der Erweiterung ist auch eine Bildschirmtastatur, die eine normale Standardtastatur auf dem Bildschirm darstellt und mit Stift oder Maus bedient werden kann. Die Systemerweiterung fügt dem Programm-Manager eine neue Gruppe „Microsoft Pen Tools“ hinzu und verändert Windows-Systemdateien, u. a. den Windows-Startbildschirm, aber auch DLL- und EXE-Dateien und fügt bestehenden Anwendungen, die Bestandteil von Windows sind, eigene Hilfedateien hinzu, die die Bedienung mit der Stifteingabe beschreiben. Windows für Pen Computing ist in mindestens zwei Unterversionen für Windows 3.1 und Windows 3.11 bekannt, wurde u. a. von IBM Corporation 1993 auf drei 1,44-MB-Disketten veröffentlicht und benötigt neben den Pen-Tools zusätzlich die Gerätetreiber für den Lichtgriffel.
Nachdem Compaq 1994 seine Pläne, einen PDA auf Grundlage dieses Betriebssystems herauszubringen eingestellt hatte, wurde die Entwicklung unter Beteiligung von Kooperationspartnern eingestellt. Es folgte zwar für das nachfolgende Betriebssystem noch „Pen Services for Windows 95“, aber ohne Beteiligung von Kooperationspartnern und lizenziert ebenfalls nur an OEM-Kunden. Da diese Konzepte langfristig nicht erfolgreich waren, kam ab September 1996 das eigenständige Betriebssystem Windows CE als Nachfolger auf den Markt.
Es gab noch einen weiteren Versuch, mobile Geräte zu unterstützen. 1994 wurde das als Nachfolger der Pen Services gedachte Projekt Winpad OS auf unbestimmte Zeit verschoben, da die Marktentwicklung noch nicht absehbar war. Die Entwicklung von Windows CE ist damit also der dritte Versuch von Microsoft, im PDA-Markt Fuß zu fassen und erklärt auch, weshalb Windows CE noch deutlich zwischen Handheld-PC und einem normalen PDA (zeitweise von Microsoft auch als „Palm PC“ und Palm-Size PC, später Pocket PC bezeichnet) unterschieden hat. Handheld-PCs wie einige Modelle aus der Jornada-Reihe von HP waren ein ganzes Stück größer und verfügten über ein deutlich größeres Display, als die nur handflächengroßen PDAs. Hauptunterschied war jedoch eine physisch vorhandene Tastatur, bei PDAs wird diese auf dem Bildschirm eingeblendet (nur wenige Pocket-PC-Modelle verfügen zusätzlich über eine integrierte Tastatur).

### Windows CE als eigenständiges Betriebssystem

Bereits in Windows CE Version 1.0 (1996) war es möglich, rudimentäre Multimedia-Funktionen zu nutzen. Mit Version 2.0 (1998) war es dann möglich, Farbdisplays mit bis zu 65.536 Farben (High Color) anzusteuern. Von Beginn an setzte Microsoft darauf, diese Geräte auch in Netzwerke einzubinden und viele Erweiterungen zu ermöglichen.
Traditionellerweise teilt sich der Speicher der Geräte in Datenspeicher und Speicher zum Ausführen von Programmen auf. Waren in der ersten Generation noch 8 MiB Gesamt-Speicher üblich, wuchs dieser bereits in der zweiten Generation auf bis zu 128 MiB, der sich im laufenden Betrieb aufteilen ließ.
Mit der Einführung der Version 2002 kamen auch erste Geräte auf den Markt, die reale Auflösungen von 640 × 480 Pixeln (VGA) auf einem 3,5-Zoll-Display darstellen konnten.
Die Pocket-PC-Plattform wird ab der Version 2002 massiv für den Massenmarkt optimiert. Dazu gehört es auch, viele für den Fachmann sinnvolle Funktionen, wie das Beenden von Anwendungen, Kontrolle über Netzwerk usw. entweder zu unterbinden, verbieten oder hinter „benutzerfreundlichen“ Schichten zu verstecken.
Ebenfalls mit der Version 2002 wurde der „Connection Manager“ eingeführt, der die vollständige Kontrolle über jede Netzwerkverbindung (LAN, DFÜ usw.) übernimmt und vieles automatisieren soll.
Einige der neuen Automatismen arbeiten jedoch nicht im Sinne besonders professioneller Benutzer, können aber trotzdem nicht immer umgangen werden.
Ein Problem der gesamten Pocket-PC- und Windows-CE-Familie ist prinzipbedingt, dass sich die Prozessoren der einzelnen Geräte deutlich voneinander unterscheiden, so dass es nicht möglich ist, ein Programm, das für einen CPU-Typ geschrieben wurde, auf einem anderen ausführen zu können. Zwar ist ab der Version 2002 die Pocket-PC-Plattform nur noch als ARM-Variante verfügbar, aber viele alte Programme werden nicht mehr aktualisiert und stehen deshalb teilweise trotzdem nur für MIPS o. ä. zur Verfügung. Die Ausführung von Anwendungen anderer Windows-CE-Plattformen, wie Handheld-PC auf Pocket PCs, ist ebenfalls – meist aufgrund spezifischer Erweiterungen der jeweiligen Plattform – nicht möglich. Seit Windows CE .NET ist auch die Ausführung von verwalteten Programmen (.NET-Plattform, weitestgehend systemunabhängig) möglich. Dies wird durch das .NET Compact Framework – einer abgespeckten Variante des .NET Frameworks – ermöglicht.
Nachdem Microsoft durch unterschiedliche Namen für ähnliche Windows-CE-Systeme für Verwirrung gesorgt hatte, erkannte es 2004, dass eine Rückbesinnung auf das alte Namenssystem sinnvoll ist. Windows CE 5.0 erhielt neben neuen Schnittstellen und integrierten WLAN-Funktionen, auch erstmals eine Unterstützung von 3D-Grafikchips.
Eine der wichtigsten Änderungen, die Windows CE 5.0 mitbringt, betrifft den Speicher: Der interne Datenspeicher befindet sich nicht mehr im flüchtigen RAM, sondern als sogenannter Persistent Storage im Flash-ROM, was nun vor Datenverlust schützt, wenn die Akku-Energie aufgebraucht ist. Außerdem lässt das nunmehr modular aufgebaute Betriebssystem im ROM erstmals ein selektives Update zu und muss nicht mehr komplett geflasht (überschrieben) werden, wenn der Hersteller bzw. OEM Bugfixes, Verbesserungen oder Ergänzungen anbieten will.

## Versionsübersicht

| Version | Freigabe | Supportende | Änderungen |
| Windows CE 1.0 | November 1996 | | |
| Windows CE 1.01 | Juni 1997 | | |
| Windows CE 2.0 | September 1997 | September 2005 | Gliederung in Module, aus denen der Gerätehersteller wählen kann |
| Windows CE 2.10 | März 1998 | | |
| Windows CE 2.11 | Juli 1998 | | |
| Windows CE 3.0 | Februar 2000 | Oktober 2007 | Echtzeit mit 256 statt 8 Prioritätsstufen und einstellbarem Quantum |
| Windows CE .NET 4.0 | Oktober 2001 | Juli 2012 | |
| Windows CE .NET 4.1 | Juni 2002 | Januar 2013 | |
| Windows CE .NET 4.2 | Februar 2003 | Juli 2013 | |
| Windows CE 5.0 | Juli 2004 | Oktober 2014 | |
| Windows Embedded CE 6.0 | September 2006 | April 2018 | Neuer Systemkern, bis zu 32.000 Prozesse mit einem Adressraum von jeweils 2 Gigabyte |
| Windows Embedded CE 6.0 R2 | September 2007 | | |
| Windows Embedded CE 6.0 R3 | September 2009 | | |
| Windows Embedded Compact 7 | März 2011 | April 2021 | |
| Windows Embedded Compact 2013 | Juni 2013 | Oktober 2023 | Explorer wurde entfernt und durch eine minimale grafische Oberfläche ersetzt |