Windows 10 IoT Core, introduced in 2015 by Microsoft, is a license free operating system for low cost and small footprint devices (e.
g. IoT Gateways). It is used for the inter-action of sensors and peripherals and ensures the integration of cloud computing services of Microsoft Azure and other platforms. In general, Windows 10 IoT Core has no shell and can run on various microprocessors like the ARM Cortex A7 or the Intel AT-OM 64bit.
~cite{WinTechnicalOverview} So the supported architectures are x86 and ARM and the kernel can be a microkernel or monolithic. The scheduling of Windows 10 IoT Core is preemptive. There is the possibility to change the properties of tasks and to create, delete, run and stop tasks.
(Source Scheduling) The CPU must be single-core and have a minimal processing power of 400 MHz. Windows 10 IoT Core can access the General Input Output (GPIO) pins of the hardware directly. However, the official hardware support is limited because the only supported boards are the Raspberry Pi 3, Raspberry Pi 4, Dragon Board 410c and Minnow Board MAX. These are low cost computing platforms which provide lots of functionalities (e.g.
USB, video networking). The Dragon Board also provides RTC, GPS and Wi-Fi.~cite{Bell:2016:WIT:3036053} A RAM of 256 MB is needed without an user interface, 512 MB with one and the minimum storage counts 2 GB.~cite{WinSheet} That is the reason why Windows 10 IoT Core hardware requirements belong to Class 2 regarding the terms of Internet Engineering Task Force.~cite{ClassesIETF}
ewlineWindows 10 IoT Core uses the Universal Windows Platform UWP and supports universal and console applications. The UWP is an API that enables the development of applications which can run on any supported hardware without having to change the code.
So, the concept behind should be if you write your code once you can run it everywhere. However, the problem is that existing software is not adapted for Windows 10 IoT Core and customizations are necessary. Windows 10 IoT Core also offers the Arduino Wiring API and the possibility to sent data to Microsoft Azure.~cite{7753246} It supports several programming languages such as C++, JS, Python, C# but there is no real-time support.
In addition, it comes with new APIs and (windows universal) drivers for microcontrollers. The access to busses is established by GPIO, SPI and I2C to facilitate application development.~cite{BigReboot} Therefore there is the tool Microsoft Visual Studio 2015. Windows 10 IoT Core supports of course wireless technologies like BLE, Wi-Fi, MBB, wired technologies like USB or Ethernet as well as Frameworks like HTML, .NET Framework or DirectX.
But there are only little documented functions and libraries. In addition, it offers technology updates and an integrated Firewall for security purposes.~cite{WinTechnicalOverview}
ewlineWindows 10 IoT Core supports a variety of protocols. Unfortunately, the information content is limited caused by the documentation of the OS. Standard protocols like IPv6 (Source IPv6), TCP and UDP (Source TCP) are supported, the near field communication NFC as well (Source NFC). Websockets are possible to enable the interaction between the browser and a webserver (Source Websockets) In addition, the protocols CoAP (Source CoAp) and Zigbee (Source Zigbee) are supported in some projects too.
ewlineThere are also other versions of IoT operating systems developed by Microsoft: Windows 10 IoT Mobile Enterprise and Windows 10 IoT Enterprise.
They have for example a shell and bigger memory requirements according to more complex devices. They also offer more functionalities.~cite{WinTechnicalOverview}