The Think Component-Based Operating System
Chapter written by J.-C. Tournier, J.-P. Fassino,
France Telecom, R&D Division, France
Embedded systems, such as low-end appliance and network routers, represent a growing domain of systems. This domain exhibits specific characteristics that impact operating system design. First, such systems run one or only a small family of applications with specific needs. Second, for economic reasons, memory and CPU resources are scarce. Third, new hardware and software appear at a rapid rate to satisfy emerging needs. Finally, embedded systems have to be flexible to support unanticipated needs such as monitoring and tuning.
Implementing an operating system kernel for such systems raises several constraints. Development time should be as short as possible; this encourages systematic code re-use and implementation of the kernel by assembling existing components. Kernel size should be minimal; only services and concepts required by the applications for which the kernel is built should be embedded within the kernel. Efficiency has to be considered: no specific hardware feature or low-level kernel functionality should be masked to the application. Finally, to provide flexibility, it must be possible to instantiate a kernel configuration at boot time and to dynamically download a new component into the kernel. All these characteristics lead to a strong need for a generic operating system pattern. In this case, either a meta model ...