Embedded Linux Primer: A Practical Real-World Approach

3.9 avg rating
( 50 ratings by GoodReads )
 
9780131679849: Embedded Linux Primer: A Practical Real-World Approach

Comprehensive Real-World Guidance for Every Embedded Developer and Engineer

This book brings together indispensable knowledge for building efficient, high-value, Linux-based embedded products: information that has never been assembled in one place before. Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you’re most likely to face, demonstrates how to build an effective embedded Linux environment, and shows how to use it as productively as possible.

 

Hallinan begins by touring a typical Linux-based embedded system, introducing key concepts and components, and calling attention to differences between Linux and traditional embedded environments. Writing from the embedded developer’s viewpoint, he thoroughly addresses issues ranging from kernel building and initialization to bootloaders, device drivers to file systems.

 

Hallinan thoroughly covers the increasingly popular BusyBox utilities; presents a step-by-step walkthrough of porting Linux to custom boards; and introduces real-time configuration via CONFIG_RT--one of today’s most exciting developments in embedded Linux. You’ll find especially detailed coverage of using development tools to analyze and debug embedded systems--including the art of kernel debugging.

 

  • Compare leading embedded Linux processors
  • Understand the details of the Linux kernel initialization process
  • Learn about the special role of bootloaders in embedded Linux systems, with specific emphasis on U-Boot
  • Use embedded Linux file systems, including JFFS2--with detailed guidelines for building Flash-resident file system images
  • Understand the Memory Technology Devices subsystem for flash (and other) memory devices
  • Master gdb, KGDB, and hardware JTAG debugging
  • Learn many tips and techniques for debugging within the Linux kernel
  • Maximize your productivity in cross-development environments
  • Prepare your entire development environment, including TFTP, DHCP, and NFS target servers
  • Configure, build, and initialize BusyBox to support your unique requirements

 

About the Author

Christopher Hallinan, field applications engineer at MontaVista software, has worked for more than 20 years in assignments ranging from engineering and engineering management to marketing and business development. He spent four years as an independent development consultant in the embedded Linux marketplace. His work has appeared in magazines, including Telecommunications Magazine, Fiber Optics Magazine, and Aviation Digest.

 

 

"synopsis" may belong to another edition of this title.

About the Author:

Christopher Hallinan is currently field applications engineer for Monta Vista Software, living and working in Massachusetts. Chris has spent more than 25 years in the networking and communications marketplace mostly in various product development roles, where he developed a strong background in the space where hardware meets software. Prior to joining Monta Vista, Chris spent four years as an independent Linux consultant providing custom Linux board ports, device drivers, and bootloaders. Chris’s introduction to the open source community was through contributions to the popular U-Boot bootloader. When not messing about with Linux, he is often found singing and playing a Taylor or Martin.

Excerpt. © Reprinted by permission. All rights reserved.:

Embedded Linux Primer

Embedded Linux Primer

Preface

Although many good books cover Linux, none brings together so many dimensions of information and advice specifically targeted to the embedded Linux developer. Indeed, there are some very good books written about the Linux kernel, Linux system administration, and so on. You will find references right here in this book to many of the ones that I consider to be at the top of their categories.

Much of the material presented in this book is motivated by questions I've received over the years from development engineers, in my capacity as an embedded Linux consultant and my present role as a Field Application Engineer for Monta Vista Software, the leading vendor of embedded Linux distributions.

Embedded Linux presents the experienced software engineer with several unique challenges. First, those with many years of experience with legacy real-time operating systems (RTOSes) find it difficult to transition their thinking from those environments to Linux. Second, experienced application developers often have difficulty understanding the relative complexities of a cross-development environment.

Although this is a primer, intended for developers new to embedded Linux, I am confident that even developers who are experienced in embedded Linux will find some useful tips and techniques that I have learned over the years.

Practical Advice for the Practicing Embedded Developer

