Jump to content

Operating system abstraction layer

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Wirelessophile (talk | contribs) at 04:46, 6 March 2011 (=). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An Operating System Abstraction Layer (OSAL) provides an application programming interface (API) to an abstract real time operating system making it easier and quicker to develop code for multiple software or hardware platforms.

OSAL deals with presenting an abstraction of the common system functionality that is offered by any Operating system by the means of providing meaningful and easy to use Wrapper functions that in turn encapsulate the system functions offered by the OS to which the code needs porting. A well designed OSAL provides implementations of an API for several Real Time Operating Systems (such as vxWorks, eCos, RTLinux, RTEMS). Implementations may also be provided for non Real Time Operating Systems, allowing the abstracted software to be developed and tested in a developer friendly desktop environment.

In addition to the OS APIs, the OS Abstraction Layer project may also provide a Hardware Abstraction Layer, designed to provide a portable interface to hardware devices such as memory, I/O ports, and non-volatile memory. To facilitate the use of these APIs, OSAL generally includes a directory structure and set of makefiles that facilitate building a project for a particular OS and hardware platform.

Implementing projects using OSAL allows for development of portable embedded system software that is independent of a particular Real Time Operating System. It also allows for embedded system software to be developed and tested on desktop workstations, providing a shorter development and debug time.

Implementations

ClarinoxSoftFrame

ClarinoxSoftFrame middleware provides OS abstraction targeting wireless embedded device and system development. It comprises of wireless protocol stacks, development tools and memory management techniques in addition to the support of desktop and a range of real-time operating systems.

http://www.clarinox.com/index.php?id=34