Excellence in Software Engineering
Operating System Customization for IoT: Yocto Project Overview
11 March 2020

Author: Alihan Doğuş YALÇIN, Software Engineer – Information Systems & Cyber Security Group

Operating systems for embedded devices have become even more important with the growth of the Internet of Things (IoT) industry. There are a variety of Linux Distributions for embedded environment in the market, but the distributions all have unneeded packages, libraries and functionless kernel modules for development boards. Developers can find a documentation to hack the distributions and change the distribution features again and again to fit all dependencies. However, finding the best operating system for the specific needs of a project without waste time and money is a challenge for software developers. Get ready for stressful days or choose the easier and cheaper way.

Yocto Project is an open-source project that creates a working area to develop a custom Linux-based operating system for any embedded device. It is independent from the hardware architecture and supported by semiconductor companies like Intel, AMD, Qualcomm, NXP and Texas Instruments. Therefore, Yocto Project supports different architecture like ARM, MIPS, x86. Yocto Project is currently in the Zeus (3.0.2) version. New versions are released every 6 months and Yocto Project is lately announced to give long term support starting from release 3.1.

The main part and reference distribution of the Yocto Project is Poky and Poky is all you need to create your first Linux-based distribution. Poky is contained of two fundamental parts: Metadata and Bitbake.

  • Metadata is the set of task definitions that consist of recipe (.bb) files, class (.bbclass) files and configuration (.conf) files. These files can be defined in different layers for different functionalities according to the software application stack or Board Support Package (BSP). The semiconductor companies mentioned above have their Yocto layers to create board-specific packages and hardware configurations. Also, layers are available for different software solutions like mender which is used for OTA software updates for IoT devices and influxdata which is metric collection and visualization framework. A layer can override another layer depending on the layer’s priority. The layer of highest priority overrides settings of recipes beneath it.
  • Bitbake is a task executor that controls every step of building an image. It collects tasks specified in metadata and builds the tasks to create a complete image with a specific Linux kernel and root file system. Bitbake is written in Python and developed by OpenEmbedded.

The number of connected IoT devices is growing each year and companies create IoT solutions for different boards and architectures. But, finding an operating system to handle all IoT solutions is impossible. Yocto Project has all the tools and methods to create a Linux-based operating system for IoT projects with different requirements. Add needed packages and remove useless ones, leave the rest to Yocto.

Meanwhile, at ICterra, in Robust Edge project, our security and management solution for IoT devices, we are creating security-based Linux distributions, images and recipes for specific IoT problems using Yocto Project. Yocto simplifies our work to improve embedded Linux security for different architectures and boards starting from Linux kernel to application layer. Thus, we are developing more secure operating systems for IoT devices with less effort.  

For more information about Yocto Project, visit www.yoctoproject.org

Past Articles

Secure Coding

Secure Coding

It is hard to withstand ever-expanding attacks with old coding habits. Many attacks on corporate applications come from inside the network, thus rendering such protection mechanisms as firewalls useless. It has become imperative that the application is capable of protecting itself. All security issues are rooted in the code itself. The starting point of the secure coding concept is based on the idea of avoiding security errors in the first place instead of fixing them. So, what should be done to gain secure coding skills?

Why Built-Operate-Transfer (BOT)?

Why Built-Operate-Transfer (BOT)?

“ In the last months we have received some BOT demands from some large enterprises especially from Europe and we had several negotiations with them. Below we want to share with our followers our impressions regarding the concerns, feelings and the alternative searches of any CEO of any enterprise in case of expanding their production into other countries.”

Common Criteria provides a wealth of information about IT security

Common Criteria provides a wealth of information about IT security

Setting up a multilingual full functional support team in a short timeframe is not easy. It requires well-planned transition and efficient team selection process. There are more incompetent support advocates compared to excellent ones and also transition process planning requires unique experience and has lots of technical and business risks to overcome.