High levels of complexity and real-time responsiveness rank high as priorities in military and avionics system designs. In the past, the solution for these demanding environments revolved around specialized software applications based on proprietary operating systems running on customized hardware. The problem with such approaches was low reusability and poor portability of software and system components.
Today, a move toward off-the-shelf solutions for both hardware and operating systems has fueled reusability and allowed for easier migration between different operating systems. In addition to increased usage of off-the-shelf hardware and operating systems, application portability has long-term implications for reuse and deployment longevity in these demanding environments. Application portability is directly linked to the selection and use of open-standard application programming interfaces (API) in military and avionics applications, and has important implications for the maintenance and reusability of embedded applications.

The POSIX (Portable Operating System Interface for UNIX) family of API standards has been integral in fostering development of complex applications for safety- and security-critical systems for military and avionics environments. With the availability of real-time operating systems (RTOS) that support the current version of POSIX, developers are gaining the ability to include ever more rich and complex functionality for the defense and airline industries of both today and the future. POSIX-based LynxOS software is used in a wide array of Navy Open Architecture programs including the DDG-1000 next-generation warship (Figure 1).
Without POSIX, there is no easy way to migrate embedded and Unix-compatible applications between different computer systems. Developers of military and avionics systems would not be able to take advantage of today’s powerful hardware and improvements in RTOS. POSIX has enabled these developers to continually innovate new solutions for their markets.
POSIX: A Flexible API
POSIX is a family of related standards governed by the Institute of Electrical and Electronics Engineers (IEEE) and maintained and evangelized by The Open Group. POSIX defines the API for software compatibility with the different flavors of UNIX. First released nearly 20 years ago, POSIX defines the specifications for the characteristics of operating systems, database management systems, data interchange, programming interface, networking and user interface. POSIX enables developers to write their applications for a single target environment in which they can port and run unchanged on a variety of systems that support the POSIX API.
The key value in the POSIX standard lies in its all-encompassing nature, which allows developers to move from one OS to another—and thus easily port applications to a new OS. This can have far-reaching implications in industries such as avionics, where applications that control certain aircraft operations may need to last a decade or more and execute on multiple operating systems and hardware environments in the future. POSIX allows an easy migration path from the non-embedded space to embedded, enabling applications developed on other UNIX platforms, such as Hewlett-Packard UX, Sun Solaris and others, to be deployed on an embedded RTOS.
The POSIX standards underwent a significant expansion and unification in the 21st century, to evolve into the new standard IEEE 1003.1-2004. This new edition provides a comprehensive set of API standards that allows for myriad applications to be developed using this rich API.

The POSIX committee has also developed the IEEE 1003.13-2003 (POSIX.13) standard for real-time profiles (Figure 2) and applications specifically targeted for embedded applications. This standard defines four real-time POSIX profiles: PSE 51: Minimal; PSE 52: Controller; PSE 53: Dedicated; and PSE 54: Multipurpose.
These four profiles specify increasing levels of complexity and functionality to satisfy the full spectrum of real-time applications that can be designed using POSIX. It also defines a strict API compatibility standard that requires each higher POSIX profile to be a superset of the lower profiles. This guarantees that POSIX applications written to the most minimal profile (PSE 51) will run even on the highest, multipurpose profile (PSE 54) on compatible operating systems.
continue to next page >>