HOME
The Info List - POSIX


--- Advertisement ---



The Portable Operating System Interface (POSIX)[1] is a family of standards specified by the IEEE Computer Society
IEEE Computer Society
for maintaining compatibility between operating systems. POSIX defines the application programming interface (API), along with command line shells and utility interfaces, for software compatibility with variants of Unix and other operating systems.[2][3]

Contents

1 Name 2 Overview 3 Versions

3.1 Parts before 1997 3.2 Versions after 1997

3.2.1 POSIX.1-2001 3.2.2 POSIX.1-2004 (with two TCs) 3.2.3 POSIX.1-2008 (with two TCs) 3.2.4 POSIX.1-2017

4 Controversies

4.1 512- vs 1024-byte blocks

5 POSIX-oriented operating systems

5.1 POSIX-certified 5.2 Mostly POSIX-compliant

5.2.1 POSIX for Microsoft
Microsoft
Windows 5.2.2 POSIX for OS/2 5.2.3 POSIX for DOS 5.2.4 Compliant via compatibility feature

6 See also 7 References 8 External links

Name[edit] Originally, the name "POSIX" referred to IEEE Std 1003.1-1988, released in 1988. The family of POSIX standards is formally designated as IEEE 1003 and the international standard name is ISO/IEC 9945. The standards emerged from a project that began circa 1985. Richard Stallman suggested the name POSIX to the IEEE instead of former IEEE-IX. The committee found it more easily pronounceable and memorable, and thus adopted it.[2][4] Overview[edit] Unix
Unix
was selected as the basis for a standard system interface partly because it was "manufacturer-neutral". However, several major versions of Unix
Unix
existed—so there was a need to develop a common denominator system. The POSIX specifications for Unix-like
Unix-like
operating systems originally consisted of a single document for the core programming interface, but eventually grew to 19 separate documents (POSIX.1, POSIX.2, etc.).[5] The standardized user command line and scripting interface were based on the UNIX System V
UNIX System V
shell.[6] Many user-level programs, services, and utilities (including awk, echo, ed) were also standardized, along with required program-level services (including basic I/O: file, terminal, and network). POSIX also defines a standard threading library API which is supported by most modern operating systems. In 2008, most parts of POSIX were combined into a single standard (IEEE Std 1003.1-2008, also known as POSIX.1-2008). As of 2014[update], POSIX documentation is divided in two parts:

POSIX.1, 2013 Edition: POSIX Base Definitions, System Interfaces, and Commands and Utilities (which include POSIX.1, extensions for POSIX.1, Real-time Services, Threads Interface, Real-time Extensions, Security Interface, Network File
File
Access and Network Process-to-Process Communications, User Portability Extensions, Corrections and Extensions, Protection and Control Utilities and Batch System Utilities. This is POSIX 1003.1-2008 with Technical Corrigendum 1.) POSIX Conformance Testing: A test suite for POSIX accompanies the standard: VSX-PCTS or the VSX POSIX Conformance Test Suite.[7]

The development of the POSIX standard takes place in the Austin Group (a joint working group linking the IEEE, The Open Group and the ISO/IEC JTC 1 organizations). Versions[edit] Parts before 1997[edit] Before 1997, POSIX comprised several standards:

POSIX.1: Core Services (incorporates Standard ANSI C) (IEEE Std 1003.1-1988)

Process Creation and Control Signals Floating Point Exceptions Segmentation / Memory Violations Illegal Instructions Bus Errors Timers File
File
and Directory Operations Pipes C Library (Standard C) I/O Port Interface and Control Process Triggers

POSIX.1b: Real-time extensions (IEEE Std 1003.1b-1993, later appearing as librt—the Realtime Extensions library)[8])

Priority Scheduling Real-Time Signals Clocks and Timers Semaphores Message Passing Shared Memory Asynchronous and Synchronous I/O Memory Locking Interface

POSIX.1c: Threads extensions (IEEE Std 1003.1c-1995)

Thread Creation, Control, and Cleanup Thread Scheduling Thread Synchronization Signal Handling

POSIX.2: Shell and Utilities (IEEE Std 1003.2-1992)

Command Interpreter Utility Programs

Versions after 1997[edit] After 1997, the Austin Group developed the POSIX revisions. The specifications are known under the name Single UNIX Specification, before they become a POSIX standard when formally approved by the ISO. POSIX.1-2001[edit] POSIX.1-2001 (or IEEE Std 1003.1-2001) equates to the Single UNIX Specification version 3.[9] This standard consisted of:

