POSIX
The portable operating system interface (POSIX) was developed due to the increasing need of application portability over several OSes. The first implementation was based on Desktop or Workstation OSes like Unix. But POSIX has already made its way in the embedded space.
General Information
Since the first POSIX specification was in place in 1988, the amount of different versions and branches has grown to 30 over the time.
Cross Industry Standard
Base applications on cross-industry standards like POSIX, makes it much easier for companies dealing with hardware and software obsolescence, code reusability and therefore safe company IP and former investments.
The OpenGroup (www.opengroup.org) maintains the POSIX specifications, as well as many other industry specifications like CORBA and LDAP. The OpenGroup also provides a conformance test suite which can be used to certify an existing POSIX implementation and officially be interoperable with the standard.
POSIX Embedded Profiles
Today, there are dedicated POSIX embedded profile specifications, which have been stable for quite a while now. 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/Ouput (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 capabilitiy.
Since POSIX is defined to be an interface for various operating systems, it lacks a definition of a driver API. Since more and more microkernel based OSes and virtualization solutions are on the market and these solutions implanting drivers in user space, the idea of having a standardized driver interface should be evaluated again.

