eCos - Embedded Cygnus Operating System


< Prev Contents Next >

Section 2: Configurability

2.1 eCos: A Component Framework
A central part of the eCos software infrastructure is a component framework targeted specifically at embedded systems. When using this framework, it is possible to build large parts of many applications out of reusable software components or building blocks. eCos comes with its own set of components, including a real-time kernel, providing a central core. Other components are being developed by Cygnus and third parties that can build on this central core. At the center of the component framework is the eCos configuration tool, which is used to select the components and to control their behaviors. The main function of this configuration tool is to build a program. Of course the concept of reusable software is hardly a new one -- it has been around since the earliest days of computing. Component frameworks and visual programming tools are a more recent development. But what makes eCos special? The answer is: The eCos component framework is designed specifically to meet the requirements of embedded system developers.

  • Many embedded systems have to work under very tight memory constraints. The final application image that will get blown into EPROMs or used in the manufacturer's ROMs should contain only the code that is absolutely necessary for the application to work, and nothing else. If a few tens of kilobytes are added unnecessarily to a typical modern desktop application, then this is wasteful. If an embedded application does not fit on the target hardware, then the problem is much more serious. The component framework must allow users to control the components in such a way that memory usage is minimized.
  • Embedded systems frequently have to work under other constraints as well. In particular, many systems need deterministic behavior so that they can meet real-time requirements. Again the component framework must allow the users control over the timing behavior of components.
  • The vast majority of embedded systems work is still being done in C or C++. Some developers might be willing to switch to a different programming language in order to exploit a component framework fully, but in most cases this will not be an option because of the large investments in existing code that must be preserved. The component framework must allow application developers to work in the usual programming languages, using existing code and working practices.
  • Similarly, there is a lot of existing C and C++ code that could be turned into reusable components. The component framework must allow the components themselves to be written in existing languages. In addition it should be reasonably straightforward to turn existing code into re-usable components, preferably without changing the code itself.

To satisfy the first two of these requirements the eCos component framework is designed around the concept of configurability at the source code level.


< Prev Contents Next >