Mon 8 Jun 2020 (Previous version dated Tue Jan 12 21:59:36 PST 2016) Why get Involved in the POSIX Standard? One of the key factors leading to success for Linux and the UNIX system has been the adoption of popular, open, standards such as the X Window System, TCP/IP, HTTP, and the POSIX standards. Today we see a rapid evolution of IT systems, mobile devices and applications brought about by the pervasiveness of the Internet, social computing, mobility, the availability of the Cloud, and the changes that these have made to the way we work. But are the standards evolving fast enough to keep pace with the changes? This article gives a high level look at the current POSIX standardization activity, how it works and how you can contribute to helping it keep pace. What is POSIX? POSIX is a trademark of the IEEE, and an acronym for "Portable Operating System Interfaces". The name POSIX was suggested by Richard Stallman in 1986. The most well known POSIX standard is IEEE Std 1003.1 (or ISO Standard 9945, which is the same document)) known for short as "POSIX.1". It specifies application programming interfaces (APIs) at the source level, and is about source code portability. Its neither a code implementation nor an operating system, but a standard definition of a programming interface that those systems supporting the specification guarantee to provide to the application programmer. Both Operating System Vendors (OSVs) and Independent Software Vendors (ISVs) have implemented software that conforms to this standard. The major sections of POSIX.1 are definitions, utilities (such as awk, grep, ps, vi, etc.), headers (such as unistd.h, sys/select.h and other C headers), threads, networking, real-time, internationalization, maths functions etc. In total the standard describes over 1350 interfaces . If POSIX.1 is mentioned as a requirement for your software project then that this does not really tell you much. POSIX.1 is large (~4000 pages) and no project needs everything (even OSVs rarely implement every optional interface). The POSIX.1 standard itself is structured into modules known as option groups. A minimal set of interfaces and functionality is required for all POSIX systems. The majority of all functionality is optional. For a good description of options see https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html There are several common misconceptions about the POSIX standard. Originally starting development in the mid 1980's, one common misconception is that it has not changed for some time; it is outdated and irrelevant. The latest version of the POSIX.1 standard was published in 2018, and a new version is being prepared for publication in 2022. While the new versions of the standard are in general upwardly compatible with the original, there are many hundreds of interfaces that have been added since then. Your participation is needed to help keep the standard up to date and to keep pace with the developments in the industry. Another common misconception is that you need to be an IEEE member to participate. Since 1998 the standard has been developed by the Austin Group, an open working group found at http://www.opengroup.org/austin/. Participation is free and open to all interested parties (you just need to join the mailing list). Decisions within the Austin Group are made by consensus; sometimes consensus is easily reached, and sometimes only after heated discussion! The more people involved in such discussions, the more likely that when consensus is reached, it is the right decision that is made. That's why your participation and involvement is so important. Readers should note however that the mailing lists are not a technical support forum. All the major UNIX system players and open source distributions are represented on the Austin Group. Today the approach to the POSIX standard development is one of "write once, adopt everywhere" with a single open technical working group and the resulting documents being adopted by IEEE as the POSIX standard, adopted by The Open Group as the Base Specifications of the Single UNIX Specification and by the International Standards Organization as an international standard (which in turn means that it may be a national standard in your country; for example, the British Standards Institute has adopted ISO 9945 as a British Standard). So does this mean that the POSIX.1 standard is complete and perfect? No, like any large product it has bugs, and there is an ongoing bug reporting and fixing process to refine the document as implementation experience grows. Whilst the standard cannot change overnight, there is a mechanism both to make regular technical corrections and also to collect items for future directions. To report a bug or suggest a change please use the online public defect reporting system at http://austingroupbugs.net (the working group uses a Mantis bug tracking system). Is POSIX still relevant? Yes: Standard interfaces mean easier porting of applications. The POSIX interfaces are widely implemented and referenced in other standardization efforts, including the Single UNIX Specification and the Linux Standard Base. They are widely implemented in the IT infrastructure from embedded systems, mobile devices, internet routers, servers and workstations, all the way up to distributed supercomputers. Why should you get involved? By feeding back issues with the standard based on implementation experience the standard can be improved and extended with new functionality, which in turn can "raise the bar of commonality" among systems. There is often much more to be gained by having key functionality share a common interface and/or behave in exactly the same way, than for it to be different. More information on POSIX.1 and the Austin Group, including how to join and participate is available from its web site at http://www.opengroup.org/austin/. The working group meets regularly (often twice per week) virtually, using teleconferences and an etherpad, and there are freephone numbers to join the meetings. The html version of the standard is freely available from The Open Group UNIX Standard web site at https://www.opengroup.org/membership/forums/platform/unix Andrew Josey, Austin Group Chair