The Portable Operating System Interface for Computing Environments (POSIX®) is a set of standards and specifications that define ways for computer programs to interact with an operating system. Applications that conform to these standards can more easily be ported to other platforms that also support the specifications. These specifications have been officially adopted internationally and have become required by some special customers in the government, defense, and aerospace fields. There are different levels of conformance to the family of standards, which were heavily influenced by the design of the UNIX® platform.
There have been many attempts to ease the difficulties of developing software for more than one computer platform. Differences in operating system design, available program languages, and hardware create compatibility problems that aren’t easily overcome. There are many different opinions on how to best address the challenges of cross-platform computing. POSIX® takes a rules-based approach that governs how applications interact with their underlying platform, as well as mandating the inclusion of a few utilities. These rules apply to both applications and operating systems, and provide a standard way for communication to take place between the two.
The goal of POSIX® is to provide something known as source code portability. Source code, the human-readable version of a computer program used to build applications, is “compiled” into machine code that can be understood by the microprocessors inside all computers. Different processors contain different types of machine code; this means that a program must not only be written with an operating system in mind, but with the particular hardware on which the program will run. Source code portability means that a program’s source code can be compiled for different platforms with little or no effort, making it more efficient to reuse existing code than recreate the program from scratch.
Many large organizations that purchase a wide variety of hardware and software have come to view the POSIX® family of standards as an important or even essential feature for products they purchase. The Institute of Electrical and Electronics Engineers (IEEE), International Organization for Standardization (ISO), and International Electrotechnical Commission (IEC) have endorsed the POSIX® standards as IEEE 1003 and ISO/IEC 9945. This international adoption has made the standards popular with government customers. Some military and aerospace customers require the standards in order to make it easier to adapt applications to specialized computing platforms used in those fields. The U.S. Navy, for example, has incorporated the standards into its Open Architecture Computing Environment, an initiative that aims to maintain interoperability in the software that powers warships, unmanned aerial vehicles, and submersibles.
POSIX® is a family of related standards rather than a single specification. Some are well supported while others are not. There are also different levels of support, with “conforming” software products strictly adhering to the standards and “compliant” products supporting only some of them. Many of the POSIX® specifications were based on the UNIX® operating systems, so a number of UNIX® and UNIX®-like platforms support the standards out of the box. Some other platforms support IEEE 1003 through the use of additional software.