the Base Definitions, Issue 6, the System Interfaces and Headers, Issue 6, the Commands and Utilities, Issue 6.

POSIX.1-2004 (with two TCs)[edit] IEEE Std 1003.1-2004 involved a minor update of POSIX.1-2001. It incorporated two minor updates or errata referred to as Technical Corrigenda.[10] Its contents are available on the web.[11] POSIX.1-2008 (with two TCs)[edit] As of 2017[update], Base Specifications, Issue 7 (or IEEE Std 1003.1-2008, 2016 Edition) represents the current version.[12][13] A free online copy is available.[12] This standard consists of:

the Base Definitions, Issue 7, the System Interfaces and Headers, Issue 7, the Commands and Utilities, Issue 7, the Rationale volume.

POSIX.1-2017[edit]

This section is empty. You can help by adding to it. (April 2018)

Controversies[edit] 512- vs 1024-byte blocks[edit] POSIX mandates 512-byte default block sizes for the df and du utilities, reflecting the typical size of blocks on disks. When Richard Stallman
Richard Stallman
and the GNU
GNU
team were implementing POSIX for the GNU operating system, they objected to this on the grounds that most people think in terms of 1024 byte (or 1 KiB) blocks. The environment variable POSIXLY_CORRECT was introduced to allow the user to force the standards-compliant behaviour.[14] This variable is now also used for a number of other behaviour quirks, where " POSIX and common sense disagree".[citation needed] POSIX-oriented operating systems[edit] Depending upon the degree of compliance with the standards, one can classify operating systems as fully or partly POSIX compatible. Certified products can be found at the IEEE's website.[15] POSIX-certified[edit] Some versions of the following operating systems have been certified to conform to one or more of the various POSIX standards. This means that they passed the automated conformance tests.[16]

AIX[17] HP-UX[18] IRIX[19] EulerOS[20] macOS (since 10.5 Leopard)[21][22][discuss] Solaris[23] Tru64[18] UnixWare[24] QNX
QNX
Neutrino[25] Inspur K-UX[26] Integrity[27]

Mostly POSIX-compliant[edit]

This section needs expansion. You can help by adding to it. (January 2007)

The following, while not officially certified as POSIX compatible, comply in large part:

Android (Available through Android NDK)[citation needed] BeOS
BeOS
(and subsequently Haiku) Contiki Darwin (core of OS X/macOS and iOS) FreeBSD[28] illumos Linux
Linux
(most distributions — see Linux
Linux
Standard Base) LynxOS MINIX
MINIX
(now MINIX3)S MPE/iX[29] NetBSD Nucleus RTOS NuttX OpenBSD OpenSolaris[30] PikeOS
PikeOS
RTOS for embedded systems with optional PSE51 and PSE52 partitions; see partition (mainframe) Redox RTEMS
RTEMS
POSIX API support designed to IEEE Std. 1003.13-2003 PSE52 Sanos SkyOS Syllable VSTa VMware ESXi VxWorks
VxWorks
( VxWorks
VxWorks
is often used as a shell around non- POSIX Kernels — i.e. TiMOS/SROS[citation needed]) Xenix

POSIX for Microsoft
Microsoft
Windows[edit]

Cygwin
Cygwin
provides a largely POSIX-compliant development and run-time environment for Microsoft
Microsoft
Windows. MinGW, a fork of Cygwin, provides a less POSIX-compliant development environment and supports compatible C-programmed applications via Msvcrt, Microsoft's old Visual C runtime library. Microsoft
Microsoft
POSIX subsystem, an optional Windows subsystem included in Windows NT-based operating systems up to Windows 2000. POSIX-1 as it stood in 1990 revision, without threads or sockets. Interix, originally OpenNT by Softway Systems, Inc., is an upgrade and replacement for Microsoft POSIX subsystem
Microsoft POSIX subsystem
that was purchased by Microsoft
Microsoft
in 1999. It was initially marketed as a stand-alone add-on product and then later included it as a component in Windows Services for UNIX (SFU) and finally incorporated it as a component in Windows Server 2003 R2 and later Windows OS releases under the name "Subsystem for UNIX-based Applications" (SUA); later made deprecated in 2012 (Windows 8)[31] and dropped in 2013 (2012 R2, 8.1). It enables full POSIX compliance for certain Microsoft Windows
Microsoft Windows
products.[citation needed] Windows Subsystem for Linux
Linux
is a compatibility layer for running Linux binary executables natively on Windows 10 using an Ubuntu image, acting as an upgrade and replacement for Windows Services for UNIX. It was released in beta in April 2016. UWIN from AT&T Research implements a POSIX layer on top of the Win32 APIs. MKS Toolkit, originally created for MS-DOS, is a software package produced and maintained by MKS Inc. that provides a Unix-like environment for scripting, connectivity and porting Unix
Unix
and Linux software to both 32- and 64-bit Microsoft Windows
Microsoft Windows
systems. A subset of it was included in the first release of Windows Services for UNIX (SFU) in 1998.[32] Windows C Runtime Library and Windows Sockets API implement commonly used POSIX API functions for file, time, environment, and socket access,[33] although the support remains largely incomplete and not fully interoperable with POSIX-compliant implementations.[34][35][discuss]

