Operating system abstraction layer: Difference between revisions

Content deleted Content added
removing commerical link
improving the first paragraph so it has article name in bold
Line 1:
An '''Operating System Abstraction Layer''' ('''OSAL''') provides an [[application programming interface]] (API) to an [[Abstraction (computer science)|abstract]] [[Real-Time Operating System|real time operating system]] making it easier and quicker to develop code for multiple [[software]] or [[hardware]] plaforms.
When writing code that requires [[porting]] onto multiple [[software]]/[[hardware]] platforms, building the code on an [[Abstraction (computer science)|abstraction]] of the [[Operating system]] decreases porting time and porting complexity. 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.
 
The OSAL providesdeals with presenting an [[applicationabstraction programmingof interface]]the (API)common system functionality that is offered by any Operating system by the means of providing meaningful and easy to anuse abstractWrapper realfunctions timethat operatingin turn encapsulate the system functions offered by the OS to which the code needs porting. A well designed OSAL then provides implementations of thisan API for several [[Real-Time Operating System|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.