Microsoft is looking to deliver the shipping version of Windows 10 soon and embedded developers need to take note. It may not have a major impact in the smartphone space, but it definitely will in its primary markets including tablets, laptops, and desktops where it is dominant in two out of three (Fig. 1).
Windows 10 will obviously be a target for the control side of Internet of Things (IoT) applications, although a significant number of these control applications will target Android and iOS since the smartphone is the favorite demo platform of IoT companies. Windows 10 delivers even better security, which has finally become a critical part of the IoT discussion.
Microsoft Windows 10 will have an embedded counterpart just like prior versions of Windows. Windows Embedded Standard in its various forms—Windows Embedded 8 is the latest (see "Windows Embedded 8.1 Arrives")—have been used on embedded applications for years. They provide the same functionality as a standard version of Windows, allowing developers to include only those modules and applications needed for a project. The embedded version tends to lag the consumer release, but not by much and more to make sure all the pieces are working so developers are not dealing with tools that still have rough edges. Of course, early access via the Microsoft Developer Network (MSDN) lets developers get their hands on things beforehand.
Many of the new Windows 10 features target the general user. The Start menu has returned and those full-screen Metro apps can now reside in a window. These are more acknowledgements of how important desktop/laptop users are.
One of the biggest changes is the move to the Edge browser, formally known as Spartan. This is something that will affect embedded developers, given the importance of a browser even on an embedded device. Native applications are still the way to go for many chores, but browser-based applications provide a more flexible and potentially multiplatform solution. Internet Explorer has not gone away though.
Multiplatform is behind the Microsoft Universal App framework (see "In Search of One App for Many Targets"). This is a relatively new technology from Microsoft and it is not really a part of the Windows 10 release although Windows 10 is the target for these universal apps. Essentially it should provide a single code base to be used on all Windows 10 platforms.
Direct X12 is also part of Windows 10. This is critical for gamers and will be important for many embedded applications as well.
Cortana migrates from the smartphone to the desktop. This digital assistant was first released on Windows Phone. It has links to Bing, of course. It can also scan a range of storage from OneDrive to a local disk when doing a natural language search.
Continuum is a feature that allows a quick switch between the touch-friendly Windows 8 interface and the Windows 7 desktop interface. Windows 8 had both and so does Windows 10. The ability to switch will be more important for users of hybrid devices like convertible laptops and all-in-one desktops.
We will finally have virtual desktops in a standard installation of Windows 10. Virtual desktops have been standard fare on Linux for decades. They have also been available as an application on Windows, but not as a standard interface.
Embedded developers will probably like the fact that charms have gone away and the control panel is more unified. The settings are also available from the Start menu.
Windows for IoT
Windows 10 for Raspberry Pi 2 can be found on Microsoft’s Windows for IoT site. This is worth mentioning, but keep in mind that it is yet another Windows platform. The release process will not track the standard or embedded Windows 10 already discussed.
The Windows IoT Core version of Windows is more limited than the consumer version and it works on the Raspberry Pi 2 and Galileo (Fig. 2) platforms. The Galileo runs Intel Quark SoC X1000 (see "How Many Quarks Does It Take To Make An IoT?") rather than a full-up x86 processor chip.
This version of Windows is designed to be a target for IoT applications rather than conventional smartphone or desktop applications. Developers can use Microsoft Visual Studio and Microsoft programming languages such as C# to generate applications for Windows for IoT.
Another part of this mix is the Windows Remote Arduino project. This puts a Windows-related application on an Arduino that communicates with a Windows 10 platform using the Firmata protocol. This provides access and control to Arduino-based peripherals. This is not designed to run applications like the Windows IoT Core or conventional Windows 10 platforms.
The Windows IoT Core platforms are suitable as larger IoT end nodes or as IoT gateways.
Windows 10 is likely to be free for most users except businesses. This may be of little consequence to embedded or IoT developers other than providing more potential targets. Microsoft is offering it as a free upgrade, which may help adoption and reduce the tech-support headaches.