Building Embedded Linux Systems
Author: Karim Yaghmour
There's a great deal of excitement surrounding the use of Linux in embedded systems -- for everything from cell phones to car ABS systems and water-filtration plants -- but not a lot of practical information. Building Embedded Linux Systems offers an in-depth, hard-core guide to putting together embedded systems based on Linux. Updated for the latest version of the Linux kernel, this new edition gives you the basics of building embedded Linux systems, along with the configuration, setup, and use of more than 40 different open source and free software packages in common use. The book also looks at the strengths and weaknesses of using Linux in an embedded system, plus a discussion of licensing issues, and an introduction to real-time, with a discussion of real-time options for Linux. This indispensable book features arcane and previously undocumented procedures for: Building your own GNU development toolchain Using an efficient embedded development framework Selecting, configuring, building, and installing a target-specific kernel Creating a complete target root filesystem Setting up, manipulating, and using solid-state storage devices Installing and configuring a bootloader for the target Cross-compiling a slew of utilities and packages Debugging your embedded system using a plethora of tools and techniques Using the uClibc, BusyBox, U-Boot, OpenSSH, thttpd, tftp, strace, and gdb packages By presenting how to build the operating system components from pristine sources and how to find more documentation or help, Building Embedded Linux Systems greatly simplifies the task of keeping complete control over your embedded operating system.
Table of Contents:
Preface ixIntroduction 1
Definitions 2
Real Life and Embedded Linux Systems 5
Design and Implementation Methodology 27
Basic Concepts 33
Types of Hosts 33
Types of Host/Target Development Setups 39
Types of Host/Target Debug Setups 41
Generic Architecture of an Embedded Linux System 43
System Startup 47
Types of Boot Configurations 48
System Memory Layout 51
Hardware Support 55
Processor Architectures 56
Buses and Interfaces 64
I/O 72
Storage 79
General-Purpose Networking 81
Industrial-Grade Networking 83
System Monitoring 85
Development Tools 87
A Practical Project Workspace 89
GNU Cross-Platform Development Toolchain 91
C Library Alternatives 115
Java 129
Perl 131
Python 134
Other Programming Languages 135
Eclipse: An Integrated Development Environment 135
Terminal Emulators 147
Kernel Considerations 155
Selecting a Kernel 156
Configuring the Kernel 161
Compiling the Kernel 165
Installing the Kernel 167
In the Field 169
Root Filesystem Content 173
Basic Root Filesystem Structure 173
Libraries 177
Kernel Modules 183
Kernel Images 183
Device Files 184
Main System Applications 193
Custom Applications 201
System Initialization 201
Storage Device Manipulation 209
MTD-Supported Devices 209
Disk Devices 231
To Swap or Not To Swap 234
Root Filesystem Setup 235
Filesystem Types for Embedded Devices 235
Writing a Filesystem Image to Flash Using an NFS-Mounted Root Filesystem 254
Placing a Disk Filesystem on a RAM Disk 254
Rootfs and Initramfs 255
Choosing a Filesystem's Type and Layout 258
Handling Software Upgrades 261
Setting Up the Bootloader 273
Embedded Bootloaders 274
Server Setup for Network Boot 278
Using the U-Boot Bootloader 285
Setting Up Networking Services 301
Network Settings 302
Busybox 303
Dynamic Configuration Through DHCP 303
The Internet Super-Server 305
Remote Administration with SNMP 309
Network Login Through Telnet 312
Secure Communication with SSH 314
Serving Web Content Through HTTP 317
Provisioning 321
Debugging Tools 325
Eclipse 326
Debugging Applications with gdb 328
Tracing 333
Performance Analysis 336
Memory Debugging 344
A Word on Hardware Tools 348
Introduction to Real-Time Linux 351
What Is Real-Time Processing? 351
Should Your Linux Be Real-Time? 352
Common Real-Time Kernel Requirements 356
Some Typical Users of Real-Time Computing Technology 358
The Linux Paths to Real-Time 360
The Xenomai Real-Time System 365
Porting Traditional RTOS Applications to Linux 366
The Xenomai Architecture 368
How Xenomai Works 375
The Real-Time Driver Model 379
Xenomai, Chameleon by Design 385
The RT Patch 387
Interrupts As Threads 388
Priority Inheritance 398
Configuring the Kernel with the RT Patch 401
High-Resolution Timers 407
The Latency Tracer 410
Conclusion 417
Index 419
Look this: Its Not All in Your Head or Carved in Sand
Core Memory: A Visual Survey of Vintage Computers
Author: Mark Richards
An unprecedented combination of computer history and striking images, Core Memory reveals modern technology's evolution through the world's most renowned computer collection, the Computer History Museum in the Silicon Valley. Vivid photos capture these historically important machines including the Eniac, Crays 1 3, Apple I and II while authoritative text profiles each, telling the stories of their innovations and peculiarities. Thirty-five machines are profiled in over 100 extraordinary color photographs, making Core Memory a surprising addition to the library of photography collectors and the ultimate geek-chic gift.
Forbes
It's almost laughable to think that 40 years ago, a computer with 64K of memory could cost more than $1 million. Even so, we'd be nowhere without those dinosaurs--their punch cards, vacuum tubes and magnetic tape drives paved the way for the PCs of today.
Core Memory, a collection of deliciously detailed photographs taken at the Computer History Museum in Mountain View, California, pays homage to the proto-computers of the 1940s, '50s, '60s and '70s--not only as onetime technical marvels, but also as fetching, highly collectible objects d'art.Thomas Jackson
Thanks for this information. I read and like it. It is really usefull.
ReplyDeleteEmbedded Computers