Linux on embedded devices

A guide to Linux for embedded applications

An embedded device is a hardware and software system that performs a dedicated function within a larger computer system. It is typically resource-constrained and comprises a processing engine. The software of an embedded Linux system runs on top of the Linux kernel, the fundamental core of the OS with complete control over everything occurring in the system.

It follows an embedded Linux system simply denotes an embedded system running on the Linux kernel. What makes Linux for embedded applications special? Let’s find out!

The kernel for embedded applications

The Linux kernel is a member of the family of Unix-like OS kernels, with AT&T Bell Labs devising the first version of Unix back in 1969. Being proprietary, Unix, the first portable OS, stimulated the development of free and open-source alternatives like Linux and, among the many others, FreeBSD, NetBSD, and OpenBSD.

At system startup, the Linux kernel loads into RAM and stays in memory throughout the session duration.

Despite Linus never shipping a version of Linux for embedded applications, developers often need a configuration to support their custom hardware, as the kernel build configuration found in a device usually varies from the one in a server or workstation.

Linux for embedded applications

Linux is the premier choice by developers of embedded applications for several reasons: from being open-source to scalability, developer support, and tooling, myriad arguments justify why Linux is a great candidate for embedded systems.

Linux runs on many hardware platforms because developers ported the kernel to several CPU architectures. Instead of being restricted to a specialist programming language in an industrial setting and compared to native microcontrollers programming, with Linux also comes extensive support for languages.

Linux implements a rich stack of networking protocols, it is highly scalable, open-source with extensive community support, and you can deploy it with no royalties. The list of reasons behind the rapid growth of embedded Linux is virtually endless.

Ubuntu Core is Linux 2.0 for embedded applications

Ubuntu Core is Ubuntu for IoT and embedded environments, delivering the resiliency and security that developers around the world expect from Ubuntu. It is an OS with a minimal footprint and a modular and simple architecture, built on snaps, the universal Linux packaging format.

Security is a big part of the story of Ubuntu Core, in that it automatically confines applications and integrates strict AppArmor and Seccomp rules for all snaps. Canonical, the commercial entity behind Ubuntu, redesigned the entire system from the first boot to create the most secure embedded Linux so that developers can ship embedded devices cost-effectively without implementing complex security features themselves, from full-disk encryption to a read-only root filesystem.

Читайте также:  Linux change creation date on file

Updates on Ubuntu Core devices can be delivered via Canonical’ software distribution machinery, extensively tested in production.

Managing software and updates across a huge number of devices can be challenging, especially if subsets of hardware require different applications to run on them. Delivering automatic updates and handling software across machines is one of the key features of the IoT App Store for Linux. This custom, enterprise store allows you to cherry-pick the optimal combination of applications you want your devices to use, including software published in the global Snap Store and custom software developed internally for a specific use case.

Overall then, the combination of the secure OS, snap packages and Store, gives developers a platform for secure, open-source embedded software development and deployment.

Are you evaluating Ubuntu Linux for your next embedded project?

Further reading

Want to go back to the basics? Find out what is embedded Linux.

Why is Linux the OS of choice for embedded systems? Check out the official guide to Linux for embedded applications in whitepaper or webinar form.

Learn how Ubuntu Core, snaps and Snapcraft create a platform for secure, open-source embedded Linux development and deployment.

Interested in a detailed comparison of Yocto and Ubuntu Core? Watch the Yocto or Ubuntu Core for your embedded Linux project? Webinar.

Do you have a question, feedback, or news worth sharing? Join the conversation on IoT Discourse to discuss everything related to the Internet of Things and tightly connected, embedded devices.

IoT as a service

Bring an IoT device to market fast. Focus on your apps, we handle the rest. Canonical offers hardware bring up, app integration, knowledge transfer and engineering support to get your first device to market. App store and security updates guaranteed.

IoT app store

Build a platform ecosystem for connected devices to unlock new avenues for revenue generation. Get a secure, hosted and managed multi-tenant app store for your IoT devices.

Источник

Embedded Linux: A Beginner’s Guide

If you’re getting started with building your own electronic product, you must know about embedded Linux.

Today, we will briefly talk about embedded systems and why you should consider using Linux for your beginner projects.

What is an Embedded System?

An embedded system is a computer that serves a dedicated purpose involving computation for real-time operations. Embedded systems are all around us in consumer, industrial, telecommunication and even medical applications.

Embedded systems can have varying degrees of complexity, ranging from a simple thermometer to modern smartphones. Today, the demand for capable embedded systems are on the rise as modern applications such as machine learning make their way into consumer devices.

What is Embedded Linux used for?

Embedded Linux is a type of Linux kernel that is specially designed for embedded devices. For example, the popular smartphone operating system, Android, is a type of embedded Linux customised for smartphones.

In simple terms, a kernel is the core of an operating system that manages the operations of the computer and its hardware, especially the memory and CPU. In other words, the kernel is the interface between software and hardware.

Читайте также:  Kali linux hacking books

For more details on the Linux architecture, George Hilliard offers a great breakdown and introduction.

Why Embedded Linux?

If you are trying to create your own project, developing a kernel from scratch for your hardware is an incredibly challenging process, since it requires deep knowledge of both hardware and code.

