Saturday, January 3, 2009

Building Embedded Linux Systems or Core Memory

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     ix
Introduction     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



1 comment:

  1. Thanks for this information. I read and like it. It is really usefull.
    Embedded Computers

    ReplyDelete