This book contains my view of what an embedded engineer needs to know to get up to speed fast in an embedded Linux environment. Instead of focusing on Linux kernel internals, the kernel chapter in this book focuses on the project nature of the kernel and leaves the internals to the other excellent texts on the subject. You will learn the organization and layout of the kernel source tree. You will discover the binary components that make up a kernel image, and how they are loaded and what purpose they serve on an embedded system. One of my favorite figures in the book is Figure 5-1, which schematically illustrates the build process of a composite kernel image.

In the pages of this book, you will learn how the build system works and how to incorporate into the Linux kernel your own custom changes that are required for your own projects. You will discover the mechanism used to drive the configuration of different architectures and features within the Linux kernel source tree and, more important, how to modify this system to customize it to your own requirements. We also cover in detail the kernel command-line mechanism. You will learn how it works, how to configure the kernel's runtime behavior for your requirements, and how to extend this functionality to your own project. You will learn how to navigate the kernel source code and how to configure the kernel for specific tasks related to an embedded system. You will learn many useful tips and tricks for your embedded project, from bootloaders, system initialization, file systems, and Flash memory to advanced kernel- and application-debugging techniques.

Intended Audience

This book is intended for programmers with a working knowledge of programming in C. I assume that you have a rudimentary understanding of local area networks and the Internet. You should understand and recognize an IP address and how it is used on a simple local area network. I also assume that you have an understanding of hexadecimal and octal numbering systems, and their common usage in a text such as this.

Several advanced concepts related to C compiling and linking are explored, so you will benefit from having at least a cursory understanding of the role of the linker in ordinary C programming. Knowledge of the GNU make operation and semantics will also prove beneficial.

What This Book Is Not

This book is not a detailed hardware tutorial. One of the difficulties the embedded developer faces is the huge variety of hardware devices in use today. The user manual for a modern 32-bit processor with some integrated peripherals can easily exceed 1,000 pages. There are no shortcuts. If you need to understand a hardware device from a programmer's point of view, you will need to spend plenty of hours in your favorite reading chair with hardware data sheets and reference guides, and many more hours writing and testing code for these hardware devices!

This is also not a book about the Linux kernel or kernel internals. In this book, you won't learn about the intricacies of the Memory Management Unit (MMU) used to implement Linux's virtual memory-management policies and procedures; there are already several good books on this subject. You are encouraged to take advantage of the "Suggestions for Additional Reading" section found at the end of every chapter.

Conventions Used

Filenames and code statements are presented in Courier. Commands issued by the reader are indicated in bold Courier. New terms or important concepts are presented in italics.

When you see a pathname preceded with three dots, this references a well-known but unspecified top-level directory. The top-level directory is context dependent but almost universally refers to a top-level Linux source directory. For example, .../arch/ppc/kernel/setup.c refers to the setup.c file located in the architecture branch of a Linux source tree. The actual path might be something like ~/sandbox/linux.2.6.14/arch/ppc/kernel/setup.c.

Organization of the Book

Chapter 1, "Introduction," provides a brief look at the factors driving the rapid adoption of Linux in the embedded environment. Several important standards and organizations relevant to embedded Linux are introduced.

Chapter 2, "Your First Embedded Experience," introduces the reader to many concepts related to embedded Linux upon which we build in later chapters.

In Chapter 3, "Processor Basics," we present a high-level look at the more popular processors and platforms that are being used to build embedded Linux systems. We examine selected products from many of the major processor manufacturers. All of the major architecture families are represented.

Chapter 4, "The Linux Kernel—A Different Perspective," examines the Linux kernel from a slightly different perspective. Instead of kernel theory or internals, we look at its structure, layout, and build construction so you can begin to learn your way around this large software project and, more important, learn where your own customization efforts must be focused. This includes detailed coverage of the kernel build system.

Chapter 5, "Kernel Initialization," details the Linux kernel's initialization process. You will learn how the architecture- and bootloader-specific image components are concatenated to the image of the kernel proper for downloading to Flash and booting by an embedded bootloader. The knowledge gained here will help you customize the Linux kernel to your own embedded application requirements.

