December 7 2022

What is the POSIX Standard?

The POSIX standard stands for Portable Operating System Interface and is very useful for portability

What is Portable Operating System Interface (POSIX)?

POSIX (Portable Operating System Interface) is a set of standard operating system interfaces based on the operating system Unix . The most recent POSIX specification – IEEE Std 1003.1-2017 – defines a standard interface and environment that can be used by an operating system ( OS ) to provide access to POSIX-compliant applications. The standard also defines a command interpreter ( shell ) and common utility programs. POSIX supports the pPortability of applications at the source code level so that applications can be built to run on any POSIX-compliant operating system.

A brief history of the POSIX standard

POSIX interfaces were originally developed under the auspices of IEEE . However, the POSIX standard is now under development and maintenance by the Austin Common Standards Revision Group, commonly referred to as Austin Group .

The Austin Group is a joint working group composed of members of the IEEE, the Open Group and the Joint Technical Committee 1 of the International Organization for Standardization ( ISO ) and of the International Electrotechnical Commission (IEC). IEEE owns the POSIX trademark. The Open Group, owner of the Unix trademark, is a global consortium that develops technology standards.

POSIX was born out of a need to make applications more portable across different systems. In the early days of computing, programmers had to rewrite their applications for every model of computer and operating system. This began to change when IBM introduced its System/360 line of computers, all of which could run the same operating system, OS/360. With these new systems, applications could be made more portable, saving huge amounts of development time.

When UNIX was born, around the same time, it also showed promise in that it could run on machines from different manufacturers. However, as UNIX started making different versions, porting code across these UNIX variants became difficult. The promise of UNIX portability was losing ground.

To solve this portability problem, POSIX was formed in the 80s. The standard was based on AT&T's System V UNIX and BSD UNIX, the two largest variants at the time. It is important to note that POSIX was not formed to control the way operating systems were built: any company was free to design its own UNIX variant however they liked. POSIX was only concerned with how an application interfaces with the operating system. In programmer language, an interface is the method by which one program's code can communicate with another program. The interface expects Program A to provide a specific type of information to Program B. Likewise, Program A expects Program B to respond with a specific type of data.

 

AT&T UNIX

What is the POSIX standard?

In a word: portability.

Over 60 years ago, programmers had to completely rewrite code if they wanted their software to work on more than one system. This didn't happen very often due to the expense involved, but portability became a feature in the mid-60s, not via POSIX, but in the mainframe arena.

Over the years, the POSIX specification has continued to be revised and retooled. At one time, each standard was informally called POSIX, followed by a decimal and then the standard number. For example, POSIX.1 was the standard for an application programming interface in the language C and POSIX.2 was the standard shell and utility interface for the operating system. These standards have been officially referred to as IEEE Std 1003.1 and IEEE Std 1003.2, respectively.

There have also been amendments to the core standard, such as IEEE Std 1003.1b-1993, which dealt with real-time extensions. However, all the various specifications have been merged into one standard, IEEE Std 1003.1 , which was last updated in 2017 and released in 2018. Officially, it's called IEEE Std 1003.1-2017. However, it is also referred to as POSIX.1-2017 or, more informally, POSIX.1.

The POSIX standard has other names as well. The Open Group calls it The Open Group Base Specifications Issue 7, 2018 edition, and ISO/IEC calls it ISO/IEC 9945:2009. ISO/IEC adopted the standard in 2009 and added Technical Corrigendum 1 in late 2012 and Technical Corrigendum 2 in March 2017, putting it on par with IEEE Std 1003.1-2017.

The POSIX.1-2017 specification defines the core services needed to build POSIX-compliant applications. They establish standard semantics and syntax to help developers write portable applications. POSIX.1 consists of the following four volumes:

  1. Basic definitions. Provides common definitions for the specification, including terms, concepts, syntax, service functions, and command line information
  2. System interfaces. Provides details on interface terms and concepts and defines the functional interfaces available to applications that access POSIX-compliant systems.
  3. Shells and utilities. Describes the commands and utilities available to applications that access POSIX-compliant systems, including the command language used on those systems.
  4. Rationale. Includes historical information about the contents of the standard and why some features were added or removed.

POSIX.1 takes a “write once, adopt everywhere” approach to the specification by providing a number of core services needed to build applications efficiently. The standard emphasizes structures and features that are important to application development, rather than focusing on the techniques needed to achieve these capabilities. The POSIX standard is designed to be used by both system integrators, systems engineers and application developers.

In conclusion

The POSIX standard allows developers to build applications, tools and platforms on many operating systems using much of the same code. It's not a requirement at all to write code to the standard, but it helps, in a big way, when you want to port your code to other systems.

Basically, POSIX is geared towards OS designers and software developers, but as users of a system, we are influenced by POSIX whether we realize it or not. It's because of the standard that we're able to work on a UNIX or Linux system and take that work to another system and work on it without a hitch. As users, we gain numerous benefits in terms of usability and data reuse between systems.

 

Do you have doubts? Don't know where to start? Contact us!

We have all the answers to your questions to help you make the right choice.

Chat with us

Chat directly with our presales support.

0256569681

Contact us by phone during office hours 9:30 - 19:30

Contact us online

Open a request directly in the contact area.

