Windows 10 IoT

Windows en miniature – Was steckt hinter Windows 10 IoT?

Microsoft hat im letzten Jahr mit großem Getöse „Windows 10 IoT“ vorgestellt. Eine Version – Windows 10 IoT Core – ist sogar auf der beliebten Bastelplattform „Raspberry Pi“ verfügbar. Was steckt nun hinter „Windows 10 IoT Core“?

Windows 10 IoT Core ist gratis für Bastler (Maker) verfügbar. Nach einer kostenlosen Lizenzierung kann es sogar professionell verwendet werden. Doch ist Windows 10 IoT Core ein echtes Windows? Wer den Raspberry Pi als PC-Ersatz einsetzen will, ist mit Windows 10 IoT Core schlecht beraten. Es gibt kein Startmenü und keinen Desktop. Lediglich eine einzige Anwendung läuft im Vordergrund.

Windows embedded heißt jetzt Windows IoT

Microsoft hat für seine „kleinen“ Betriebssysteme einen zeitgemäßen Namen gesucht und sich am großen Hype des „Internet of Things“ orientiert. Es gibt drei Versionen von Windows IoT:

  • Windows 10 IoT Enterprise
  • Windows 10 IoT Mobile Enterprise
  • Windows 10 IoT Core

Windows 10 IoT Enterprise ist eine Vollversion von Windows 10, die Microsoft für Industriegeräte angepasst hat.

Windows 10 IoT Mobile Enterprise hat Microsoft aus Windows 10 Mobile heraus entwickelt. Es läuft aktuell auf den Microsoft-Smartphones und ist auch für Handheld-Geräte wie intelligente Barcode-Scanner gedacht.

Windows 10 IoT Core ist die Windows-Edition für kleine und kostengünstige Geräte. Es gibt kein Startmenü und keinen Desktop, und lediglich Applikationen der Universal Windows Platform (UWP) werden unterstützt. Da es nur für sehr einfache Geräte gedacht ist, ist auch hier nur maximal eine Vordergrund-App aktiv; jedoch können mehrere Hintergrund-Apps gleichzeitig laufen. Auch wenn das Betriebssystem sehr klein ist, erfüllt es keine Echtzeitanforderungen. Es ist für Geräte ohne oder mit sehr einfacher grafischer Oberfläche geeignet, jedoch auch für Anwendungen mit anspruchsvoller Benutzeroberfläche einsetzbar. Es unterstützt ARM- sowwie x86-Prozessoren.

Von IoT Core gibt es zwei Versionen:

  • Windows 10 IoT Core
  • Windows 10 IoT Core Pro

Windows 10 IoT Core

Worin unterscheiden sich die beiden Core-Versionen? „Windows 10 IoT Core“ empfängt über eine Internetverbindung automatisch Updates, die beim „Windows 10 IoT Core Pro“ über die Windows Server Update Services verteilt oder sogar komplett abgestellt werden können. Die normale Core-Version ist für Privatpersonen lizenzfrei. Ein kommerzielles Produkt auf Basis von Windows 10 IoT Core benötigt eine entsprechende Lizenz, diese erteilt Microsoft jedoch gebührenfrei. Die Pro-Version muss über einen offiziellen Distributor lizenziert werden.

Einige herausstechende Merkmale sind:

  • Skalierbarkeit – Die einheitliche Windows-Plattform (UWP) ist auf jedem Windows verfügbar. Es gibt ein einheitliches Treibermodell, und die Hardware ist preiswert. Die Nutzung von weit verbreiteten Entwicklungswerkzeugen senkt die Eintrittsbarriere.
  • Konnektivität – Alles was üblich ist, wird von Haus aus unterstützt: Wi-Fi, Ethernet, USB, GPIO, I2C, SPI. Auch der im IoT-Bereich gängige AllJoyn-Standard ist enthalten.

In Sachen Sicherheit hat Windows 10 IoT Core ebenso einiges zu bieten: Address Space Layout Randomization (ASLR), Data Execution Prevention (DEP), Control Flow Guard, Unterstützung des Trusted Platform Module (TMP), Secure Boot, BitLocker und Windows Update.

Auch die Wartung ist einfach: Das Betriebssystem und künftig auch die Applikationen werden durch automatische Updates aktuell gehalten. Weiterhin gibt es einen Remote Client und die Möglichkeit, mithilfe der Windows Powershell administrative Aufgaben automatisiert zu erledigen.

Im System ist die Cloud-Anbindung eingebaut. Es bietet volle Netzwerk-Konnektivität und eine Verbindung mit den Azure-IoT-Services.

Die unterstützte Hardware ist weit verbreitet, auch wenn nicht viele Boards aufgelistet sind: Raspberry Pi 2 und 3 (ARM), MinnowBoard Max (x86) und DragonBoard 410c (ARM). Die Hardware-Anforderungen sind moderat: Benötigt werden 256 MB RAM (Geräte ohne Display) bzw. 512 MB RAM (Geräte mit Display unter Nutzung des Windows Video-Subsystems). Die Hälfte des Speichers wird jeweils vom Betriebssystem belegt. Dazu kommen noch 2 GB Speicher auf einer SD-Karte. Der Prozessor muss mit 400 MHz oder schneller takten (ein x86 benötigt PAE, NX und SSE2 Support).

Universal Windows Platform (UWP)

Was die Entwicklung für Windows 10 IoT so interessant macht, ist die Universal Windows Platform (UWP) – eine Laufzeitumgebung, die auf allen Windows 10-Geräten verfügbar ist. Dabei ist es egal, ob es sich um einen PC oder ein IoT-Device handelt. Die Software-Entwicklung für die UWP-Plattform ist in verschiedenen Sprachen möglich: Node.JS, Python, VB, C++, C# und Arduino Wiring (nur IoT Core).

Damit können systemübergreifende Bibliotheken einmal kompiliert und dann auf alle Geräte verteilt werden. Entwicklungszeit wird eingespart, und die Entwicklungsumgebung ist für alle Geräte dieselbe. Die Applikationen können im Simulator oder remote auf dem Ziel-Device ausgeführt und gedebuggt werden.

Fazit

Windows 10 IoT Core ist ein interessantes Betriebssystem für kleine Geräte, die mit dem Internet verbunden sind. Die einheitliche Entwicklungsplattform spart Zeit. Es ist weniger Spezialwissen nötig als für andere Systeme. Auch sind hier andere Dienste enthalten, wie automatische Updates, die sonst selbst entwickelt werden müssen.

Weiterführende Informationen

MicroConsult Fachwissen zum Thema Softwareentwicklung

MicroConsult Training & Coaching zum Thema Softwareentwicklung

Veröffentlicht von

Frank Listing

Frank Listing

Seit 2002 ist Frank Listing Trainer und Projektcoach bei MicroConsult; seine Schwerpunkte sind Microsoft-Plattformen, Software-Architekturen, objektorientierte Programmierung und Testen von Embedded-Systemen. Außerdem ist er Spezialist für die Themen C++, C#, Finite State Machines, Clean Code und .NET. Sein Wissen gibt er regelmäßig in Publikationen und Fachvorträgen z.B. auf dem Embedded Software Engineering (ESE) Kongress weiter.