What OS for a connected device?

Whether they work on development computers like the Raspberry Pi or on a microcontroller like the Arduino, the operating systems for the Internet of objects are designed to be energy-efficient, and able to communicate with "objects", various Devices in a home or business.

To manage communication with objects, protocols have been established. Google for example offers Weave with a development SDK and a server for the cloud (this may be a Raspberry online).

Among the functions of this protocol are the secure registering of devices to be connected, linking to online services (the Google APIs in the case of Weave), sending commands to devices.
Weave can connect to a TV, a voice assistant, lighting, an electrical control panel. They can be remotely controlled outside the home by connecting to the server.

There are different operating systems and communication protocols. They do not all work on the same types of computers.

Here is a comparison of the most popular ...

OS License Memory Development Origin Device
Android Things Apache 2.0 16 MB C/C++/Java Google Pi 3, Pico, Edison
mbed OS Apache 2.0 32 KB C/Espruino Intel mbed, Espruino
Windows IOT Core Eula Microsoft 1 GB All/VStudio Microsoft Pi 2, Pi 3, Qualcom cards
TinyOS BSD 16 KB nesC/Atmel Studio Universities Microcontrollers
Contiki OS BSD 16 KB C/Instant Contiki Manufacturers Microcontrollers
LiteOS BSD 16 KB C/C++/Atmel Studio UoL Atmel

Android Things is a light version of Android for small devices. This supporti GPIO and comes with Weave, a communication protocol between devices. The site provides an SDK and full documentation to get started.

Mbed is based on RTX RTOS (Real-Time Operating System) and supports multitasking in real time. With the Espruino system it allows to use Node.js and JavaScript. In this case, it requires 32 MB of memory rather than 32KB. Espruino microcontroller cards can be purchased in the same price range as the Raspi.

Windows IOT Core is a minimalist version of Windows originally provided on Raspberry, but available on multiple cards based on Qualcom or Intel processors. Allwinner cards are not guaranteed to work. The license is unique to Microsoft. Development is specially supported on Visual Studio Express. It is a complete OS of the same type as Raspbian, thus giving complete freedom for the software to be installed, but this excludes the use on Arduino type cards.

TinyOs was created jointly by several US universities and Intel. The application programming language, nesC, is a small version of C adapted to microcontrollers (like the Arduino language). It uses a simple concurrent model based on tasks.

Contiki OS is similar to TinyOS, created in 2002 and developed by multiple electronics manufacturers. Its C development system, Instant Contiki, requires the VMWare Reader, which is free, but the installation is complicated.

LiteOs, created by the University of Illinois is a Unix-like for microcontrollers, allowing programming by both events or threads.
A version has been announced by Huwei as ultra light and working without configuration, whose source code is available on GitHub, but with 2 commits to date. The original LiteOS works with its AVR Studio development environment and it dates a bit.

More