In addition to the outstanding technical aspects of Linux that make it advantageous to use for an embedded device, there are also compelling commercial reasons to choose Linux over other commercial offerings. Some of these reasons, such as lower costs, will appeal to the bean-counters in your organization; but the key difference is that you’ll have greater control over a critical aspect of your development project.
Complete Software Ecosystem
The universe of software around Linux is vast and varied. If you’re new to Linux, you’ll soon find that Linux is a more than its namesake kernel: it’s a collection of software that works together. The nice thing about Linux is that what’s available on your desktop can be used on an embedded system. Even better, the ability to run and test software on a regular desktop gives you the chance to see if the software offers the right feature set for the application.
The nature of open source gives you plenty of choices for nearly every piece of your configuration, and that can cause consternation if you’re trying to pick the right package. Oddly, the large amount of choice is posited by commercial vendors as a reason to use their closed source or highly structured Linux distribution. Don’t fall for this line of reasoning! You’re reading this book so you can take advantage of what open source has to offer.
Open source software is always available as source code. Most of the time, the authors have written both the package itself and the build instructions so that the project isn’t architecture dependent and can be built for the target system. Software that is part of the root file system is nearly always completely portable, because it’s written in a high-level language like C. Because of the nice job done in the Linux kernel to isolate architecture-dependent code, even a vast amount of kernel code is portable.
The key to using what’s available in open source is two-fold: having a cross-compiler and having the build scripts work when you’re cross-compiling. The vast majority of packages use the automake/autoconf project for creating build scripts. Automake and autoconf by default produce scripts suitable for cross-compilation. Later in this book, I explain how to use them properly. I talk about the cross-compiler that later in this chapter and tell you how to build your own from source. Although constraints like memory and storage space may make some choices impractical, if you really need certain functionality, the source is there for you to reduce the size of the package. Throughout the book, you'll find references to software projects typically used by embedded engineers.
No Royalties
Royalties, in the software sense, are the per-unit software costs paid for every unit shipped, which compensate an owner of intellectual property for a license granted for limited use of that property. Royalties increase the Bill of Materials (BOM) cost of every unit shipped that contains the licensed intellectual property. A licensee must make regular reports and prompt payment and must avail itself for audit so that the holder of the licensed property can ensure the monies paid accurately reflect what was shipped.
In this model, forms must be filled out, checked, and signed. Paper must be shuffled, and competitive wages and benefits need to be paid to those doing the shuffling. With a contract to sign, expect a bill from your attorney as well. The entire cost of the royalty is greater than what appears on the BOM.
Royalties impose another cost: lack of flexibility. Want to experiment with a newer processor? Want to create a new revision of the product or add features? All these activities likely require permission from the vendor and, when you ship a new product, a new royalty payment to not only make but properly administer.
When presenting an embedded operating system that has royalties, the salescritter2 will explain that the payments represent a small concession compared to what the software they’re selling brings to the table. What they leave out is the loss of liberty with respect to how your company structures its development operations and the additional administrative and legal costs that never make it into the calculations showing your “savings.” Caveat emptor.
Control
This is an often-missed reason to use Linux: you have the sources to the project and have complete control over every bit of software included in the device. No software is perfect, but with Linux you aren’t at the mercy of a company that may not be interested in helping you when a defect becomes apparent. When you have trouble understanding how the software works, the source code can serve as the definitive reference.
Unfortunately, this amount of control is frequently used to scare people away from Linux. “You may have the source code, but you’ll never figure anything out … it’s so complex,” the fear mongers say. The Linux code base is well written and documented. If you’re capable of writing a commercial embedded Linux application, you no doubt have the ability to understand the Linux project—or any other open source project, for that matter.
Source of Information : Pro Linux Embedded Systems (December 2009)
No comments:
Post a Comment