Chapter 6, "System Initialization," continues the detailed examination of the initialization process. When the Linux kernel has completed its own initialization, application programs continue the initialization process in a predetermined manner. Upon completing Chapter 6, you will have the necessary knowledge to customize your own userland application startup sequence.

Chapter 7, "Bootloaders," is dedicated to the booloader and its role in an embedded Linux system. We examine the popular open-source bootloader U-Boot and present a porting example. We briefly introduce additional bootloaders in use today so you can make an informed choice about your particular requirements.

Chapter 8, "Device Driver Basics," introduces the Linux device driver model and provides enough background to launch into one of the great texts on device drivers, listed as "Suggestions for Additional Reading" at the end of the chapter.

Chapter 9, "File Systems," presents the more popular file systems being u...

"About this title" may belong to another edition of this title.

Top Search Results from the AbeBooks Marketplace

International Edition
International Edition

1.

Hallinan, Christopher
ISBN 10: 0131679848 ISBN 13: 9780131679849
New Softcover Quantity Available: 10
International Edition
Seller
bookscollection
(Delhi, DELHI, India)
Rating
[?]

Book Description Book Condition: Brand New. PAPERBACK,Book Condition New, Brand New, Softcover, International Edition. We Do not Ship APO FPO AND PO BOX. Cover Image & ISBN may be different from US edition but contents as US Edition. Printing in English language. Quick delivery by USPS/UPS/DHL/FEDEX/ARAMEX ,Customer satisfaction guaranteed. We may ship the books from Asian regions for inventory purpose. Bookseller Inventory # ABESTTND8057

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 18.74
Convert Currency

Add to Basket

Shipping: US$ 3.80
From India to U.S.A.
Destination, Rates & Speeds
International Edition
International Edition

2.

Hallinan, Christopher
ISBN 10: 0131679848 ISBN 13: 9780131679849
New Softcover Quantity Available: 10
International Edition
Seller
bookscollection
(Delhi, DELHI, India)
Rating
[?]

Book Description Book Condition: Brand New. PAPERBACK,Book Condition New, Brand New, Softcover, International Edition. We Do not Ship APO FPO AND PO BOX. Cover Image & ISBN may be different from US edition but contents as US Edition. Printing in English language. Quick delivery by USPS/UPS/DHL/FEDEX/ARAMEX ,Customer satisfaction guaranteed. We may ship the books from Asian regions for inventory purpose. Bookseller Inventory # ABEDUPPP5582

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 18.74
Convert Currency

Add to Basket

Shipping: US$ 3.80
From India to U.S.A.
Destination, Rates & Speeds

3.

Hallinan, Christopher
Published by Prentice Hall (2006)
ISBN 10: 0131679848 ISBN 13: 9780131679849
New Softcover Quantity Available: 1
Seller
Rating
[?]

Book Description Prentice Hall, 2006. Softcover. Book Condition: New. This specific softcover book is in new condition and has a cover free from blemishes and scuffing with sharp corners and edges. The pages are clean, crisp, unmarked and uncreased . We package all books in custom cardboard book boxes for shipment and ship daily with tracking numbers.; "Comprehensive Real-World Guidance for Every Embedded Developer and EngineerThis book brings together indispensable knowledge for building efficient, high-value, Linux-based embedded products: information that has never been assembled in one place before. Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you’re most likely to face, demonstrates how to build an effective embedded Linux environment, and shows how to use it as productively as possible. Hallinan begins by touring a typical Linux-based embedded system, introducing key concepts and components, and calling attention to differences between Linux and traditional embedded environments. Writing from the embedded developer’s viewpoint, he thoroughly addresses issues ranging from kernel building and initialization to bootloaders, device drivers to file systems. Hallinan thoroughly covers the increasingly popular BusyBox utilities; presents a step-by-step walkthrough of porting Linux to custom boards; and introduces real-time configuration via CONFIG_RT--one of today’s most exciting developments in embedded Linux. You’ll find especially detailed coverage of using development tools to analyze and debug embedded systems--including the art of kernel debugging. Compare leading embedded Linux processorsUnderstand the details of the Linux kernel initialization processLearn about the special role of bootloaders in embedded Linux systems, with specific emphasis on U-BootUse embedded Linux file systems, including JFFS2--with detailed guidelines for building Flash-resident file system imagesUnderstand the Memory Technology Devices subsystem for flash (and other) memory devicesMaster gdb, KGDB, and hardware JTAG debuggingLearn many tips and techniques for debugging within the Linux kernelMaximize your productivity in cross-development environmentsPrepare your entire development environment, including TFTP, DHCP, and NFS target serversConfigure, build, and initialize BusyBox to support your unique requirements"; 8.98 X 7.09 X 1.10 inches; 576 pages. Bookseller Inventory # 8434

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 28.80
Convert Currency