POSIX for OS/2[edit] Mostly POSIX compliant environments for OS/2:

emx+gcc – largely POSIX compliant

POSIX for DOS[edit] Partially POSIX compliant environments for DOS
DOS
include:

emx+gcc – largely POSIX compliant DJGPP
DJGPP
– partially POSIX compliant DR- DOS
DOS
multitasking core via EMM386 /MULTI – a POSIX threads frontend API extension is available

Compliant via compatibility feature[edit] The following are not officially certified as POSIX compatible, but they conform in large part to the standards by implementing POSIX support via some sort of compatibility feature (usually translation libraries, or a layer atop the kernel). Without these features, they are usually noncompliant.

eCos – POSIX is part of standard distribution, and used by many applications. 'external links' section below has more information. MorphOS
MorphOS
(through the built-in ixemul library) OpenVMS
OpenVMS
(through optional POSIX package) Plan 9 from Bell Labs
Plan 9 from Bell Labs
APE - ANSI/ POSIX Environment[36] RIOT (through optional POSIX module) Symbian
Symbian
OS with PIPS ( PIPS Is POSIX on Symbian) Windows NT kernel when using Microsoft
Microsoft
SFU 3.5 or SUA

Windows 2000
Windows 2000
Server or Professional with Service Pack 3 or later. To be POSIX compliant, one must activate optional features of Windows NT and Windows 2000
Windows 2000
Server.[37] Windows XP
Windows XP
Professional with Service Pack 1 or later Windows Server 2003 Windows Server 2008
Windows Server 2008
and Ultimate and Enterprise versions of Windows Vista Windows Server 2008
Windows Server 2008
R2 and Ultimate and Enterprise versions of Windows 7 albeit deprecated, still available for Windows Server 2012
Windows Server 2012
and Enterprise version of Windows 8

UNIX System Services that runs on z/OS (certified as compliant)

See also[edit]

POSIX signal POSIX Threads POSIX sockets are basically Berkeley sockets[citation needed] TRON project – alternative OS standards to POSIX Common User Access – User interface standard Interix – a full-featured POSIX and Unix
Unix
environment subsystem for Microsoft's Windows NT-based operating systems C POSIX library Real-time operating system Portable character set, set of 103 characters which should be supported in any POSIX-compliant character set locale

References[edit]

