When the acronym for software tells you only what it is and nothing else, you can surely expect a no-nonsense approach from it. embedded Configurable operating system, or eCos, is the embedded OS we look at in this month’s article.
eCos is a free and open source, real-time OS used in many embedded systems and applications worldwide. It is mostly used to run applications that need a single process but multiple threads.
The design of eCos allows you to customise it to precise application requirements, be it run-time performance or hardware specificity. Implemented in C/C++, it provides you with compatible layers and APIs for POSIX and µITRON.
An embedded OS is different from a normal OS in many ways, most of which are related to the scarcity of resources, need for small form factor and the very application that these are to run. An embedded OS is one that is specifically configured for a certain hardware configuration. ‘Do specific tasks efficiently’ is the mantra for such OSes. With the Internet of Things (IoT) craze only expected to grow, these OSes will be the driving factor for all application development in this field.
Where does eCos come into all of this
Today, with a bevy of industrial real-time solutions available for processing, there are certain factors that determine which OS to select for resource-constrained applications. It sets itself apart by competing on three parameters, namely, cost, control and technical fit.
Cost. Being totally free helps a lot in this regard when you are basically telling your users that they would not have to pay anything for development-related activities. It is portable across chip architectures, which makes it well-suited for software developers of high-volume applications in consumer electronics, telecommunications, automotive and other embedded applications.
Control. The open source nature of eCos lets users upload their projects, modify the source code, help others and, on the whole, be the good samaritan they tell everyone they are.
Technical fit. As mentioned before, the massive configurability options come in handy while using eCos. With more than 200 source-level configuration points, users can bet their last rupee that they will be able to match their need with the requisite configuration.
What is the relation between eCos and Linux
Not as scandalous as it might sound, so un-brace yourself. Since eCos originates from RedHat, the distributors of Linux, there are certain corners where they believe that there is some serious correlation between Linux and eCos. Though it has a separate compatibility level for several Linux APIs, that does not mean that these share common codes.
Codes for Linux and eCos are not only entirely different, these also serve extremely separate purposes. Linux is not inherently real-time, as it does not have a real-time kernel associated with it. When you try to pair it with an external RT kernal, Linux basically just sits idly by or as a separate virtual machine. Hence, for a fast response to external events, you cannot rely on Linux; you would need to use eCos.
what is configurability
As mentioned in the first line, the configurability part of eCos is one of its biggest selling points. Being able to configure your own OS according to application enables developers to fully utilise the power of the OS to optimise performance, and not give in to system demands (which are almost always different from developer needs).eCos allows the developer/application writer to impose the requirements, both in terms of functionality and requirements, on to run-time components.
One of the extremely important reasons configurability increases the relevance of eCos is that this way it removes all functionalities that are not essential to the application, which drives down the resource footprint of eCos. Imagine MotoGP, with all their bikes, essentially containing only the necessary propulsion components. Their only concern is being the fastest while making sure the bike finishes the race. The bikes are a stripped-down and optimised version of their street avatars much like eCos. Add to that the completely-free nature of eCos, which means you do not have to pay a single paisa for the development/deployment of your application. May be it is possible to have your cake and eat it, too.
Configurability allows one to divide the various packages into components. You can separate it into core packages and non-core packages. Core packages take care of the kernel, C library and Maths library, while additional ones are added depending on specific applications. Suppose for sending data, you want to add on a TCP/IP stack. Now, the TCP/IP stack has certain dependencies that can be added later on.
Where do I sign up
eCos has several mailing lists for the interested, some for announcements, some for releases and some for general queries. Rest assured, any and all doubts that you have will be addressed by the crowd of techies already deep into development with eCos. As of today, eCos supports the following architectures:
- ARM (ARM7TDMI, ARM9TDMI, Cortex-M, StrongARM and Xscale)
- CalmRISC16 and CalmRISC32
- Fujitsu FR-V
- Fujitsu FR30
- Hitachi H8/300
- Intel x86
- Matsushita AM3x
- NEC V8xx
Download latest version of the software
For more interesting software reviews: click here
The author is a student at Great Lakes Institute of Management (GLIM), Chennai