POSIX

Abhinav Virpal Singh
5 min readJun 29, 2023

--

POSIX is a standard specified by the IEEE developed in the 1980s for maintaining its compatibility among the operating systems. It is like if any software meets to the POSIX standards then it should also be compatible with other POSIX compliant operating systems.

This is the reason why most of the the tools we use in Linux or Unix behaves the same way, just like for the ping or ps command which behaves in the same way in Linux and Unix.

The POSIX.1 is made up of four parts:

  • Base Definitions: This part provides the basic definitions for the specifications, which consists of the information about the terms, concepts, syntax, service functions and the command line.
  • System Interfaces: This provides the details of the interface related terms and concepts and define the functional interfaces available to the applications accessing POSIX-Conformant systems.
  • Shell and Utilities: This part describes the commands and utilities which are made available for accessing the POSIX-Conformant systems that includes the command language used in those systems.
  • Rationale: This includes the historical information about the standard contents and thus certain features are added or removed from the standard.

The standard of POSIX comes with the features more focusing on the application development and portability other than the capabilities itself. The POSIX standard is made to be used by both the application developers and the system implementor’s.

The first POSIX standard was released in 1988 whereas IEEE Std 1003.1–2017 which was released in year 2017.

There were many reasons for the development of POSIX standard, some of them are:

  • POSIX was made to be used for the application development and portability easy, so it is not just made for the UNIX systems only but also for the other Non_UNIX systems too.
  • This standard does not define the development of application or the operating system, it just describes the contract of the application and the operating system.
  • POSIX-compliant application source code is required to run across multiple systems as this standard is defined on the base of the source code level. This does not mean that any object or binary code level of portability is provided by this standard.
  • POSIX standard is written in terms of the C Language, but it does not mean that the application developers are restricted to use of C language only. The POSIX standard can be used with any programming language.
  • POSIX standard only allows you to deal with the aspects of the operating system which are interacting with the applications.
  • This standard is needed to be kept of right size and broad enough to be cover the wide range of systems.
  • POSIX is designed in such a way that portability can be achieved without sacrificing the performance, as this saves the time and money of the application developers. If the application developers are not able to achieve the portability then they have to write the code for each and every system which is a time consuming and costly process.

Examples of POSIX-Compliant Systems are HIX, HP-UX, Solaris, Mac OS(Since 10.5 Leopard), etc, while on the other hand Android, FreeBSD, Linux Distributions, OpenBSD, VMWare follow most out of the POSIX standards but are not POSIX Certified.

POSIX is a standard which is being regularly updated and maintained by the Austin Group. Anyone can join the group and can help in improving the standard of the POSIX. The Standard is used currently in the today’s servers, workstations, routers, mobile devices, embedded systems, etc. This is the reason why developers are getting more into the communities and are contributing to the POSIX standard.

Simply, POSIX is a set of rules and guidelines which are followed by the developers worldwide to make their applications compatible with the features of the POSIX standard.

This is the reason why the applications are able to run on the different operating systems.

Keep Practicing!!! Keep Learning!!!

--

--

Abhinav Virpal Singh

MCT || Multi-Cloud & DevOps Enthusiast || Multi-Cloud Learner || Opportunity Seeker || Azure(x6) || Alibaba Cloud(x2) || CJE