DISCLAIMER, Legal Notes and Copyright. RedHat, Inc. holds the rights to Red Hat®, RHEL®, RedHat Linux®, and CentOS®; AlmaLinux™ is a trademark of the AlmaLinux OS Foundation; Rocky Linux® is a registered trademark of the Rocky Linux Foundation; SUSE® is a registered trademark of SUSE LLC; Canonical Ltd. holds the rights to Ubuntu®; Software in the Public Interest, Inc. holds the rights to Debian®; Linus Torvalds holds the rights to Linux®; FreeBSD® is a registered trademark of The FreeBSD Foundation; NetBSD® is a registered trademark of The NetBSD Foundation; OpenBSD® is a registered trademark of Theo de Raadt; Oracle Corporation holds the rights to Oracle®, MySQL®, MyRocks®, VirtualBox®, and ZFS®; Percona® is a registered trademark of Percona LLC; MariaDB® is a registered trademark of MariaDB Corporation Ab; PostgreSQL® is a registered trademark of PostgreSQL Global Development Group; SQLite® is a registered trademark of Hipp, Wyrick & Company, Inc.; KeyDB® is a registered trademark of EQ Alpha Technology Ltd.; Typesense® is a registered trademark of Typesense Inc.; REDIS® is a registered trademark of Redis Labs Ltd; F5 Networks, Inc. owns the rights to NGINX® and NGINX Plus®; Varnish® is a registered trademark of Varnish Software AB; HAProxy® is a registered trademark of HAProxy Technologies LLC; Traefik® is a registered trademark of Traefik Labs; Envoy® is a registered trademark of CNCF; Adobe Inc. owns the rights to Magento®; PrestaShop® is a registered trademark of PrestaShop SA; OpenCart® is a registered trademark of OpenCart Limited; Automattic Inc. holds the rights to WordPress®, WooCommerce®, and JetPack®; Open Source Matters, Inc. owns the rights to Joomla®; Dries Buytaert owns the rights to Drupal®; Shopify® is a registered trademark of Shopify Inc.; BigCommerce® is a registered trademark of BigCommerce Pty. Ltd.; TYPO3® is a registered trademark of the TYPO3 Association; Ghost® is a registered trademark of the Ghost Foundation; Amazon Web Services, Inc. owns the rights to AWS® and Amazon SES®; Google LLC owns the rights to Google Cloud™, Chrome™, and Google Kubernetes Engine™; Alibaba Cloud® is a registered trademark of Alibaba Group Holding Limited; DigitalOcean® is a registered trademark of DigitalOcean, LLC; Linode® is a registered trademark of Linode, LLC; Vultr® is a registered trademark of The Constant Company, LLC; Akamai® is a registered trademark of Akamai Technologies, Inc.; Fastly® is a registered trademark of Fastly, Inc.; Let's Encrypt® is a registered trademark of the Internet Security Research Group; Microsoft Corporation owns the rights to Microsoft®, Azure®, Windows®, Office®, and Internet Explorer®; Mozilla Foundation owns the rights to Firefox®; Apache® is a registered trademark of The Apache Software Foundation; Apache Tomcat® is a registered trademark of The Apache Software Foundation; PHP® is a registered trademark of the PHP Group; Docker® is a registered trademark of Docker, Inc.; Kubernetes® is a registered trademark of The Linux Foundation; OpenShift® is a registered trademark of Red Hat, Inc.; Podman® is a registered trademark of Red Hat, Inc.; Proxmox® is a registered trademark of Proxmox Server Solutions GmbH; VMware® is a registered trademark of Broadcom Inc.; CloudFlare® is a registered trademark of Cloudflare, Inc.; NETSCOUT® is a registered trademark of NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, and Kibana® are registered trademarks of Elastic NV; Grafana® is a registered trademark of Grafana Labs; Prometheus® is a registered trademark of The Linux Foundation; Zabbix® is a registered trademark of Zabbix LLC; Datadog® is a registered trademark of Datadog, Inc.; Ceph® is a registered trademark of Red Hat, Inc.; MinIO® is a registered trademark of MinIO, Inc.; Mailgun® is a registered trademark of Mailgun Technologies, Inc.; SendGrid® is a registered trademark of Twilio Inc.; Postmark® is a registered trademark of ActiveCampaign, LLC; cPanel®, LLC owns the rights to cPanel®; Plesk® is a registered trademark of Plesk International GmbH; Hetzner® is a registered trademark of Hetzner Online GmbH; OVHcloud® is a registered trademark of OVH Groupe SAS; Terraform® is a registered trademark of HashiCorp, Inc.; Ansible® is a registered trademark of Red Hat, Inc.; cURL® is a registered trademark of Daniel Stenberg; Facebook®, Inc. owns the rights to Facebook®, Messenger® and Instagram®. This site is not affiliated with, sponsored by, or otherwise associated with any of the above-mentioned entities and does not represent any of these entities in any way. All rights to the brands and product names mentioned are the property of their respective copyright holders. All other trademarks mentioned are the property of their respective registrants. MANAGED SERVER® is a European registered trademark of MANAGED SERVER SRL, with registered office in Via Flavio Gioia, 6, 62012 Civitanova Marche (MC), Italy and operational headquarters in Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italy.

JUST A MOMENT !

Have you ever wondered if your hosting sucks?

Find out now if your hosting provider is hurting you with a slow website worthy of 1990! Instant results.

Close the CTA
Back to top