OCERA Components
  OCERA Home  /  OCERA Tour  /  OCERA Components
  Information
    What is OCERA? 
    OCERA Tour 
    Partners 
    Technical support 
    License issues 
    Links 
    Web statistics 

  Download
    Documents 
    Components 
    Distributions 
    Tools 

   

OCERA Components

An OCERA component is defined as follows:
“A piece of software that brings some new functionality or feature at different levels in some of the fields: Scheduling, Quality of Service, Fault-Tolerance and Communications”.

This is a fairly general definition that will be extended and detailed next. As a piece of software we mean:
a modification of the Linux kernel or RTLinux executive, which will be released as a
patch file against a specific kernel version or integrated into the final OCERA kernel;
a module which can be loaded (with the insmod/modprobe commands) and provides
new functionalities and may use some of the already installed services;
a library, dynamic or static, which can be linked with the user application;
or a standalone thread or process (for example a debugging program).

Component classification

OCERA components can be classified according to two criteria:

  • Protection: According to the “protection” criteria, we can identify components that run in user space
    and components that run in kenel space. User space components are Linux applications
    running in their own address spaces at the lowest privilege level. Because of the protection
    mechanism enforced by the Linux kernel, these components are not able to crash
    the system, even if they misbehave and try to access random memory locations.
    Components running in kernel space are: the (patched) Linux kernel (including its own
    device drivers), the RTLinux executive, and the hard real-time tasks (also referred as
    RTLinux tasks or RTLinux applications).
  • Level: According to the “level” criteria, kernel space components can be located in the RTLinux
    layer (as modifications or additions to the RTLinux executive) or in the Linux layer (as
    modifications to the Linux kernel, which are independent from RTLinux).

Architecture Level

OCERA architecture can be split in several level:

RTLinux level

      

Low-level RTLinux: This kind of components are highly related with the current RTLinux capabilities or internal algorithms, thus it requires to modify the current RTLinux source code in order to provide the new functionality or to improve an available one. This kind of component will be distributed in a patch-form and hopefully incorporated
in the main stream of the implied kernel source.

High-level RTLinux: It only needs the current API of the RTLinux kernel or an extended API offered by other kernel component in order to implement its new functionality. It does not require to modify the existing kernel source code or any low-level kernel component.

RTLinux Applications: This kind of component uses the kernel API to provide a new service. It does not require to modify the existing kernel source code or any kernel component. The main characteristic of these components are that they are implemented as an application-level processes/threads, offering some kind of service to other processes/threads (as a kind of a classical UNIX daemon).

Linux level

      

Low-level Linux : Like the low-level RTLinux executive components, these components
modify the current kernel and has to be distributed as patch files.

High-level Linux : Components located inside the Linux kernel that use but do
not modify the Linux kernel code. Device drivers are components of this category.
The third level (Linux applications) coincides with user space applications.
Most of the components will fit in one of these categories, but others will require the
modification of several layers. For example, the CBS component at the RTLinux executive
will also require small modifications of the Linux kernel.

In the component description you will find precise information about its protection level (user space / kernel space) ant its location (RTLinux layer / Linux layer).


© OCERA Project. webmaster@ocera.org
Maintained by: Sergio Sáez   Last update: Wed Jan 10 16:56:54 2007