beanz Magazine

Operating Systems for Internet of Things

There are many operating systems for internet of things devices, from existing software used to control electronic boards to efforts by Google and Apple.

There are a number of software operating systems available to run on connected devices to provide basic services to applications. While desktop and mobile computer operating systems are well known and stable, for example, Windows and Mac OSX, many operating systems used on connected devices are still under development with new projects appearing every few years.

Operating systems for connected devices used in the Internet of Things differ in interesting ways from desktop and mobile computers. One key problem to solve is balancing operating system complexity with all possible features a connected device might need.

For example, an operating system for a wall mounted thermostat might be much smaller and provide a small set of features instead of many capabilities needed by a desktop computer. An operating system also might be modular with a base operating system and modules to provide specific features. Developers mix the base operating system with only the modules they need to make the operating system as small and durable as possible.

Here are a few active operating systems used by connected devices if you want to explore features and how they work.

Brillo

This Google project takes the Android operating system used on phones and tablets and adapts it to work on connected devices. The primary benefit is familiarity: developers who create software applications for Android can more easily create software for small devices. It will use a protocol called Weave to make it easy for devices to connect to each other. The first versions of Brillo and Weave are expected to appear in late 2015 and early 2016.

Riot

Despite its name, Riot advertises itself as a friendly operating system for the Internet of Things. This is an open source project with the goal of providing a write once use anywhere operating system for connected devices. The project also emphasizes small code and memory footprints to make these devices faster and more durable.

Contiki

Contiki also is an open source project to create a modular, power efficient, and fast operating system for connected devices. The operating system is designed, for example, to work for long periods of time on devices powered by AA batteries, as well as manage power usage while waiting for messages to be relayed out and back to the connected device.

mbed

Created by ARM, a company that makes microprocessor chips used in connected devices, mbed is an operating system designed as a platform to provide a range of services to these devices. This project is interesting because the operating system is built to meet the needs of ARM customers who buy their chips.

Windows 10 IoT

Microsoft has an active program to adapt Windows 10 for Internet of Things devices, as well as Raspberry Pi and small micro-computers. It’s a strong effort and interesting to compare with efforts by Google and Apple.

 

In addition to these efforts, with the release of its Apple Watch, Apple also released HomeKit, a set of tools software developers can use to make devices smart through use of internet access. For software developers, coding for devices is similar to programming applications but they also must learn how to work with controller boards, computer chips, and other hardware.

Learn More

Project Brillo

https://developers.google.com/brillo/
http://www.anandtech.com/show/9294/google-announces-project-brillo-and-weave-for-iot
http://www.element14.com/community/groups/internet-of-things/blog/2015/07/23/brillo-and-weave-iot-operating-systems-and-android-m-is-google-is-taking-over-iot

Riot

http://www.riot-os.org/

Contiki

http://www.contiki-os.org/

mbed

http://www.mbed.org/

Operating Systems for the IoT: Goals, Challenges, and Solutions

An academic paper which describes the variety of problems operating systems for connected devices must solve.
http://www.researchgate.net/publication/236883971_Operating_Systems_for_the_IoT__Goals_Challenges_and_Solutions

Picking the right RTOS for your next-gen embedded IoT design

The title is a mouthful but the article describes how developers familiar with writing software for embedded devices think about adding the Internet of Things capabilities, what features are familiar or different.
http://www.embedded.com/electronics-blogs/cole-bin/4431815/Picking-the-right-RTOS-for-your-next-gen-embedded-IoT-design

Huawei LiteOS

A new operating system designed to work with the chips and other technology produced by this Chinese company.
http://eblog.huawei.com/all-you-need-to-know-about-liteos-and-smart-sensor-network
http://www.huawei.com/ilink/en/about-huawei/newsroom/press-release/HW_433506

Apple HomeKit

https://developer.apple.com/homekit/
http://www.businessinsider.com/apple-homekit-how-it-works-2015-9

Windows 10 IoT

https://dev.windows.com/en-US/iot
http://ms-iot.github.io/content/en-US/GetStarted.htm
https://www.youtube.com/channel/UCL7wy-iy_V76xxPnrIzGOZQ
http://blogs.windows.com/buildingapps/2015/04/29/microsoft-brings-windows-10-to-makers/
https://www.raspberrypi.org/blog/windows-10-for-iot/
http://blogs.windows.com/buildingapps/2015/09/24/whats-next-for-windows-10-iot-core/
http://www.adafruit.com/windows10iotpi2

Also In The October 2015 Issue

October 2015 Issue: Internet of Things (IoT)

The Internet of Things (IoT) connects dumb devices like refrigerators to the internet and uses software to connect them to our daily lives.

There are many operating systems for internet of things devices, from existing software used to control electronic boards to efforts by Google and Apple.

Disney Infinity 3.0, Rocket League, and Super Mario Maker are three fun video games to consider for the 2015 holiday season

You can learn a little software programming and have lots of fun with any number of coding apps available for your phone or tablet computer.

Operating system software is a key part of all computers. But what are they and how do they work?

Learning how to make kittens with JavaScript is a great way to learn how to use the free Chrome web browser to practice and learn JavaScript.

Working through a book can help parents learn programming with their kids or kids learn on their own.

Board games and card games are some of the best ways to learn about programming. You don't need a computer. Play as a family or group.

These robots also can be programmed to move around rooms, one way for kids to learn programming.

Six women were hired to use their math skills to program the ENIAC computer. They called themselves The First Programmers Club.

Nicky is a Linguistics major who learned coding skills to further her research. She's also finished a PhD, won a few big awards, and co-founded Grok Learning.

Two women created an innovative online service to teach teenage girls how to code by using video.

The new Rust programming language is designed to solve problems with operating systems and fix issues with C and other languages.

Data can become alive and pose questions as well as reveal answers to questions we have.

Links from the bottom of all the articles in this issue, collected in one place for you to print, share, or bookmark.

DRY is an acronym for Don't Repeat Yourself. It's a critical programming concept and skill to learn.

Interesting news stories about computer science, software programming, and technology for August and September 2015.

CoderDojo is a free after school club for kids ages 7-17 where kids, parents, mentors, and others play with technology and learn to code.