The portable operating system interface (POSIX®) was developed due to the increasing need of application portability across multiple operating systems. The first implementation was based on desktop and workstation operating systems like Unix, but POSIX® has already made its way in the embedded space.
Since the first POSIX® specification was established in 1988, the amount of different versions and branches has grown to 30.
Cross Industry Standard
Basing applications on cross-industry standards like POSIX® makes it much easier for companies to deal with hardware obsolescence, software obsolescence, and code reusability. Dealing with these issues is paramount to the goal of securing company IP and leveraging previous investments.
The Open Group (www.opengroup.org) maintains the POSIX® specifications, as well as many other industry specifications like CORBA and LDAP. POSIX® is a registered trademark. The Open Group also provides a conformance test suite which can be used to certify an existing POSIX® implementation and officially ensure that the implementation is interoperable with other products that conform with the standard.
POSIX® Embedded Profiles
Today, there are dedicated POSIX® embedded profile specifications, which have long-established stability. These profiles are widely used in all vertical markets dealing with legacy code and migration issues.
- PSE-51 - Minimal Real-time System Profile
This is a single process profile with no asynchronous or file Input/Output (I/O) specified.
- PSE-52 - Real-time Controller System Profile
This profile is a single process profile that adds asynchronous and file I/O to PSE-51 as well as socket communication.
- PSE-53 Dedicated Real-time System Profile
Extends PSE-51 by adding multi-process capability.
Since POSIX® is defined to be an interface for various operating systems, it lacks a definition of a driver API. Because more and more microkernel based OSes and virtualization solutions are on the market and these solutions are implanting drivers in user space, the idea of having a standardized driver interface should be evaluated again.