That cute Linux penguin is looking to hide out in your next embedded-systems project. What will it cost to let Linux in? Maybe more than you think, so don't jump ship if you're already using reliable alternatives, like VxWorks or QNX. Those might actually be cheaper in the long run.
Linux's lure is threefold. It isn't burdened by licensing fees, source code is readily available, and there's a large choice of free applications. All of this is true in general. But, the details of Linux can bring about several concerns.
Linux distributions for desktops and servers abound at low cost and no per-installation licensing fees. The same is true for many development tools and applications, but not all. Some Linux distributions and products have licensing fees that even exceed costs on other platforms.
When the alternative operating system (OS) is Windows, the source code tends to hide behind an impenetrable wall. But, often other embedded OSs come with source code, or else it is available for a reasonable fee.
Engineers and programmers love to look under the hood and only Linux lets them. So, don't be surprised if your designer is tinkering with embedded Linux. The next step is to use it in a project.
The cost of using Linux is a combination of determining its suitability, and also having programmers and designers that are adequately trained. Because it's new, Linux's costs can be large in terms of time and money. On the other hand, these are often one-time, up-front costs that can be spread across multiple projects. These costs shouldn't be ignored, or be applied to the first embedded Linux project.
Third-party applications are an interesting area for embedded systems. Most desktop and server applications are too large or inappropriate for embedded projects. Yet, this is changing as more embedded systems are tied to networks and memory capacity increases.
While Linux has a long track record on servers and a growing track record on desktops, its track record for real time and embedded systems is more limited. The situation will only improve for Linux. Still, designers and programmers might prefer to stick with alternatives that have a longer pedigree.
Linux stability is legendary, which is nothing new to embedded-systems designers. It's a requirement and often one that must span years.
The existing embedded OSs have an edge when it comes to modularity and cross-development. These were designed for this type of development environment, while Linux has been modified to fit into it. The result is good, but Linux still falls short of commercial alternatives.
The embedded-systems add-on market may follow the Visual Basic/Visual C++ course on the PC, where products with the same feature set are brought out for both environments. This would be a definite plus for those migrating from one platform to another.
Finally, there's the issue of long-term direction for the underlying support. Embedded-tools vendors, such as QNX or WindRiver, allow customers to know what type of enhancements they can expect. It's true that you can make your own enhancements to Linux, but this starts to defeat the purpose of using an existing platform. Support problems can arise if your Linux enhancements conflict with mainstream changes.
Embedded Linux will continue to improve, so it's just a matter of time before it's equal to its peers. Keep in mind that selecting something sufficiently good is often preferred to selecting the best.
Drop me a note with your embedded Linux experiences. I look forward to hearing from you.