Sergio Prado has been working with embedded systems for more than 25 years, providing consulting and training services for companies worldwide. Currently, he works as a Software Team Lead at Toradex, writes on his blog at embeddedbits.org, and contributes to several free and open-source projects, including Buildroot, Yocto Project and the Linux kernel.
OSTree (or libostree), also known as the "Git for operating system binaries", is a new and modern approach to develop and maintain complete filesystem trees for Linux-based systems. At its core, is a Git-like content-addressed object store with branches (or "refs") to track complete filesystem trees. And one of its big advantages is on implementing an update system, since it provides transactional (atomic) and delta-based upgrades with rollback support. It has been used in modern package management systems like Flatpak and rpm-ostree, and Linux distributions like Apertis, Endless OS, Fedora CoreOS/Silverblue/IoT and GNOME OS. In this talk, we will dig deeper into how OSTree works, taking a hands-on approach to learn how to designing an OSTree based embedded Linux systems using the meta-updater layer.
There are several techniques to debug an embedded Linux system that can be applied in both user space and kernel space. Depending on the problem, you may need different tools, like addr2line for crash dump analysis, GDB for interactive debugging, ftrace for kernel tracing, valgring to catch memory-related issues, gprof for application profiling, etc. In this talk, we will learn how the Yocto Project can help and improve the experience of the developer when debugging an embedded Linux system.