The IoT is generating a lot of activity, but what are the implications for operating systems?

4 min read

There is general agreement that, within the next five years or so, some 20billion devices will be linked together to create the Internet of Things. Each device, no matter where it sits in the network, will need to communicate and that ability will be underpinned by an operating system. But what will that OS look like? Will today's offerings adapt to life 'on the edge' or will a new wave of targeted OSs find more success?

Dave Kleidermacher, pictured, CTO for Green Hills Software, uses a quote from the French mathematician and philosopher Blaise Pascal to illustrate the challenges of the IoT. 'Knowledge is like a sphere; the greater its volume, the larger its contact with the unknown'.

"Essentially, a 'thing' is an embedded system connected either directly or indirectly to the internet. This connectivity not only brings opportunities for increased functionality, but also increased security risk. The IoT isn't trivial."

GHS has traditionally focused on the higher end of the market, where there is a need for reliability and availability. "These systems present more challenges than, say, an internet connected light bulb," Kleidermacher continued.

Richard Barry, chief technology officer for FreeRTOS, said: "There are many OSs coming out which are targeted specifically at the IoT, but whether that's because the IoT has become a buzzword is open to debate. In my opinion, those which come with built in networking will succeed, because the IoT is essentially a network management issue."

One such OS is Contiki, an open source OS targeted at devices with memory, power, processing power and communication constraints. A full system is said to require less than 30kbyte of memory.

It supports IPv4 and IPv6 networking and features the Rime stack; a set of communication primitives for low power wireless systems. Contiki also provides ways to reduce the host system's power consumption.

"Things like Contiki are clever, but I don't like them personally," said Barry. "Its macro based approach makes the code look simple, but I think it's harder to debug because it hides what's going on."

He believes that many of these IoT focused operating systems aren't fully pre-emptive. "They mainly feature cooperative based scheduling," he said. "While they may be portable and easy to use, it's important to have the network stack managed correctly."

Another company coming at the IoT from the 'high' end is Wind River. Alexander Damisch, director of industrial solutions, said: "We are always looking for disruptions and the IoT is a key disruption. The IoT is happening, but it's a journey."

Responding to the changing market, Wind River has upgraded its flagship OS VxWorks for the IoT. "VxWorks has been in the market for 30 years," said Damisch. "It was originally monolithic and aimed at fixed function devices, but that's changed. VxWorks 7 scales from microkernel based single task systems to multicore 64bit systems with virtualisation."

In Kleidermacher's opinion, the challenge is for companies to develop scalable, interoperable software architectures for IoT applications. "Everyone wants high levels of security and safety, but we also need interoperability and a scalable, partitioned OS," he said.

Wind River would contend that's what it has developed with VxWorks 7. It points to modularity, as well as a set of security and safety features. The package also features scalability, along with connectivity and graphics modules.

This modular approach, in which the VxWorks core OS is separated from packages such as the file system or networking stack, means applications can be updated without requiring a rework or retest of the system.

Damisch said VxWorks 7 offers the ability to separate functions at the process level. "You could have 50 or 60 running. If one is a critical function and another is a GUI, these apps can be separated in such a way that it can be certified they have no influence on each other. It's still an RTOS, but can be thought of more as an 'apps store' model.

"VxWorks was already secure," Damisch contended, "but these new features make it very difficult to hack into. We're making sure the system can't run a patched version of the image or another version of the OS. It now scales from edge devices to the cloud."

Can you squeeze a full blown OS into a low power sensor on the edge of the IoT and how many of these devices will need an RTOS? Kleidermacher said: "Some IoT systems will need an OS that supports hard real time, with security and comms as a basic requirement. But not every system will be able to run Integrity, for example, which has a minimum footprint of 100kbyte.

"But GHS has µ-velOSity for MCU based 'things'. It scales down to 2kbyte and can get into pretty much anything. The problem is that it doesn't have memory protection."

And he points to MCU developers as the reason. "Low cost MCUs don't have the features we'd like to see. For example, Integrity will only run on ARM's Cortex-A class cores because they have memory management (MMU). But the good news is that ARM has looked at the IoT and said low end chips should have these features. We're encouraged by that and are working with ARM to determine what an MMU for the IoT might look like."

While many OS developers are looking to create systems with the smallest possible footprint, for use in IoT edge devices such as sensors, there is still plenty of opportunity for more traditional, larger, OSs to play their part.

Barry said: "I meet a lot of people who are doing IoT projects based on Linux. You have to ask them why and their response is simple – we know how to use it and there's networking included."

Kleidermacher remains concerned about security. "Attackers always search for the weakest link and if 'things' remain weakly protected, then they will be targeted first. Ultimately, everything will need some security; even a light bulb."

He said an IoT light bulb would probably have a low end MCU with some form of encrypted comms. "It should have a shared key with some degree of anti tamper; if someone breaks it open, they shouldn't be able to get the key. Security requirements will only increase from there."

Concluding, Barry said: "In five years' time, we won't be worrying about integrating network stacks; we will be far more concerned with things like battery life."

A plug and play domestic IoT system

The Nabto-box, an Indiegogo project, uses FreeRTOS and peer to peer technology to enable gadgets on a home network to become part of a secure Internet of Things (IoT).The system has been designed to offer a simple solution to home networking. Users plug the Nabto-box into their home router, enabling them to view the status of, control and stream data from a range of networked devices.IoT OSs will also need to be secure. Barry used the Nabto-box as an example. "If it's not secure, you might inadvertently be telling someone whether you're home or not. They might discover what data you have on your network. Household and personal data security is crucial."