IEEE 1003.1은 응용 프로그램이 소스 코드 수준에서 이식될 수 있도록 운영체제 인터페이스와 환경, 명령 해석기(셸), 공통 유틸리티 프로그램을 정하는 표준이다. 2024년 판인 POSIX.1-2024는 IEEE Std 1003.1-2024이면서 The Open Group의 Base Specifications Issue 8이다.[1] POSIX라는 이름은 처음 IEEE Std 1003.1-1988을 가리켰지만, 지금은 IEEE 1003.n 표준들과 ISO/IEC 9945의 부들로 이루어진 표준 계열을 가리킨다. 그래서 이 표준을 가리키는 이름으로 POSIX.1이 자리 잡았다.[2]
범위
이 표준은 응용 개발자와 시스템 구현자가 함께 쓰며, 네 권으로 이루어진다.[3]
- Base Definitions: 모든 권에 공통인 용어, 개념, 인터페이스와 C 헤더 정의
- System Interfaces: 시스템 서비스 함수와 C 언어의 시스템 서비스, 이식성과 오류 처리
- Shell and Utilities: 명령 해석 서비스(셸)와 공통 유틸리티 프로그램의 소스 수준 인터페이스
- Rationale: 다른 권에 들어가지 않는 확장 근거 설명. 내용의 역사와 기능을 넣거나 뺀 까닭을 담는 참고(informative) 권[3]
이 표준은 그래픽 인터페이스, 데이터베이스 관리 시스템 인터페이스, 레코드 입출력, 오브젝트·바이너리 코드 이식성, 시스템 구성과 자원 가용성을 범위 밖에 둔다. 기능을 이루는 내부 구현 기법이 아니라, 응용 개발자에게 중요한 외부 특성과 기능을 정한다.[3]
이 표준은 서브프로파일을 정의한 프로파일 구현(_POSIX_SUBPROFILE)이 아니면 세마포어, 타이머, 스핀락, clock selection, 단조 클록(monotonic clock)을 늘 지원하게 하고, Process Scheduling, Thread Execution Scheduling, Message Passing, Sporadic Server, 뮤텍스의 우선순위 상속과 우선순위 보호를 옵션으로 둔다.[4]
개정 이력
- 1988년: 첫판 IEEE Std 1003.1-1988.
- 1990년과 1992년: 1990년에 시스템 인터페이스 표준이, 1992년에 셸·유틸리티 표준이 채택되었다.[2]
- 1993년: 실시간 확장 개정 IEEE 1003.1b-1993. 이 개정이 정한 옵션을 넣으면 표준이 실시간 응용에 맞는 인터페이스도 정의했다.[5] 근거 설명은 이 개정을 POSIX.1b라 부르고, 개발 중에는 POSIX.4라 불렸다. 스레드 확장 개정은 POSIX.1c라 부르고, 개발 중에는 POSIX.4a라 불렸다.[2]
- 2001년: IEEE 1003.1-2001. IEEE Std 1003.1-1996, IEEE Std 1003.2-1992, The Open Group Single UNIX Specification Version 2의 Base Specifications를 하나로 합친 개정판이었다.
- 2008년: IEEE 1003.1-2008.[1]
- 2017년: IEEE 1003.1-2017(POSIX.1-2017). 2008년 판을 대체했고, The Open Group Base Specifications Issue 7과 같은 문서였다.[6]
- 2024년: IEEE 1003.1-2024(POSIX.1-2024). 2017년 판을 대체했고, 2024년 5월 20일 승인되어 2024년 6월 14일 발행되었다.[1]
- 2025년: 정정 프로젝트 P1003.1-2024/Cor 1의 PAR(Project Authorization Request)가 2월 13일 승인되었다. 다른 표준과 업계 관행에서 의도치 않게 벗어난 곳을 바로잡고, 이 표준을 ISO/IEC/IEEE 9945로도 펴낼 수 있게 편집을 고치는 데로 범위를 한정한다.[7]