This is the second part of the two-part blog series covering embedded Linux systems and the challenges brought about by the proliferation of Internet of Things (IoT) devices. In Part I, we surveyed the embedded ecosystem and the role Linux plays within that space. This blog takes you on the next step in the journey, where we explore the most demanding challenges facing manufacturers of tightly embedded IoT devices.

Embedded systems and microcontrollers 

Any developer of microcontrollers-based embedded systems has experienced writing code and flashing it to their board, only to discover it does not work and totally lacks debugging output. Add a painful board bring-up process, paired with the reality of having to port code and implement a novel software stack due to the lack of drivers infrastructure, and the irritating mix is complete. The possibility of innovating more and toiling less has had many engineering teams wonder about migrating to the world of Linux. The Linux ecosystem, known for its extensive debugging tools and drivers infrastructure, would enable them to reduce time-to-market from engineering specs to a working product. If you come from the microcontroller world, you know there’s one more piece to complete the puzzle: real-time. Developers have traditionally overlooked Linux for real-time systems because of its limited priority scheduling and non-deterministic behaviour. As patches like PREEMPT_RT remove all unbounded latencies, this is no longer the case. 

By becoming better at delivering real-time performance, engineering teams can simply no longer afford to be flippant about adopting Linux. Even if one were to ignore the obvious reasons for choosing Linux for an embedded system, from hardware support to extensive modularity, would there be any argument left for nudging the most reluctant developer towards the OS? The answer is a clear and resounding yes, expressed in just three letters: IoT.

Embedded systems and IoT 

How does the IoT fit within the existing embedded landscape? Succinctly, embedded systems form the backbone of large-scale IoT deployments. How so? The IoT comprises a network of Internet-connected devices, the latter being the “things” hitherto otherwise referred to as embedded systems.

With the urge to have everything connected driving the spread of embedded devices, new standards, from Wi-Fi 6 to the 5th generation mobile network, act as the much-needed enablers. 

The advent of the Internet of Things 

The explosive growth of IoT, with its myriad tightly-embedded connected devices, has introduced a stringent set of unaddressed demands and requirements to the world of Linux.

Analysts forecast 25.1 billion connected devices will exist by 2023 [1], generating a $1.1 trillion IoT revenue opportunity by 2025 [2]. Whereas the actual figures may differ depending on which market research one looks at, the overall message is clear. The adoption of IoT devices, driven by the proliferation of cheap boards and coupled with the pervasiveness of network connectivity, is affecting virtually all sectors of society.

We don’t want to add unwarranted doom and gloom to the rosy picture depicted in Part I, but the truth is, embedded Linux developers are poised to face all-new challenges. 

Key considerations when adopting IoT

An embedded Linux OS on its own is not the end-all-be-all solution developers thought it would be. A turn-key security and update solution is a must in order to reap the promises of the Industry 4.0 revolution via the next wave of connected devices. We will discuss the following considerations for adopting IoT:

  • Security
  • Software updates

Let’s tackle these challenges one at a time, starting with security.

Security

With the proliferation of cybersecurity attacks, consumers now expect manufacturers to ship smart devices that are inherently secure. Security considerations affect every layer of the software stack – the embedded Linux OS being front and centre – as any exposed vulnerability can put the device manufacturer’s reputation on the line.

Reducing the surface of the attack is part of the answer. Imagine stripping your embedded Linux down to its bare essentials. Not only would fewer packages leave more disk space for your applications and data, but they would also lead to fewer bugs to fix and fewer forced changes.

Security challenge solved? Not yet.

How will your deployed fleet resist low-level boot attacks, guaranteeing the integrity of the boot firmware whilst ensuring the devices only run the curated software your developers carefully shipped? For that, your embedded Linux OS requires secure boot. 

And how about protecting the integrity of your device’s data in case of physical access? In that case, your IoT device needs cryptography to protect data confidentiality.

Of course, this is not intended as an exhaustive list of security considerations. As a diverse and complex topic, security spans several key aspects, from enterprise-grade mission-critical support to strict confinement. 

Software updates

The second pivotal requirement brought by the proliferation of tightly connected devices is the need for software updates.

How can an IoT device manufacturer prevent security breaches? By being up-to-date with the latest software. And once thousands of devices in the field are compromised, how can manufacturers respond quickly and efficiently? Over-the-air (OTA) remote updates with fixes to the security vulnerabilities are the answer.

Software updates are not a one-time effort that firms can engage with on an ad-hoc basis. Device manufacturers with a reputation for reliability and security must rely on enterprise-grade, production-tested software distribution machinery to deliver a constant stream of ua-reliable updates to their Linux kernel and application.

When dealing with a low-powered fleet of embedded Linux devices, the prevailing update mechanisms are not adequate. The new update paradigm is transactional, OTA and minimizes networking traffic. You can read how Ubuntu Core, the new standard for embedded Linux, handles the software update problem for IoT devices in this whitepaper. 

Conclusion

That we are in the midst of the fourth industrial revolution should be no surprise. Daily reminders of cutting-edge connectivity and robotics automation help stir the creativity of future engineers and developers. The potential of IoT devices to propel novel efficiencies in legacy verticals is undeniable, but one cannot overemphasize the resulting critical challenges. Security is key for the successful operation of any IoT system, as device manufacturers must carefully consider the privacy and regulatory needs of the end-user. Similarly, a steady stream of OTA updates to the Linux kernel and the applications enables devices to be free of critical vulnerabilities and patched with the latest security fixes.

Borrowing from the expertise needed to make Ubuntu the most widely deployed server OS on the Internet [3], Ubuntu Core is specifically tailored to IoT devices and optimised for security and updates. You can further read how Ubuntu Core is raising the bar for embedded Linux here.