|THINK - Think|
The THINK Framework is a C implementation targeting the embedded world of the highly flexible Fractal component model. It lets architects assemble system components of arbitrary sizes in varied ways so that architectural aspects can be clearly separated from functional ones. Thus, Think maps the natural separation of concerns found in development organisations and processes: architects specify the architecture whereas developers develop functional code. This approach has many advantages during the development phase such as facilitating portability, code re-use, code enhancement, cooperative development, that may considerably reduce development time. It also brings high flexibility at runtime by permitting a dynamic control of the architecture. How the components can be accessed and manipulated at runtime is defined separately from the functional code. This provides a high degree of flexibility in the performance vs. dynamic control tradeoffs choices, without having to change a single line of functional code.
NUPTSE is the current version of the Think Framework. It focuses on simplicity and efficiency. It simplifies developpers tasks by providing simplified languages, espacially for functional code development. It enables enhancement and simplification; It also makes possible the generation of very efficient software by providing the possibility to better master the flexibility power and implementation (and so the associated cost) of generated software.
Nuptse provides dedicated languages: an Architecture Description Language (ADL), an Interface Description Language (IDL) and a functional code implementation language (nuptC). Given an architecture description, a build chain generates the necessary integration glue between the components. That glue fits the exact requirements in term of dynamic control. The chain outputs a minimal binary image. It can also generate an independent binary code for each component that could be dynamically loaded at runtime in the kernel.
CODEGEN, a C code generator
CODEGEN is a framework to help the generation and handling of C source code. It is used by Nuptse but it is independant. It is also hosted on the repository of the Think project. It is a java package that is distributed with Nuptse.
KORTEX, a Think component library
KORTEX is a library of existing kernel components compliant to the Think software framework. Kortex is also hosted in the repository of the project. It includes many components, some of them being devoted to execution infrastructure and OS development (memory manager, interrupt handler, semaphores, runtime schedulers...). Kortex components provide services that are commonly used in operating system construction.
Using Nuptse and Kortex, an OS architect can build OS kernels conforming to any kernel architecture: exo-kernel, micro-kernel... Minimal kernels can be built on bare hardware and basic functions such as scheduler and memory policies can be easily redefined or even not included. This helps achieve speed-ups and low memory footprints over standard general-purpose operating systems. Think is also suggested for prototyping when using a complete OS would be a too heavy solution. It can also be used when implementing application-specific kernels, especially when targeting small platforms embedding micro-controllers.
The more supported hardware architecture supported by Kortex for Nuptse is the AVR atm2561. This microcontroller forms the basis of a prototyping plateform called Cognichip.
|Copyright © 1999-2005, ObjectWeb Consortium | contact | webmaster | Last modified at 2011-06-24 04:44 AM|