Embedded Operating Systems: A Practical Approach (Undergraduate Topics in Computer Science)
Alan Holt, Chi-Yu Huang
Format: PDF / Kindle (mobi) / ePub
This practically-oriented textbook/reference 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 operating system.
Topics and 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
Ideal for undergraduate and graduate level students studying operating systems, the book will also prove to be highly useful to industry professionals involved in this area.
cost of increasing the binary image size. In some cases, however, the increase in code can have the effect of reducing performance 3 -Ofast Performs optimisations that disregards standards compliance Here we present a simple example of code optimisation. We compare optimisation level 1 with level 0 (no optimisation) using code in Listing 6.5. Listing 6.5 Optimisation example: content of opt.c Compile the opt.c for optimisation levels 0 and 1: Run the executable for optimisation level 0:
variance function defined in var.c. The modified code is shown in Listing 6.11. Listing 6.11 Modified content of file analysis.c Re-compile analysis.c with the stat library: The stat library is linked to the analysis program using the -l option. We also need to tell GCC the location of library with the -L option. Verify the results of the analysis program: In this example, we compile the analysis program using a shared library. Build the shared library with the command-line below: We
the time of writing this book, there are a number of branches OpenWRT which are listed in Table 8.1.Table 8.1Branches of OpenWRT (at the time of writing this book) Name Verion Kernel Comment White Russian 0.9 2.4 Old version Kamikaze 7.06–8.09.2 2.6 Old verson Backfire 10.03 and 10.03.1 2.6.32 Old version still supported Attitude adjustment 12.09 3.3 Current version Barrier breaker Development In this chapter we introduce two devices which run OpenWRT, Open-mesh and
libraries and Unix utilities. We also create the boot scripts and system configuration files. Chapter 6 Compiler Toolchains. In this chapter we introduce the concept of the compiler toolchain (or just toolchain). Compilers translate instructions from a high-level programming into machine dependent binary executable code. The “compiler” is rarely a single program, but rather a suite of programs, hence a toolchain. We also describe how to build a cross toolchain so that programs for a specific
parts, a compressed part preceded by uncompressed header. The bootloader loads the kernel image into memory and passes control to the first instruction in the uncompressed header. This part of the kernel runs in real mode (for i386 processors). After completing some initialisation tasks it switches to protected mode. The kernel relocates itself (several times) in memory before decompressing the compressed part of the image. Control is then passed to this part of the kernel. This thread of