Skip to main content

About this book

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.

Table of Contents

Chapter 1. Introduction

Most people are familiar with general purpose computing devices, such as desktops and laptops. Their use is common-place and support a wide variety of applications, many of which involve a wider access to distributed applications over the Internet (electronic mail, social media etc).
Alan Holt, Chi-Yu Huang

Chapter 2. Overview of GNU/Linux

The GNU/Linux operating system software comprises four components:
Alan Holt, Chi-Yu Huang

Chapter 3. The Filesystem in Detail

Persistent data is stored in files. Files may contain text, database records, source code or executable instructions but as far as the kernel is concerned, the content of a file is merely an unstructured byte stream. Files are organised in directories.
Alan Holt, Chi-Yu Huang

Chapter 4. Building an Embedded System (First Pass)

In this chapter and the next (Chap. 5) we show how to build embedded GNU/Linux systems. This chapter is a first pass.
Alan Holt, Chi-Yu Huang

Chapter 5. Building an Embedded System (Second Pass)

In the previous chapter we showed how to build an embedded system which ran in a virtual machine (VM).
Alan Holt, Chi-Yu Huang

Chapter 6. Compiler Toolchains

Most software is written in high level programming languages such as C, Java, Perl or Python. High-level languages comprise machine independent instructions which cannot be directly executed by the processor. High-level language instructions, therefore, must be translated into machine level (or machine dependent) instructions.
Alan Holt, Chi-Yu Huang

Chapter 7. Embedded ARM Devices

ARM is a family of RISC (reduced instruction set computing) processors that are used extensively in the mobile device market. ARM Holdings plc designs the ARM family of processors but the processors themselves are manufactured by other companies under license.
Alan Holt, Chi-Yu Huang

Chapter 8. OpenWRT

OpenWRT is GNU/Linux distribution for embedded systems. However, it is not merely a static firmware image, it is a complete framework for building customised firmware images. The images comprise a bootloader, kernel, root filesystem and applications.
Alan Holt, Chi-Yu Huang
Additional information