Au cœur de Windows 10

Microsoft Windows est toujours disponible dans une variété de saveurs. Cependant, jusqu’à l’arrivée de Windows 10, la variance entre les instances pouvait être assez diverse. Windows fonctionne sur des systèmes comme Itanium d’Intel, MIPS et DEC Alpha. Récemment, nous avons eu le Windows RT basé sur ARM. Et Windows CE a été conçu pour fonctionner sur ARM.

Les développeurs ont dû utiliser des ensembles d’outils conçus spécifiquement pour ces différentes plates-formes, ce qui était moins problématique lorsque les systèmes avaient tendance à fonctionner dans un environnement autonome. Avec l’Internet des objets (IoT), cependant, ce scénario n’a pas beaucoup de sens.

De nombreux défis ont surgi avec les différents systèmes, y compris la façon dont Microsoft a divisé leur développement et leur livraison. Visual Studio est la plate-forme de développement de Microsoft, mais une équipe de conception au sein de Microsoft prend généralement un instantané et le verrouille pour prendre en charge une plate-forme comme Windows CE. Malheureusement, cela a laissé ces développeurs désynchronisés avec la dernière version de Visual Studio et de Windows. Windows 10 IoT Core et le dernier Visual Studio sont conçus pour changer ce paradigme.

À ce stade, Windows 10 IoT Core prend en charge un nombre petit mais croissant de plates-formes en plus des plates-formes x86 habituelles ciblées par les versions de bureau et serveur de Windows. Il convient de noter le Raspberry Pi 2, qui est l’une des premières plates-formes à prendre en charge Windows 10 IoT core.

C’est un Raspberry Pi 2 exécutant Microsoft Windows 10 pour IoT Core sous la carte de brassage à gauche. Il contrôle le traceur sur mesure piloté par une entrée de caméra numérique.

Lors d’une récente visite chez Microsoft, j’ai vu de nombreuses unités Raspberry Pi piloter des robots vers une application de traceur intéressante qui utilisait également un appareil photo numérique pour l’entrée (voir la figure). Il s’agissait d’unités de stock programmées à l’aide de la dernière version de Visual Studio.

Le plus grand changement est peut-être que le noyau IoT de Windows 10 est un sous-ensemble des autres versions de Windows 10. Il fonctionnera sur des plates-formes ARM ainsi que sur des variantes x86 comme le Minnowboard, qui exécute un Intel Atom.

Un Linux sans tête

Windows 10 IoT Core n’est pas à égalité avec Windows fonctionnant sur un ordinateur de bureau ou une autre plate-forme dotée d’une interface utilisateur sophistiquée. Au lieu de cela, cela ressemble plus à une version sans tête de Linux. Il permet à Windows 10 IoT Core d’être petit, ce qui le rend adapté aux applications embarquées. Cela permet également à Microsoft de maintenir plus facilement la compatibilité entre les versions.

L’avantage pour les développeurs embarqués est que les langages et outils utilisés pour les autres plates-formes Windows 10 seront les mêmes pour Windows 10 IoT Core. Des langages tels que C++, C #, Python et Visual Basic peuvent être utilisés sur toutes les plates-formes. Il existe également une interface de débogage unique.

Traiter le sous-ensemble de services est bien compris par les développeurs embarqués. Les affichages ou les graphiques peuvent faire partie du mélange, mais ils ne seront pas standardisés à ce stade. C’est généralement moins un problème pour les conceptions personnalisées qui pourraient utiliser quelque chose comme un écran LCD 2 lignes piloté par une interface I2C.

Des fonctionnalités telles que la sécurité et les communications sont courantes grâce au logiciel de base. De nombreux outils de gestion fonctionnent également sur la plate-forme, tels que la mise à jour à distance et l’administration. Cela n’a peut-être pas un impact énorme sur la communauté des fabricants, mais les fonctionnalités sont essentielles dans l’espace IoT commercial.

Comprendre la portée et les limites de Windows 10 IoT Core sera crucial pour son adoption. Ce n’est pas une version allégée du bureau. D’un autre côté, ce n’est pas ce dont la plupart des applications embarquées ont besoin ou ce que la plupart des développeurs veulent à ce niveau. C’est certainement une option qui mérite d’être étudiée pour ceux qui travaillent sur des applications embarquées.