Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Polls  |  Forum

Keywords: Match:
Book review: John Lombardo's Embedded Linux
by Rick Lehrbaum (Updated Aug. 21, 2001)

I first heard about Embedded Linux last summer at an embedded Internet workshop. I was standing near the Embedded Linux Consortium's exhibit area, when John Lombardo introduced himself to me and asked if I had any suggestions for small off-the-shelf x86 systems that could be used as the basis of a Linux-based home router appliance he was developing. After I showed him a small box at Lineo's booth and told him about some set-top-box platforms made by GCT-Allwell, he explained that he was working on the world's first book about Embedded Linux, and that it was slated to be published in July, 2001. "Great idea!" I exclaimed.

Well here we are, twelve months later, and Lombardo's Embedded Linux (ISBN: 073570998X; published by New Riders) is real! In contrast to the inevitable lateness of software releases, Lombardo's book seems to have hit the shelves of bookstores right on schedule. As far as I know, it's the first -- and, at the time of this writing, the only -- book published on this timely subject, thrusting it very much into the spotlight and making it a "must read" for all developers (and many others) interested in exploring the subject of embedding Linux.

[Editor's note: Subsequent to publishing this book review, we learned of an earlier book on an Embedded Linux topic, which has a much more limited scope. Please see footnote.]

What's it about?

Embedded Linux covers a lot of territory. There are four main sections, on software, hardware, application development, and supplementary references, which are further organized into ten chapters and four appendices. Here's a summary of the table of contents . . .
    Introduction

    Part I: Software

      1: Software Considerations
      2: Minimal Linux
      3: Software Configuration
      4: Booting Your Embedded Linux Device

    Part II: Hardware

      5: Hardware Considerations

    Part III: Implementing an Embedded Linux Application

      6: Embedded Linux Toolkits
      7: The Embedded Linux Workshop
      8: Static Application Example: Minicom
      9: Testing and Debugging
      10: Embedded Linux Success Stories

    Part IV: Appendices

      A: GNU General Public License
      B: GNU Lesser General Public License
      C: Booting from Flash Memory
      D: Embedded Linux Resources

The complete, detailed table of contents is available online (pdf file).

First impressions

The book is 192 pages long, and can be comfortably read in less than a day -- providing you don't actually launch into the step-by-step Embedded Linux Workshop exercise (more on that later).

An exhaustive work on the subject of using Linux in embedded systems and smart devices could certainly occupy a lot more pages. Consider, for example, that LinuxDevices.com currently has more than 3,778 pages of online Embedded Linux related content! Obviously, picking the right 192 pages worth of information and presenting it in an interesting, useful, and well written manner must have presented a real challenge to the book's author -- one that he handled quite skillfully.

Another challenge, when you're putting together the first book covering a hot new "disruptive technology" like Embedded Linux, is the race against time. First, there's the pressing need for a book on the subject. Although several Embedded Linux workshops and training sessions are now available, only a few developers can actually manage to attend them -- so a technically oriented book on Embedded Linux is very much in demand. Students, professionals, and interested onlookers are hungry for something to read, in order to educate themselves about Embedded Linux. Another reason time is critical when producing a book like this, is that the subject matter itself is undergoing extremely rapid change. Companies rise and fall. Distributions come and go. New tools and capabilities arrive on the scene almost daily. So the cycle time in getting a book like this to market must be as short as possible.

Content summary

The book starts off with an excellent introduction to the idea of using Linux as an embedded operating system, proceeds to outline the options available for embedding Linux, and then launches into some valuable discussion of how to design an embedded based system on Linux, including software, hardware, and system-level considerations. The book is chock full of good practical advice for embedded developers in general, and especially for embedded Linux developers.

After covering all the requisite software and hardware fundamentals, Lombardo then settles down to the real meat of his book: the Embedded Linux Workshop (ELW). The ELW is an open source Embedded Linux toolkit that Lombardo created as a means to simplify the process of building Linux-based embedded applications, and to serve as a companion project for his book.

Over 35 pages (including all of Chapters 7 and 8) are devoted to the ELW, including step-by-step instructions on how to download the ELW toolkit and use it to implement a simple but real embedded project -- embedding Minicom. If you're interested in really learning how to embed Linux, you'll find the sections on the ELW to be extremely valuable as a way to fully understand the basics of embedding Linux. The entire ELW toolkit is open source, and can be downloaded, configured, and tested on any desktop PC. The ELW is structured in a manner that the entire build process and all of the associated software are fully exposed to study and scrutiny. What a perfect project for a book like this!

Lombardo is clearly an embedded system developer, not a marketing guy, and this book is about as far from "marketing fluff" as you're likely to get. There are even sections on "Disadvantages of Open Source" and "When is Linux Inappropriate?" thrown in for balance. You certainly don't get the sense that you're reading the words of a religious zealot.

Who should read this book?

In the words of the book's back cover, "Embedded Linux is intended for designers of embedded systems and information appliances, as well as for general Linux programmers." This includes not only software developers, but system developers. Even hardware engineers can find much of value in this book, thanks to several sections devoted to system design issues and debug considerations. It's also full of useful info on the techniques and issues associated with developing and supported embedded systems, in general. In short, I think anyone wanting to be more familiar with the concepts of embedded system development can benefit from reading this book -- although nonprogrammers will find themselves skipping past several large chunks of code-intensive material. (Being more of a system/hardware guy, I just close my eyes during the scary software parts.)

In my opinion, however, the book's potential audience extends well beyond the developer community, to just about anyone wanting to know more about the growing trend toward using Linux as an embedded OS within all sorts of computerized widgets. Even for nontechnical readers, the book does an excellent job of explaining why Linux makes sense in embedded systems, how Embedded Linux is used in those systems, and what can be expected of Embedded Linux in the future.

Strengths and weaknesses

Overall, I found Embedded Linux to be easy and enjoyable reading (other than the aforementioned "scary parts") and packed with useful information. Here are my thoughts on its overall strengths and weaknesses, along with some suggestions for "version 1.2" . . .
    Strengths:

  • First to market -- some book had to be first; this is the one. Fortunately, it's a good one.

  • Good overview/introductory material -- nice treatment of baseline Embedded Linux topics such as: "What is embedded?", "Why embed Linux?", "What sorts of software and tools are available?", "What are the alternative approaches?"

  • Insight into embedded system development issues -- good coverage of fundamentals of embedded system architecture design, including things like: selecting hardware and software, system architecture tradeoffs, make vs. buy issues, etc.

  • Great tips/techniques/tricks on embedded software development -- the author shares his considerable experience as an embedded system developer throughout the book, in the form of a steady stream of suggestions, tricks, and caveats to help developers simplify and accelerate their embedded projects.

  • The Embedded Linux Workshop -- as mentioned previously, the ELW provides a superb learning tool and can also be useful as an Embedded Linux Toolkit for actual projects, should the reader wish to use it.

    Weaknesses and suggestions:

  • Limited breadth of resources -- although the book provides a good general introduction to Embedded Linux, it seems a bit thin when it comes to lists of options and alternatives. Perhaps it would have been better to focus less on a single commercial Embedded Linux Toolkit (LynuxWorks BlueCat) and instead provide brief overviews of perhaps half a dozen of the major alternatives along with their differentiating characteristics (a comparison table of distro's would really be nice).

  • Potential for confusion between Embedded Linux "distribution" and "toolkit" -- in my opinion, the author blurs the distinction between Embedded Linux distributions -- such as Lineo Embedix, MontaVista Hard Hat, and LynuxWorks BlueCat -- and Embedded Linux toolkits. He defines toolkits as "designed to simplify the job of building the binary that runs your device." Products such as Embedix, Hard Hat, and BlueCat, which are called toolkits in the book, contain both a Linux OS and toolkits for building target OS binaries. The Embedded Linux Workshop is appropriately termed a toolkit, because it doesn't include things like the Linux kernel, compiler, libraries, GNU utilities, etc. For that reason, I would prefer to to see the commercial products called Embedded Linux distributions, since they include both toolkits and the GNU/Linux OS.

  • ELW coverage restructuring -- given the extraordinary utility of the ELW, it might make sense to break the chapters on the ELW out into a separate section of the book and expand that coverage a bit. I suspect the ELW could be the subject of its own 192 page book. Especially once its SourceForge project takes off!
The scorecard . . .

In summary, I give John Lombardo's Embedded Linux a "3.5 Tux" rating (on a scale of 4). It's first-to-market, well structured, has lots of useful info, and deserves high accolades for the excellent Embedded Linux Workshop and associated step-by-step example.

I think this book is well worth reading by anyone wanting to know more about Embedded Linux -- whether a developer, a student, or someone curious about Embedded Linux for personal or professional reasons. I expect that this book, and in particular the ELW, will prove a popular adjunct to hands-on workshops, tutorials, and courses on Embedded Linux for the next several years.

The book's website

Recognizing that Embedded Linux is likely to generate a good deal of developer interest, and that the subject matter itself is truly a work in progress, Lombardo has created a companion website which will provide an ongoing source for errata, enhancements, and supplementary information, including links to other useful Embedded Linux resources.



Please note:   There actually is another book, entitled Guide to ARMLinux for Developers, which was published in April 2001 -- several months before Lombardo's Embedded Linux. However, it is much more narrowly focused and doesn't provide as much Embedded Linux background and general information on embedded system development techniques as Lombardo's book. You can read the Guide to ARMLinux for Developers online. A second edition, with chapters on porting to a new platform and much more on filing systems and system-generation tools, is due out later this year.



Related stories: Talk back! Do you have comments or questions on this article? talkback here


(Click here for further information)


7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.

4 Legal Reasons to Control Internet Access
The Internet is obviously a valuable resource for many organizations. However, many are exposed to legal liability concerns because they fail to control Internet access. Learn if you're safe in this white paper.

Rapidly Resolve J2EE Application Problems
Whether you are in the process of building J2EE applications or have J2EE applications already running in production, you must ensure that they deliver the expected ROI. Learn how in this white paper.

Load Testing 2.0 for Web 2.0
There are many unknowns in stress testing Web 2.0 applications. Find out how to test the performance of Web 2.0 in this white paper.

Build Better Games Online
For the game infrastructure providers, life is complex. Making money from games has become more complicated. Why? Find out in this white paper.

Building a Virtual Infrastructure from Servers to Storage
This white paper discusses the virtual storage solutions that reduce cost, increase storage utilization, and address the challenges of backing up and restoring Server environments.

Gaining Faster Wireless Connections with WiMAX
Welcome to what is quickly becoming the hyperconnected world where anything that would benefit from being connected to the network will be connected. Learn more in this white paper.

Is Your Desktop a Security Threat?
The new wave of sophisticated crimeware not only targets specific companies, but also targets desktops and laptops as backdoor entryways into those business’ operations and resources. Learn how to stay safe in this white paper.

Increasing SAN Reliability by 100 Percent
Storage area networks (SAN) are a strong part of storage plans. Learn how to increase your reliability and uptime by 100 percent in this case study.

 


Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click here for a profile of each sponsor:
PLATINUM SPONSORS
GOLD SPONSORS
(Become a sponsor)

ADVERTISEMENT
(Advertise here)

Check out the latest Linux powered...

mobile phones!

other cool
gadgets



BREAKING NEWS

• Linux video camera geo-tags, writes to SATA drives
• Garmin Nav devices run Gnome Linux
• Ten LiMo phones this month?
• It's a Yankee Doodle Linux phone
• Wind River to host "Developer Day"
• Dev boards gain Linux support
• 802.11n zooms ahead
• Low-power mini-ITX board runs Linux
• Pico-ITX board bears twins
• Mass-market WiFi router invites Linux hackers
• LiMo phone specialist buys app stack
• "PDA phone" runs Linux
• ST, NXP spin phone chip JV
• Military-grade USB key supports Linux
• USB Linux systems expand


Most popular stories -- past 30 days:
• World's cheapest Linux-based laptop?
• Ubuntu ported to a PDA
• 64-way chip gains Linux IDE, dev cards, design wins
• Embedded PowerPC dev kits come with Linux
• Rapid time-to-evaluation -- a key goal for silicon providers
• Embedded Linux is doomed. DOOOMED!
• Rugged PDA available with Linux
• Netflix Player runs Linux
• Miniature Linux PC targets military apps
• $7 SoC runs Linux
• Android Developer Challenge announces first-round winners
• Dual-core ARM SoC clocks to 1.2GHz


Linux-Watch headlines:
• Microsoft tactics push India toward Linux
• Bell, SuperMicro sued over GPL
• "Business intelligence" software goes GPL
• Will Atom bomb?
• LF Summit videos posted
• Linux gains "embedded" maintainers
• Virtualization on tap in SLES and RHEL upgrades
• Linux gets security black eye
• Verizon chooses Linux "platform of choice"
• Hats off to Fedora 9


Also visit our sister site:


Sign up for LinuxDevices.com's...

news feed

Home  |  News  |  Articles  |  Polls  |  Forum  |  About  |  Contact
 

Ziff Davis Enterprise Home | Contact Us | Advertise | Link to Us | Reprints | Magazine Subscriptions | Newsletters
Tech RSS Feeds | White Papers | ROI Calculators | Tech Podcasts | Tech Video | VARs | Channel News

Baseline | Careers | Channel Insider | CIO Insight | DesktopLinux | DeviceForge | DevSource | eSeminars |
eWEEK | Enterprise Network Security | LinuxDevices | Linux Watch | Microsoft Watch | Mid-market | Networking | PDF Zone |
Publish | Security IT Hub | Strategic Partner | Web Buyer's Guide | Windows for Devices

Developer Shed | Dev Shed | ASP Free | Dev Articles | Dev Hardware | SEO Chat | Tutorialized | Scripts |
Code Walkers | Web Hosters | Dev Mechanic | Dev Archives | igrep

Use of this site is governed by our Terms of Service and Privacy Policy. Except where otherwise specified, the contents of this site are copyright © 1999-2008 Ziff Davis Enterprise Holdings Inc. All Rights Reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff Davis Enterprise is prohibited. Linux is a registered trademark of Linus Torvalds. All other marks are the property of their respective owners.