^ "POSIX.1 FAQ". The Open Group. 5 October 2011.  ^ a b " POSIX 1003.1 FAQ Version 1.12". 2 February 2006. Retrieved 16 July 2006.  ^ "POSIX". Standards. IEEE.  ^ "The origin of the name POSIX". 2011. Retrieved 28 September 2013.  ^ PASC Status (including POSIX) (Report). IEEE Computer Society. 2003-12-04. Retrieved 2015-03-01.  ^ "Shell Command Language - The Open Group Base Specifications Issue 7, 2013 Edition".  ^ "POSIX". The Open Group.  ^ "librt(3LIB)". docs.oracle.com. man pages section 3: Library Interfaces and Headers. Oracle Corporation. 1998-08-04. Retrieved 2016-02-18. librt, libposix4- POSIX.1b Realtime Extensions library [...] librt is the preferred name for this library. The name libposix4 is maintained for backward compatibility and should be avoided. Functions in this library provide most of the interfaces specified by the POSIX.1b Realtime Extension.  ^ " The Open Group announces completion of the joint revision to POSIX and the Single UNIX Specification" (Press release). The Open Group. 30 January 2002. Retrieved 26 July 2009.  ^ "IEEE Std 1003.1" (2004 ed.). Unix.org. Retrieved 26 July 2009  ^ "IEEE Std 1003.1" (2004 ed.). The Open Group . ^ a b "Base Specifications, Issue 7, 2016 Edition". The Open Group. Retrieved 18 December 2014.  ^ "The Austin Common Standards Revision Group". The Open Group. Retrieved 1 March 2016.  ^ "Announce" (Google Groups replica). GNU . ^ " POSIX Certification". IEEE.  ^ " POSIX Certified by IEEE and The Open Group - Program Guide".  ^ "IBM". The Open Group. Retrieved 26 January 2014.  ^ a b "Hewlett-Packard". The Open Group. Retrieved 26 January 2014.  ^ "Silicon Graphics, Inc". The Open Group. Retrieved 26 January 2014.  ^ "Huawei Technology Co., Ltd". The Open Group. Retrieved 26 May 2017.  ^ "The Open Brand - Register of Certified Products". Register of Open Branded Products. The Open Group. Retrieved 20 May 2015.  ^ "Apple Inc". Register of Open Branded Products. The Open Group. Retrieved 20 May 2015.  ^ "Oracle Corporation". The Open Group. Retrieved 26 January 2014.  ^ " UnixWare
UnixWare
® 7.1.3 and later". The Open Group. 16 May 2003.  ^ " QNX
QNX
Achieves New POSIX Certification". QNX. 8 April 2008. Retrieved 16 January 2016.  ^ "Inspur Co., Ltd". The Open Group. Retrieved 26 May 2017.  ^ " POSIX Certification Register". get.posixcertified.ieee.org. Retrieved 2018-03-09.  ^ Schweik. " POSIX utilities". FreeBSD.  ^ Enterprise, I. D. G. (1994-11-07). Computerworld. IDG Enterprise.  ^ Solter, Nicholas A.; Jelinek, Jerry; Miner, David (2011-03-21). OpenSolaris
OpenSolaris
Bible. John Wiley & Sons. ISBN 9781118080313.  ^ Features Removed or Deprecated in Windows Server 2012 ^ Windows NT Services for UNIX Add-On Pack for NT 4; see also the November '98 press release for MKS toolkit 6.1, also archived elsewhere ^ "MSDN Library: Deprecated CRT Functions". Microsoft. Retrieved 8 Oct 2015.  ^ "MSDN Library: Porting Socket Applications to Winsock". Microsoft. Retrieved 8 Oct 2015.  ^ " Winsock Programmer's FAQ Articles: BSD Sockets Compatibility". Warren Young. 31 Aug 2015. Retrieved 8 Oct 2015.  ^ "APE — ANSI/ POSIX Environment". Plan 9. Bell Labs.  ^ " POSIX Compatibility". MS Windows NT Workstation Resource Kit. Microsoft. 

External links[edit]

Wikimedia Commons has media related to POSIX.

" POSIX Certification Authority". IEEE .

v t e

Standards by The Open Group

ARM CDE CLI CMPI DCE DRDA LDAP Motif SUS (POSIX) X11

v t e

ISO standards by standard number

List of ISO standards / ISO romanizations / IEC standards

1–9999

1 2 3 4 5 6 7 9 16 31

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13

128 216 217 226 228 233 259 269 302 306 428 518 519 639

-1 -2 -3 -5 -6

646 690 732 764 843 898 965 1000 1004 1007 1073-1 1413 1538 1745 1989 2014 2015 2022 2047 2108 2145 2146 2240 2281 2709 2711 2788 2848 2852 3029 3103 3166

-1 -2 -3

3297 3307 3602 3864 3901 3977 4031 4157 4217 4909 5218 5428 5775 5776 5800 5964 6166 6344 6346 6385 6425 6429 6438 6523 6709 7001 7002 7098 7185 7200 7498 7736 7810 7811 7812 7813 7816 8000 8178 8217 8571 8583 8601 8632 8652 8691 8807 8820-5 8859

-1 -2 -3 -4 -5 -6 -7 -8 -8-I -9 -10 -11 -12 -13 -14 -15 -16

8879 9000/9001 9075 9126 9293 9241 9362 9407 9506 9529 9564 9594 9660 9897 9899 9945 9984 9985 9995

10000–19999

10005 10006 10007 10116 10118-3 10160 10161 10165 10179 10206 10218 10303

-11 -21 -22 -28 -238

10383 10487 10585 10589 10646 10664 10746 10861 10957 10962 10967 11073 11170 11179 11404 11544 11783 11784 11785 11801 11898 11940 (-2) 11941 11941 (TR) 11992 12006 12182 12207 12234-2 13211

-1 -2

13216 13250 13399 13406-2 13450 13485 13490 13567 13568 13584 13616 14000 14031 14224 14289 14396 14443 14496

-2 -3 -6 -10 -11 -12 -14 -17 -20