Add to Basket

Shipping: US$ 3.99
Within U.S.A.
Destination, Rates & Speeds

4.

Hallinan, Christopher
Published by Prentice Hall (2006)
ISBN 10: 0131679848 ISBN 13: 9780131679849
New Paperback Quantity Available: 1
Seller
Ergodebooks
(RICHMOND, TX, U.S.A.)
Rating
[?]

Book Description Prentice Hall, 2006. Paperback. Book Condition: New. 1. Bookseller Inventory # DADAX0131679848

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 35.21
Convert Currency

Add to Basket

Shipping: US$ 3.99
Within U.S.A.
Destination, Rates & Speeds

5.

Hallinan, Christopher
Published by Prentice Hall
ISBN 10: 0131679848 ISBN 13: 9780131679849
New PAPERBACK Quantity Available: 1
Seller
HondyElBooks
(Van Nuys, CA, U.S.A.)
Rating
[?]

Book Description Prentice Hall. PAPERBACK. Book Condition: New. 0131679848 NEW BOOK! HAS SOME SLIGHT SHELF WEAR! NO CD OR ACCESS CODE!!! FAST SHIPPING! GREAT CUSTOMER SERVICE! ENERGETIC TEAM!HONDY. Bookseller Inventory # SKU1005307

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 37.00
Convert Currency

Add to Basket

Shipping: US$ 3.99
Within U.S.A.
Destination, Rates & Speeds

6.

Hallinan, Christopher
Published by Prentice Hall (2006)
ISBN 10: 0131679848 ISBN 13: 9780131679849
New Paperback Quantity Available: 1
Seller
Irish Booksellers
(Rumford, ME, U.S.A.)
Rating
[?]

Book Description Prentice Hall, 2006. Paperback. Book Condition: New. book. Bookseller Inventory # 0131679848

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 41.76
Convert Currency

Add to Basket

Shipping: FREE
Within U.S.A.
Destination, Rates & Speeds

7.

Hallinan, Christopher
ISBN 10: 0131679848 ISBN 13: 9780131679849
New Quantity Available: 1
Seller
Castle Rock
(Pittsford, NY, U.S.A.)
Rating
[?]

Book Description Book Condition: Brand New. Book Condition: Brand New. Bookseller Inventory # 97801316798491.0

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 48.95
Convert Currency

Add to Basket

Shipping: US$ 3.99
Within U.S.A.
Destination, Rates & Speeds

8.

Hallinan, Christopher
Published by Prentice Hall
ISBN 10: 0131679848 ISBN 13: 9780131679849
New PAPERBACK Quantity Available: 1
Seller
Cloud 9 Books
(West Palm Beach, FL, U.S.A.)
Rating
[?]

Book Description Prentice Hall. PAPERBACK. Book Condition: New. 0131679848 New Condition. Bookseller Inventory # NEW6.0048197

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 59.99
Convert Currency

Add to Basket

Shipping: US$ 4.99
Within U.S.A.
Destination, Rates & Speeds