This week at Microsoft's WinHEC 2015 conference in Shenzen, Microsoft announced new details in support of the developing IoT market. Microsoft previously announced support for the Raspberry Pi 2 with a customized version of Windows 10, and they have now provided a bit more information about Windows 10 in general.

The primary information provided by Microsoft is that there will be an entirely new edition of Windows 10, "Windows 10 IoT", using a similar postfix notation as the ill-fated "Windows 8 RT". However, within Windows 10 IoT there are three classes: industry devices, mobile devices, and small devices. This could be the eventual official names of Stock Keeping Units (SKUs) for Windows 10 IoT, but Microsoft was careful not to use the SKU term yet.

All three classes of Windows 10 IoT support universal apps and drivers. This extends the deployment options of a single app from desktops, laptops, tablets, game consoles, TVs and augmented reality (Holo Lens), all the way to IoT devices. The idea of a single app running on all these targets is quite impressive if it can be done well. While one app might not need to be on every type of device, it at least implies the development experience for each target is similar therefore lowering the barrier to entry.

Windows 10 IoT for industry devices has identical requirements to traditional 32-bit Windows 10: x86 processor, 16 GB storage and 1 GB RAM. Therefore it will be interesting to see what software tweaks are provided in Windows 10 IoT for industry devices that differentiate it from traditional Windows 10. Microsoft has not yet provided any details about this, but alludes to deeper integration with cloud services, security, and machine to machine connectivity. Microsoft mentions targeting medical devices, robotics, and other smart machine applications. From my own perspective, many of these devices already run Linux or real-time operating systems such as VxWorks so this could be an uphill battle.

Windows 10 IoT for mobile devices is a subset of functionality. It excludes the desktop shell but keeps the all modern interface introduced in Windows 8, then further reduces storage needs to 4 GB and memory to 512 MB. Microsoft also limits it to only ARM processors, which is quite surprising considering that Windows 10 for small devices works on ARM or x86 processors. Also, the overlap with Windows Phone is considerable, and considering the rumors of x86 support in Windows 10 for phones, Windows 10 IoT for mobile devices is quite an enigma at the moment.

Finally, Windows 10 IoT for small devices drops the shell entirely but maintains universal app compatibility. This might imply that there is no way to interact with the operating system while running an app, such as a kiosk experience for Point of Sale (PoS) or media center devices. Microsoft's own documentation states "To keep storage and memory costs low, this edition of Windows 10 does not include a Windows start experience or in-box apps. Instead, the device maker builds the device experience as a Windows universal app and configures the device to launch that app at boot, giving the device developer complete control over the device experience." Requirements drop down to 256 MB of RAM and 2 GB of storage. As mentioned above, x86 and ARM processors are supported.

Microsoft also announced that Windows 10 IoT for small devices will be free for makers and commercial device builders. The language used is quite specific and it appears to rule out deploying Windows 10 IoT for small devices internally within a company.

Finally, Microsoft's supplied graphic highlighting three compatible small devices includes the Raspberry Pi 2, an Intel Atom development board, and the Qualcomm DragonBoard 410c. The processors in each are ARMv7, x86, and ARMv8 respectively.

Unfortunately many questions remain. We look forward to Microsoft providing more details and evaluation units in the future.