14644 14649 14651 14698 14750 14764 14882 14971 15022 15189 15288 15291 15292 15398 15408 15444

-3

15445 15438 15504 15511 15686 15693 15706

-2

15707 15897 15919 15924 15926 15926 WIP 15930 16023 16262 16612-2 16750 16949 (TS) 17024 17025 17100 17203 17369 17442 17799 18000 18004 18014 18245 18629 18916 19005 19011 19092 (-1 -2) 19114 19115 19125 19136 19439 19500 19501 19502 19503 19505 19506 19507 19508 19509 19510 19600 19752 19757 19770 19775-1 19794-5 19831

20000+

20000 20022 20121 20400 21000 21047 21500 21827:2002 22000 23270 23271 23360 24517 24613 24617 24707 25178 25964 26000 26300 26324 27000 series 27000 27001 27002 27006 27729 28000 29110 29148 29199-2 29500 30170 31000 32000 38500 40500 42010 55000 80000

-1 -2 -3

Category

v t e

List of International Electrotechnical Commission
International Electrotechnical Commission
standards

IEC standards

IEC 60027 IEC 60034 IEC 60038 IEC 60062 IEC 60063 IEC 60068 IEC 60112 IEC 60228 IEC 60269 IEC 60297 IEC 60309 IEC 60320 IEC 60364 IEC 60446 IEC 60559 IEC 60601 IEC 60870

IEC 60870-5 IEC 60870-6

IEC 60906-1 IEC 60908 IEC 60929 IEC 60958

AES3 S/PDIF

IEC 61030 IEC 61131

IEC 61131-3

IEC 61158 IEC 61162 IEC 61334 IEC 61346 IEC 61355 IEC 61400 IEC 61499 IEC 61508 IEC 61511 IEC 61850 IEC 61851 IEC 61883 IEC 61960 IEC 61968 IEC 61970 IEC 62014-4 IEC 62056 IEC 62061 IEC 62196 IEC 62262 IEC 62264 IEC 62304 IEC 62325 IEC 62351 IEC 62365 IEC 62366 IEC 62379 IEC 62386 IEC 62455 IEC 62680 IEC 62682 IEC 62700

ISO/IEC standards

ISO/IEC 646 ISO/IEC 2022 ISO/IEC 4909 ISO/IEC 5218 ISO/IEC 6429 ISO/IEC 6523 ISO/IEC 7810 ISO/IEC 7811 ISO/IEC 7812 ISO/IEC 7813 ISO/IEC 7816 ISO/IEC 7942 ISO/IEC 8613 ISO/IEC 8632 ISO/IEC 8652 ISO/IEC 8859 ISO/IEC 9126 ISO/IEC 9293 ISO/IEC 9592 ISO/IEC 9593 ISO/IEC 9899 ISO/IEC 9945 ISO/IEC 9995 ISO/IEC 10021 ISO/IEC 10116 ISO/IEC 10165 ISO/IEC 10179 ISO/IEC 10646 ISO/IEC 10967 ISO/IEC 11172 ISO/IEC 11179 ISO/IEC 11404 ISO/IEC 11544 ISO/IEC 11801 ISO/IEC 12207 ISO/IEC 13250 ISO/IEC 13346 ISO/IEC 13522-5 ISO/IEC 13568 ISO/IEC 13818 ISO/IEC 14443 ISO/IEC 14496 ISO/IEC 14882 ISO/IEC 15288 ISO/IEC 15291 ISO/IEC 15408 ISO/IEC 15444 ISO/IEC 15445 ISO/IEC 15504 ISO/IEC 15511 ISO/IEC 15693 ISO/IEC 15897 ISO/IEC 15938 ISO/IEC 16262 ISO/IEC 17024 ISO/IEC 17025 ISO/IEC 18000 ISO/IEC 18004 ISO/IEC 18014 ISO/IEC 19752 ISO/IEC 19757 ISO/IEC 19770 ISO/IEC 19788 ISO/IEC 20000 ISO/IEC 21000 ISO/IEC 21827 ISO/IEC 23000 ISO/IEC 23003 ISO/IEC 23008 ISO/IEC 23270 ISO/IEC 23360 ISO/IEC 24707 ISO/IEC 24727 ISO/IEC 24744 ISO/IEC 24752 ISO/IEC 26300 ISO/IEC 27000 ISO/IEC 27000-series ISO/IEC 27002 ISO/IEC 27040 ISO/IEC 29119 ISO/IEC 33001 ISO/IEC 38500 ISO/IEC 42010 ISO/IEC 80000

Related

International Electrote

.