You may also have heard of bare-metal tasking kernels (without an operating system) for microcontrollers, such as FreeRTOS, Azure RTOS, RT-Thread, μC/OS, but these choices lack memory management and protection which are critical to building modern applications. Because of this, you may be looking for a more comprehensive solution.

Fortunately, there are many advantages of using embedded Linux on a microprocessor in your embedded applications, such as built-in dynamic memory management and security modules that you might want to consider.

Linux has Extensive Compatibility

Over the years, Linux has grown to support a large variety of CPU architectures, including x86, ARM and PowerPC etc. So, no matter what kind of hardware you are working with, there is a good chance that a Linux kernel already exists for it.

Linux supports nearly all the programming languages and utilities that you need for your embedded system development endeavours. With Linux, you are not restricted to any specific software. If you are dissatisfied with anything, there is a good chance that an alternative is available – or you can be the first in the community to develop it!

Linux is Open Source

Linux, as an open source kernel, allows you to leverage on the work of thousands of developers across the world. By tweaking or directly implementing existing packages, you can get your own applications up and running far more easily and quickly.

The Linux Community is There for You

Got a specific question? No problem! Because Linux is used by so many developers, you not only have their code to count on, but also their experience and knowledge. Simply ask away at one of the many forums available, like linux.org.

Get Started with Embedded Linux Boards

Now that we’ve learnt more about the advantages of embedded Linux, it’s time to explore how we can get into it!

The best way to dive into the world of embedded Linux is to get your hands on a single board computer. Today, there are many available single board computers that ship with specialised embedded Linux distributions, that are available for you to directly begin developing and using in your own projects.

Choosing from Linux Distributions

Linux distributions or “distros” are different flavours of operating systems running on the Linux kernel. They may offer different in-built features or tools, allowing for a variety of user and development experiences.

To make better use of limited resources on embedded devices, server distributions do not come with a GUI or graphical user interface. Instead, the command line interface will have to be used.

For even more recommended Linux distros for beginners, please visit Best Linux Distros 2020 for Beginners.

Raspberry Pi OS – Raspberry Pi 4

One popular and cost-effective embedded Linux solution is offered by the Raspberry Pi 4, which comes with its very own Raspberry Pi OS operating system. The desktop OS is very beginner friendly and easy to use, with official guided tutorials from the Raspberry Pi Foundation and extensive community support.

Читайте также:  Star wars republic commando linux

More Embedded Linux Platforms

You may also be interested in the following popular embedded Linux single board computers:

SBC Operating System Good For Cost
Raspberry Pi Zero / Zero W Linux Low cost and small form factor $5 / $10
Raspberry Pi 4 Linux Introduction and Learning with Great Support $35
Odyssey – X86J4105864 Windows & Linux, with Arduino Co-processor High performance edge computing development $258
NVIDIA Jetson Nano 2GB Developer Kit Linux Beginner friendly Machine Learning Option $59
NVIDIA Jetson Xavier NX Developer Kit Linux High Performance AI and Machine Learning $399

For more single board computers that can be used with embedded Linux and more, be sure to visit: Raspberry Pi Alternatives: 17 Best Single Board Computers in 2020.

The Best Embedded Linux Terminal Device – reTerminal

reTerminal CM4104032 is powered by a Raspberry Pi Compute Module 4 (CM4) which is a Quad-Core Cortex-A72 CPU running at 1.5GHz and a 5-inch IPS capacitive multi-touch screen with a resolution of 720 x 1280.

  • Integrated modular design with high stability and expandability
  • Powered by Raspberry Pi Compute Module 4 (CM4) with 4GB RAM & 32GB eMMC
  • 5-Inch IPS capacitive multi-touch screen at 1280 x 720 and 293 PPI
  • Wireless connectivity with dual-band 2.4GHz/5GHz Wi-Fi and Bluetooth 5.0 BLE
  • High-speed expansion interface and rich I/O for more expandability
  • Cryptographic co-processor with secure hardware-based key storage
  • Built-in modules such as accelerometer, light sensor, and RTC
  • Gigabit Ethernet Port and Dual USB 2.0 Type-A ports
  • Pre-installed heatsink for higher performance
  • 40-Pin Raspberry Pi compatible header for IoT applications
  • reTerminal is Microsoft Azure Certified
  • Remote management support from partner Mender.io
  • The best Raspberry Pi device with a 5-Inch multi-touch screen
  • High-performance Raspberry Pi CM4 tablet

Embedded Linux: A Custom Solution

If none of the existing Linux operating system options meet your needs, or if you simply like to do it yourself, you can get started building your custom embedded Linux system in a few ways.

Yocto – An open source collaboration project that provides a flexible set of tools and platform to create custom Linux-based systems regardless of hardware architecture.

Buildroot – A simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.

OpenWrt – A highly customisable Linux framework for embedded devices (typically wireless routers)

For more information on each of these custom embedded Linux solutions, feel free to visit each of their websites for more information on how to get started.

More Learning Resources

Here are also some online resources and courses that you can explore for a deeper understanding on the Linux kernel and embedded applications. I highly recommend Bootlin’s articles as they are free-to-use and beginner-friendly.

Conclusion

To conclude, if you are looking to develop your own project and need a reliable platform to build your applications on, be sure to check out embedded Linux. With the extensive hardware and community support available, you’ll be able to get your devices up and running in no time.

Источник

Оцените статью
Adblock
detector