Product: 1430219122
Linux may be well known for its use on servers and desktops, but it can’t be beaten for sheer numbers in embedded devices, with about 20% of the 2 billion annual embedded device market using Linux. With 18 chapters and 430 pages including an adequate 25 page index, Pro Linux Embedded Systems covers the process of developing and supporting a customised Linux build for an embedded device through the full product life-cycle. While the book is invaluable in providing a guide for those involved in building and configuring Linux for embedded project development, anyone interested in how to develop their own customised Linux build will also find it educational, particularly if their project involves lower powered hardware than the typical modern desktop. Given the advances in Linux embedded development, this recently published book (Dec 2009) is also more up to date than many other books covering this topic.
Coverage of embedded development per chapter is as follows:
1 About Embedded Linux
2 Configuring the Software Environment
3 Target Emulation and Virtual Machines
4 Starting Your Project
- includes a very good section on applying patches
5 Getting Linux for Your Board
- covers the pros and cons of the different options for obtaining the appropriate Linux source for your embedded system plus licensing issues, in particular, to what extent GPL covers the development compiler and toolchain. Also included is a very good set of questions for your prospective board vendors.
6 Creating a Linux Distribution from Scratch
- how Linux boots and the kernel starts up
7 Booting the Board
- excellent description of the Linux boot process and how to optimise size and speed for an embedded system.
8 Configuring the Application Development Environment
- useful information on suitable development languages for embedded systems and their relative strengths and weaknesses. Profiling tool usage, memory leak detection, static code checking techniques, typical IDEs used.
9 Application Development
- development process; host or development system?
10 Debugging Applications
- debugging methods; remote debugging with different IDEs.
11 Kernel Configuration and Development
- very good description of kernel source patching, configuration and development.
12 Real Time
- Excellent discussion on what real time means and how to configure Linux as a soft real time system using the CONFIG_PREEMPT_RT patch, how to avoid real time gotchas and how to use tools to measure and reduce latency.
13 Using Open Source Projects
- How an Open Source Project is structured, understanding licensing and a description of common licensing types. Source control systems including CVS, Subversion, Mercurial and GIT. Use of a cross compiler, configuring, building and installing your project software.
14 BusyBox
- Excellent coverage of how to customise, build, install and extend BusyBox, a utility that implements most of command line executables you are likely to need for your product.
15 System Design
- Very good description of the different file system choices available and the pros and cons for their use in embedded systems. How to design the Root File System, how to create and mount file systems with specific coverage of Flash devices, setting up init and inittab, running the main application, setting ownership and permissions, security options - overviews of SELinux and PAM vs built in security.
16 System Tuning
- The spectrum of embedded systems is divided into 3 or fewer Megabytes, 16 - 32 Megabytes and more than a Gigabyte with the author recommending the appropriate tuning approach for each. Program size and kernel optimisation techniques are covered along with a good section on how to reduce boot time. An excellent table showing whether you really need what you think might be needed in your Root File System is also included.
17 Deploying Applications
- Covers the Embedded Development process; Requirements, Industrial and Mechanical Design, Electrical and Manufacturing Engineering, Software Design and Engineering, Manufacturing. Deployment Strategies and Tactics; Boot Loader Configuration - using expect. Deployment Root File System - when and when not to follow the Linux File System Hierarchy Standard.
18 Handling Field Updates
- Root File System and Kernel upgrades via Forklift, Parallel System or Do it Yourself upgrades. RPM, dpkg, ipkg and apt package management is covered with a very good section of making and installing packages. Finally, what to do when field updates fail.
This book is definitely worth a place on your reference shelf if you are involved in developing an embedded Linux system. It includes well explained example sessions illustrating how to install, configure and cross compile the kernel and development toolchains and how to develop, build, transfer and debug code on the embedded development host. The only real disappointment with this book is the annoying frequency of grammatical errors (e.g. missing or incorrect words, incomplete sentences) which will hopefully disappear in the next edition.
Rating: 4
1430219122
Count: 5
Review by Neil G. Matthews
on 2020-03-10