Quel OS pour un appareil connecté?

Qu'ils fonctionnent sur ordinateurs de développement comme le Raspberry Pi ou sur microcontrôleur comme l'Arduino, les systèmes d'exploitation pour l'Internet des objets sont conçus pour être économes en énergie, et pouvoir communiquer avec les "objets", les divers appareils dans une maison ou une entreprise.

Pour gérer la communication avec les objets, des protocoles ont été établis. Google par exemple propose Weave avec un SDK de développement et un serveur pour le cloud (ce peut être un Raspberry en ligne).

Parmi les fonctions de ce protocole, il y a l'enregistrement sécurisé des appareils à connecter, le lien avec des services en ligne (les API Google dans le cas de Weave), l'envoi de commandes aux appareils.
Weave peut se connecter à un téléviseur, un assistant vocal, l'éclairage, un panneau de contrôle électrique. On peut les contrôler à distance, hors du domicile, en se connectant au serveur.

Il existe différents systèmes et différents protocoles de communication. Ils ne fonctionnent pas tous sur les mêmes types d'ordinateurs.

Voici un comparatif des plus populaires...

OS Licence Mémoire Développement Origine Appareil
Android Things Apache 2.0 16 MO C/C++/Java Google Pi 3, Pico, Edison
mbed OS Apache 2.0 32 KO C/Espruino Intel mbed, Espruino
Windows IOT Core Eula Microsoft 1 GO Tous/VStudio Microsoft Pi 2, Pi 3, Cartes Qualcom
TinyOS BSD 16 KO nesC/Atmel Studio Universités Microcontrôleurs
Contiki OS BSD 16 KO C/Instant Contiki Fabricants Microcontrôleurs
LiteOS BSD 16 KO C/C++/Atmel Studio UoL Atmel

Android Things est une version allégée d'Android pour les appareils légers. Cela vient avec Weave, un protocole de communication entre appareils et supportant les GPIO. Le site fournit un SDK et une documentation complète pour démarrer.

Mbed est basé sur RTX RTOS (Real-Time Operating System) et supporte le multitâche en temps réel. Avec le système Espruino il permet d'utiliser Node.js et JavaScript. Il faut alors 32 MO de mémoire plutôt que 32KO. On peut acheter des cartes microcontrôleur Espruino dans le même ordre de prix que le Raspi.

Windows IOT Core est une version minimaliste de Windows fournie à l'origine sur Raspberry, mais disponible depuis sur de multiples cartes à base de processeur Qualcom ou Intel. Les cartes Allwinner ne sont pas garanties. La licence est propre à Microsoft. Le développement est spécialement supporté sur Visual Studio Express. Il s'agit d'un OS complet de même type que Raspbian, donc donnant toute liberté pour les logiciels à installer, mais cela exclut l'utilisation sur cartes de type Arduino.

TinyOs a été créé conjointement par plusieurs universités américaines et Intel. Le langage de programmation des applications, nesC, est une version réduite de C adaptée aux microcontroleurs (comme le langage de l'Arduino). Il utilise un modèle concurrent simple à base de tâches.

Contiki OS est similaire à TinyOS, créé en 2002 et développé par de multiples fabricants d'électronique. Son système de développement en C, Instant Contiki, requiert le VMWare Reader, qui est gratuit, mais l'installation est compliquée.

LiteOs créé par l'University de l'Illinois est un Unix-like pour microcontrôleurs, permettant la programmation à la fois par évènements ou par threads.
Une version a été annoncée par Huwei comme ultra légère et fonctionnant sans configuration, dont le code source est disponible sur GitHub, mais avec 2 commits à ce jour. LiteOS original fonctionne avec son environement de développement AVR Studio et il date un peu.

Plus d'informations