I am not paranoid... honest, but we are all surrounded, surrounded by consumer appliances such as wireless network routers, media centers and even some clever fridges and microwaves. I am even sure that my elder sons Robosapien is out to get me! At least the book Linux Appliance Design: A Hands-On Guide to Building Linux Appliances by the experienced Engineers (and now writers) Bob Smith, John Hardin, Graham Philips, and Bill Piece allows us to know our hidden enemies and build better appliance mousetraps.
The book’s cover
A jolly good read with some fun eye candy; as suggested by the book’s cover, the multiple graphics within are excellent and supportive of the content’s theme. I personally recommend the graphic artist’s work for it’s ability to capture the book’s spirit.
The content of the book is not just about humor driven graphics, thankfully the book is experience soaked and quite insightful.
Not common for this high bandwidth internet generation, the publishers No Starch have thoughtfully included a bootable CDROM with all the source code needed to get you far beyond starting.
No Starch have thoughtfully included a bootable CDROM with all the source code needed to get you far beyond starting
A relatively thick book of 356 pages and fifteen chapters containing a decent amount of technical commonsense with a mild C and SQL bias, Linux Appliance Design starts from the foundations and builds upon it a cohesive conceptual edifice.
Starting strongly with the architecture of the example application. In this case a Linux based alarm system for a pretend house. This book describes succinctly all the prerequisite features of a multilayer Linux biases modern application
The Run-Time Access daemon described in chapter three enables a degree of simplicity for design purposes. Being able to connect to your application via a serial port or TCP/IP via a PSQL client with SQL statements simplifies coding vastly and is a clear shortcut to a stable and quick-to-market product. Chapter three sets the scene later for the now elementary design of a web interface via PHP or via the command line.
The depth of detail is outlined by the fact that the authors describe infrared remote controls, logging and even enterprise supportive features such as SNMP.
Used to thinking in terms of web interfaces, I particularly enjoyed the very modern discussion of the use of PHP and AJAX for a responsive GUI. Figure 8-12 (page 127) elegantly clarifies the design and the comparison of web servers on page 111 defends well the choice of Apache, CGI and FastCGI for development.
For those of you that, like me, enjoy inflicting burn marks on the coffee table and blisters on unsuspecting audiences, then building your own infrared remote control (chapter 12) is worth rereading a few times especially the aside on page 202 on the subject of oscilloscope signals.
For those of you that, like me, enjoy inflicting burn marks on the coffee table and blisters on unsuspecting audiences
Who’s this book for?
Quoting the book itself, and I don’t disagree; “This book is for Linux programmers who want to build a custom Linux Appliance and support multiple user interfaces".
Relevance to free software
Linux has a strong hold on the embedded market that can only dominate more over time. From my clouded memory, I seem to remember reading that recently 30% of all deployed embedded devices were made with a Linux kernel... quite an achievement.
The book itself talks mostly over free software daemons, protocols and a little SQL, C, SDL, TCL/TK and of course the authors’ own software
Graphically pleasing, the condensation of four worthy Engineers’ experience, the book is truly a delight to read for those interested in stepping into the Linux Appliance Design fray.
The author’s use of a Real Time Access library highly simplifies interface building.
To be honest, I have to try hard to find any negatives. The book is C biased and requires some basic programming skills.
Linux Appliance Design: A Hands-on Guide to Building Linux Appliances
Bob Smith, John Hardin, Graham Phillips, and Bill Pierce
Alan Berg Bsc. MSc. PGCE, has been a lead developer at the Central Computer Services at the University of Amsterdam since 1998. In his spare time, he writes articles, book reviews and has authored three books. He has a degree, two masters and a teaching qualification. In previous incarnations, he was a technical writer, an Internet/Linux course writer, and a science teacher. He likes to get his hands dirty with the building and gluing of systems. He remains agile by playing computer games with his sons who (sadly) consistently beat him physically, mentally and morally at least twice in any given day.