SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.
This is the Rough Cut version of the printed book.
Up-to-the-Minute, Complete Guidance for Developing Embedded Solutions with Linux
Linux has emerged as today’s #1 operating system for embedded products. Christopher Hallinan’s Embedded Linux Primer has proven itself as the definitive real-world guide to building efficient, high-value, embedded systems with Linux. Now, Hallinan has thoroughly updated this highly praised book for the newest Linux kernels, capabilities, tools, and hardware support, including advanced multicore processors.
Drawing on more than a decade of embedded Linux experience, Hallinan helps you rapidly climb the learning curve, whether you’re moving from legacy environments or you’re new to embedded programming. Hallinan addresses today’s most important development challenges and demonstrates how to solve the problems you’re most likely to encounter.
You’ll learn how to build a modern, efficient embedded Linux development environment, and then utilize it as productively as possible. Hallinan offers up-to-date guidance on everything from kernel configuration and initialization to bootloaders, device drivers to file systems, and BusyBox utilities to real-time configuration and system analysis. This edition adds entirely new chapters on UDEV, USB, and open source build systems.
Foreword for the First Edition xxv
Foreword for the Second Edition xxvi
Preface xxvii
Acknowledgments for the First Edition xxxiii
Acknowledgments for the Second Edition xxxv
About the Author xxxvi
Chapter 1 Introduction 1
1.1 Why Linux 2
1.2 Embedded Linux Today 3
1.3 Open Source and the GPL 3
1.3.1 Free Versus Freedom 4
1.4 Standards and Relevant Bodies 5
1.4.1 Linux Standard Base 5
1.4.2 Linux Foundation 6
1.4.3 Carrier-Grade Linux 6
1.4.4 Mobile Linux Initiative: Moblin 7
1.4.5 Service Availability Forum 7
1.5 Summary 8
1.5.1 Suggestions for Additional Reading 8
Chapter 2 The Big Picture 9
2.1 Embedded or Not? 10
2.1.1 BIOS Versus Bootloader 11
2.2 Anatomy of an Embedded System 12
2.2.1 Typical Embedded Linux Setup 13
2.2.2 Starting the Target Board 14
2.2.3 Booting the Kernel 16
2.2.4 Kernel Initialization: Overview 18
2.2.5 First User Space Process: init 19
2.3 Storage Considerations 20
2.3.1 Flash Memory 20
2.3.2 NAND Flash 22
2.3.3 Flash Usage 23
2.3.4 Flash File Systems 24
2.3.5 Memory Space 25
2.3.6 Execution Contexts 26
2.3.7 Process Virtual Memory 28
2.3.8 Cross-Development Environment 30
2.4 Embedded Linux Distributions 32
2.4.1 Commercial Linux Distributions 33
2.4.2 Do-It-Yourself Linux Distributions 33
2.5 Summary 34
2.5.1 Suggestions for Additional Reading 35
Chapter 3 Processor Basics 37
3.1 Stand-Alone Processors 38
3.1.1 IBM 970FX 39
3.1.2 Intel Pentium M 39