Description
Traditionally, real-time operating systems (RTOS) have been delivered in two forms: as source code or as a binary distribution, in both cases however being licensed to an individual customer. The software license may furthermore include a royalty payment when the RTOS is shipped in production.When the source code is available, and it is modified to add some functionality that is required by a specific project, these sources stray from the original RTOS code base. The supplier of the RTOS may have no interest in these changes or may not have a process in place to accept them. Consequently, the client remains with orphaned code, which will not be included in the next RTOS release.
When a binary RTOS distribution was selected, one must thoroughly verify that the RTOS is flexible enough in binary form to be configured in such a way that it meets the project's needs. Furthermore, there is always the possibility of a bug. Finding the bug, with the RTOS being a black box, can be difficult and time-consuming. Since one does not have access to the source code, one must rely on the RTOS supplier to fix the bug. In addition, since the client's hardware may be unique to the application, the RTOS supplier's support staff may not be able to reproduce the bug.
In view of the limitations of both the above-described licensing schemes, the open-source model may seem like an attractive alternative. There are a number of open-source licenses in use today (e.g. General Public License or GPL, BSD Copyright, X Copyright, ...), all being based on the availability of the software's source. Not only does the freely available source code give the developer more flexibility; the resulting product is also free from run-time royalties. Well-known open-source products are the Linux kernel and the Apache web-server. Most industries have been reluctant to embrace free, open source software in their production process. How can something that is free be worthwhile? The GNU tools, developed by the Free Software Foundation, however, have been used by the dedicated systems community for years.
The marketplace for real-time and embedded systems is growing at an exponential rate. More and more companies are considering the use of Linux in embedded systems or the use of a real-time derivative of Linux for real-time applications. It is therefore high time to examine the available possibilities in more detail.



