Learn how to develop and configure reliable embedded Linux devices
Discover the latest enhancements in Linux 6.6 and the Yocto Project 5.0, codename Scarthgap
Explore different ways to debug and profile your code in both user space and the Linux kernel
Purchase of the print or Kindle book includes a free PDF eBook
Mastering Embedded Linux Development is designed to be both a learning resource and a reference for your embedded Linux projects.
In this fourth edition, you'll learn the fundamental elements that underpin all embedded Linux projects: the toolchain, the bootloader, the kernel, and the root filesystem. First, you will download and install a pre-built toolchain. After that, you will cross-compile each of the remaining three elements from scratch and learn to automate the process using Buildroot and the Yocto Project. The book progresses with coverage of over-the-air software updates and rapid prototyping with add-on boards. Two new chapters tackle modern development practices, including Python packaging and deploying containerized applications. These are followed by a chapter on writing multithreaded code and another on techniques to manage memory efficiently. The final chapters demonstrate how to debug your code, whether it resides in user space or in the Linux kernel itself. In addition to GNU debugger (GDB), the book also covers the different tracers and profilers that are available for Linux so that you can quickly pinpoint any performance bottlenecks in your system.
By the end of this book, you will be able to create efficient and secure embedded devices with Linux that will delight your users.
If you are a systems software engineer or system administrator who wants to learn how to apply Linux to embedded devices, then this book is for you. The book is also for embedded software engineers accustomed to programming low-power microcontrollers and will help them make the leap to a high-speed system-on-chips that can run Linux. Anyone who develops hardware for Linux will find something useful in this book. But before you get started, you will need a solid grasp of the POSIX standard, C programming, and shell scripting.