Synopses & Reviews
Modern appliances are complex machines with processors, operating systems, and application software. While there are books that will tell you how to run Linux on embedded hardware, and books on how to build a Linux application, Linux Appliance Design is the first book to demonstrate how to merge the two and create a Linux appliance. You'll see for yourself why Linux is the embedded operating system of choice for low-cost development and a fast time to market.
Linux Appliance Design shows how to build better appliances-appliances with more types of interfaces, more dynamic interfaces, and better debugged interfaces. You'll learn how to build backend daemons, handle asynchronous events, and connect various user interfaces (including web, framebuffers, infrared control, SNMP, and front panels) to these processes for remote configuration and control. Linux Appliance Design also introduces the Run-Time Access library, which provides a uniform mechanism for user interfaces to communicate with daemons.
Learn to:
Separate your user interfaces from your daemonsGive user interfaces run time access to configuration, status, and statisticsAdd professional network management capabilities to your applicationUse SNMP and build a MIBBuild a web-based appliance interfaceBuild a command line interface (CLI)Build a framebuffer interface with an infrared control as inputManage logs and alarms on an applianceCompanion CD includes a prototype appliance-a home alarm system-that supports the book's lessons.
Synopsis
While there are books that tell readers how to run Linux on embedded hardware and books on how to build a Linux application, this volume is the first book to demonstrate how to merge the two to create a Linux appliance.
About the Author
Bob Smith has the distinction of being the first openly gay comedian to appear on The Tonight Show and also have his own HBO Comedy half hour. Other TV shows include Politically Incorrect: The Late, Late Show; Entertainment Tonight; Tom Snyder; and Comedy Central's Out There. He's written for Amblin Films. The MTV Video Awards, Dennis Miller, and Roseanne and was a staff writer for Fox's MAD-TV. Smith is a regular contributor to Out magazine, where he writes the popular monthly list column and feature articles. He lives in New York City.Hardin is former dean of the Potter College of Arts, Humanities, and Social Sciences at Western Kentucky University, and is currently the university's assistant to the provost for diversity enhancement.Graham Phillips is the author of The End of Eden, The Templars and the Ark of the Covenant, Atlantis and the Ten Plagues of Egypt, The Chalice of Magdalene, and The Moses Legacy. He lives in the Midlands of England.BILL PIERCE, a collegiate half-miler and experienced marathoner, is professor and chair of Furman's Health and Exercise Science Department.
SCOTT MURR, an experienced marathoner and 10-time Ironman Triathlon finisher, is director of Furman's Fitness Center and a lecturer in the Health and Exercise Science Department at Furman.
RAY MOSS, who designed the FIRST laboratory physiological testing protocol, is professor of health and exercise science and director of the Molnar Human Performance Laboratory at Furman.
Table of Contents
; ACKNOWLEDGMENTS; INTRODUCTION; What This Book Is About; What This Book Is Not About; Who Should Read This Book; Why Use Linux?; Linux Appliance Design; Chapter 1: APPLIANCE ARCHITECTURE; 1.1 UIs and Daemons; 1.2 The Architecture of the Laddie Appliance; 1.3 Summary; Chapter 2: MANAGING DAEMONS; 2.1 Common Approaches to Managing Daemons; 2.2 Control and Status Protocols; 2.3 Summary; Chapter 3: USING RUN-TIME ACCESS; 3.1 RTA Appliance Architecture; 3.2 RTA Daemon Architecture; 3.3 Telling RTA About Your Columns and Tables; 3.4 Building Your First RTA Program; 3.5 A Little SQL; 3.6 Introduction to RTA's Built-in Tables; 3.7 The RTA Table Editor; 3.8 Summary; Chapter 4: BUILDING AND SECURING DAEMONS; 4.1 How to Build a Daemon; 4.2 How to Secure a Daemon; 4.3 A Prototype Daemon; 4.4 Summary; 4.5 Further Reading; Chapter 5: THE LADDIE ALARM SYSTEM: A SAMPLE APPLIANCE; 5.1 Introduction to Alarm Systems; 5.2 A Functional Specification for Laddie; 5.3 Laddie's Hardware Design; 5.4 Laddie's Software Design; 5.5 Building and Testing ladd; 5.6 Summary; Chapter 6: LOGGING; 6.1 Do You Need Logging?; 6.2 Architecture of a Logging System; 6.3 syslog; 6.4 On-Demand Logging; 6.5 Summary; Chapter 7: LADDIE EVENT HANDLING; 7.1 Rationale for a New Event-Handling System; 7.2 Features and Capabilities of logmuxd; 7.3 Configuring logmuxd; 7.4 Examples Using logmuxd; 7.5 Summary; Chapter 8: DESIGNING A WEB INTERFACE; 8.1 Web Basics; 8.2 Establishing Requirements; 8.3 Choosing a Webserver; 8.4 UI Design; 8.5 Implementation; 8.6 Improving Our Design; 8.7 Resources; 8.8 Summary; Chapter 9: DESIGNING A COMMAND LINE INTERFACE; 9.1 Why You Need a CLI; 9.2 Types of CLIs; 9.3 Giving Users Access to a CLI; 9.4 The Laddie CLI; 9.5 Code Review for the test Command; 9.6 Summary; Chapter 10: BUILDING A FRONT PANEL INTERFACE; 10.1 Buttons, LEDs, and LCDs; 10.2 Designing a Front Panel UI; 10.3 The Laddie Front Panel; 10.4 Improving Our Design; 10.5 Summary; Chapter 11: DESIGNING A FRAMEBUFFER INTERFACE; 11.1 How Video Memory Works; 11.2 The Linux Framebuffer Device Driver; 11.3 Graphics Libraries; 11.4 "Hello, world!" with SDL; 11.5 Graphical UI Toolkits; 11.6 The Laddie Framebuffer UI; 11.7 Summary; Chapter 12: INFRARED REMOTE CONTROL; 12.1 Communicating with Infrared Light; 12.2 Hardware for Remote Control Receivers; 12.3 Installing and Configuring LIRC for the Laddie Appliance; 12.4 Summary; Chapter 13: HANDS-ON INTRODUCTION TO SNMP; 13.1 A Quick Note on Terminology; 13.2 The Software; 13.3 Installing SNMP; 13.4 Exploring with SNMP; 13.5 Writing Values with SNMP; 13.6 SNMP Traps; 13.7 Summary; Chapter 14: DESIGNING AN SNMP MIB; 14.1 Our Goal; 14.2 Your Enterprise Number; 14.3 The MIB Files; 14.4 LADDIE-GROUP-SMI; 14.5 Creating the LAD-MIB; 14.6 Validating Your MIB; 14.7 Summary; Chapter 15: IMPLEMENTING YOUR SNMP MIB; 15.1 The Net-SNMP Agent; 15.2 The MIB Skeleton: mib2c; 15.3 The Header File: ladProject.h; 15.4 The Code File: ladProject.c; 15.5 Makefile Revisited; 15.6 Debugging; 15.7 Traps; 15.8 Summary; RTA REFERENCE; Overview of RTA; RTA Constants; Data Structures; API Subroutines; SELECT and UPDATE Syntax; Internal RTA Tables; Debug Configuration; Error Messages; Callback Routines; REVIEW OF SNMP; Why SNMP?; Agents and Managers; Namespace, Grammar, and Protocol; The MIB; The OID; MIB-2; The SMI; The SNMP Protocol; SNMPv1, SNMPv2, and SNMPv3; SNMP Data Types; SNMP Tables; Defining New Types; Structure of a MIB File; Summary; INSTALLING A FRAMEBUFFER DEVICE DRIVER; Finding Framebuffer Device Drivers for Your Video Card; Configuring the Framebuffer Device Driver; A DB-TO-FILE UTILITY; Overview; Table Definitions; A tbl2filed Example; Security Notes; THE LADDIE APPLIANCE BOOTABLE CD; Running the Laddie Appliance; Exploring the CD Contents; Rebuilding the Laddie Appliance; COLOPHON;