This practically-oriented textbook provides a clear introduction to the different component parts of an operating system and how these work together. The easy-to-follow text covers the bootloader, kernel, filesystem, shared libraries, start-up scripts, configuration files and system utilities. The procedure for building each component is described in detail, guiding the reader through the process of creating a fully functional GNU/Linux embedded OS. Features: presents a concise overview of the GNU/Linux system, and a detailed review of GNU/Linux filesystems; describes how to build an embedded system to run on a virtual machine, and to run natively on an actual processor; introduces the concept of the compiler toolchain, demonstrating how to develop a cross toolchain so that programs can be built on a range of different architectures; discusses the ARM-based platforms BeagleBone and Raspberry Pi; explains how to build OpenWRT firmware images for OMxP Open-mesh devices and the Dragino MS14 series.