Yazılım Mühendisliğinde Mükemmellik
Operating System Customization for IoT: Yocto Project Overview
11 Mart 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

Geçmiş Yazılar

Technical Excellence and Agility

Technical Excellence and Agility

We have already started talking about the challenges of distributed agile teams in our previous blog post “Remote Teams in an Era of Agile”. Now, we continue with another topic which is essential to succeed in an era of agile software development.

Running with Clogs in the Space

Running with Clogs in the Space

Nearly almost all organizations, even which use agile practices, get in a tizzy with legacy applications. As the time went by, based on outmoded architecture, those ones have been expected to do things beyond for what they were originally designed decades ago.

Redefining Perfection with Secure Software Development Approach

Redefining Perfection with Secure Software Development Approach

Making software security a focal point in the process of designing, developing and delivering software applications is crucial for the ultimate success of these applications. Developing party needs to create trust in the user regarding the protection of critical assets and operational reliability. Therefore, software security becomes a fundamental requirement of software applications. Many companies started to meet software security requirements in accordance with the secure software development framework it has developed, which consists of a rule set defined within the software and security teams. This rule set are defined taking into account various international standards and industry best practices.