POSIX
POSIX줄임말 | POSIX |
---|---|
상황 | 출판된 |
시작한 해 | 전 |
최신 버전 | IEEE 규격 1003.1-2017 전( |
조직 | 오스틴 그룹(IEEE Computer Society, The Open Group, ISO/IEC JTC 1/SC 22/WG 15) |
관련 기준 | ISO/IEC 9945 |
도메인 | 응용 프로그램 프로그래밍 인터페이스 |
웹 사이트 | get |
Portable Operating System Interface(POSIX)는 IEEE Computer Society가 운영체제 [1]간의 호환성을 유지하기 위해 지정한 표준 패밀리입니다.POSIX는 Unix 및 기타 운영 [1][2]체제와의 소프트웨어 호환성(휴대성)을 위해 명령줄 셸 및 유틸리티 인터페이스와 함께 시스템 및 사용자 수준의 애플리케이션 프로그래밍 인터페이스(API)를 정의합니다.POSIX는 [1]IEEE의 상표이기도 합니다.POSIX는 애플리케이션 개발자와 시스템 [3]개발자가 모두 사용하도록 설계되었습니다.
이름.
원래 "POSIX"라는 이름은 1988년에 출시된 IEEE 규격 1003.1-1988을 가리킵니다.POSIX 표준 패밀리는 공식적으로 IEEE 1003으로 지정되며 ISO/IEC 표준 번호는 ISO/IEC 9945입니다.
이 기준은 1985년 경에 시작된 프로젝트에서 나왔다.Richard Stallman은 이전 IEEE-IX가 아닌 PAHZ-iks(pahz-iks, poh-6이 아닌 positive로 발음)라는 이름을 IEEE에 제안했습니다.위원회는 그것이 더 쉽게 발음되고 기억에 남는다는 것을 발견하고 그것을 [1][4]채택했다.
개요
Unix가 표준 시스템 인터페이스의 기반으로 선택된 이유는 부분적으로 Unix가 제조업체에 의존하지 않기 때문입니다.그러나 Unix의 여러 주요 버전이 존재했기 때문에 공통 표시 시스템을 개발할 필요가 있었습니다.Unix와 유사한 운영 체제의 POSIX 사양은 원래 코어 프로그래밍 인터페이스용 단일 문서로 구성되었지만, 결국 19개의 개별 문서(POSIX.1, POSIX.2 등)[5]로 확장되었습니다.표준화된 사용자 명령줄과 스크립트인터페이스는 UNIX System V [6]쉘에 기반하고 있습니다.많은 사용자 수준의 프로그램, 서비스 및 유틸리티(awk, echo, ed 등)와 필요한 프로그램 수준의 서비스(기본 I/O: 파일, 터미널, 네트워크 등)도 표준화되었습니다.POSIX는 또한 대부분의 최신 운영 체제에서 지원되는 표준 스레드 라이브러리 API를 정의합니다.2008년에 POSIX의 대부분은 단일 표준(IEEE 규격 1003.1-2008, POSIX.1-2008)으로 통합되었습니다.
2014년 현재[update] POSIX 문서는 다음 두 부분으로 나뉩니다.
- POSIX.1, 2013 Edition: POSIX 기본 정의, 시스템 인터페이스 및 명령 및 유틸리티(POSIX.1, POSIX.1 확장 기능, 실시간 서비스, 스레드 인터페이스, 실시간 확장 기능, 보안 인터페이스, 네트워크 파일 액세스 및 네트워크 프로세스, 사용자 프로세스 포함)전력 및 제어 유틸리티와 배치 시스템 유틸리티가 있습니다.이것은 Technical Corrigendum 1을 탑재한 POSIX 1003.1-2008입니다.)
- POSIX 적합성 테스트: POSIX의 테스트 스위트는 표준 VSX-PCTS 또는 VSX POSIX 적합성 테스트 [7]스위트에 부속되어 있습니다.
POSIX 표준의 개발은, Austin 그룹(IEEE, The Open Group, 및 ISO/IEC JTC 1/SC 22/WG 15 의 공동 작업 그룹)에서 행해집니다.
버전
1997년 이전 부품
1997년 이전에 POSIX는 다음과 같은 몇 가지 표준으로 구성되었습니다.
- POSIX.1: 코어 서비스 (표준 ANSI C 통합) (IEEE 규격 1003.1-1988)
- 프로세스 생성 및 제어
- 신호.
- 파일 및 디렉토리 조작
- 파이프
- C 라이브러리(표준 C)
- I/O 포트 인터페이스 및 제어
- 프로세스 트리거
- POSIX.1b: 실시간 확장 (IEEE 규격 1003.1b-1993년, 나중에 라이브러리로서 등장)[8]
- POSIX.1c: 스레드 확장 (IEEE 규격 1003.1c-1995)
- 스레드 작성, 제어 및 청소
- 스레드 스케줄링
- 스레드 동기화
- 신호 처리
- POSIX.2: 셸 및 유틸리티 (IEEE 규격 1003.2-1992)
- 명령어 인터프리터
- 유틸리티 프로그램
1997년 이후 버전
1997년 이후 오스틴 그룹은 POSIX 개정판을 개발했습니다.규격은 ISO에 의해 정식으로 승인될 때 POSIX 표준이 되기 전에 단일 UNIX 규격이라는 이름으로 알려져 있습니다.
POSIX.1-2001 (2개의 TC 포함)
POSIX.1-2001(또는 IEEE 규격 1003.1-2001)은 단일 UNIX 사양 버전3에서 X/Open Curses를 [9]뺀 값에 해당합니다.
이 표준은 다음과 같이 구성되었다.
- 기본 정의, 제6호
- 시스템 인터페이스 및 헤더, 제6호
- 명령 및 유틸리티, 제6호
IEEE 규격 1003.1-2004에는 POSIX.1-2001의 마이너 업데이트가 포함되어 있습니다.여기에는 테크니컬 코리젠다(TCS)[10]라고 불리는 2개의 마이너 업데이트 또는 에라타가 포함되어 있습니다.그 내용은 [11]웹에서 볼 수 있다.
POSIX.1-2008 (2개의 TC 포함)
기본 사양, 제7호(또는 IEEE 규격 1003.1-2008, 2016년판)는 현재 2017년 버전(2018년 [12][13]7월 22일 기준)과 유사합니다.
이 표준은 다음과 같이 구성된다.
- 기본 정의, 제7호
- 시스템 인터페이스 및 헤더, 제7호
- 명령 및 유틸리티, 제7호
- Regonics 볼륨.
POSIX.1-2017
IEEE 규격 1003.1-2017(IEEE 규격 1003.1-2008의 개정) - IEEE 규격 정보기술 - Portable Operating System Interface(POSIX(R) 기본 사양. 이슈 7은 오픈 그룹 또는 IEE에서 제공되며 현재 표준으로 2018년 7월 22일 현재입니다.기술 코리젠다 1 및 2가 적용된 POSIX.1-2008과 기술적으로 동일합니다.무료 온라인 복사가 [12]아직 제공될 수 있습니다.
논쟁
512 바이트 블록과 1024 바이트 블록
POSIX는 df 유틸리티와 du 유틸리티의 기본 블록 크기를 512바이트로 요구합니다.이것은 디스크상의 블록의 일반적인 크기를 반영하고 있습니다.Richard Stallman과 GNU 팀이 GNU 운영체제를 위한 POSIX를 구현했을 때, 그들은 대부분의 사람들이 1024바이트 (또는 1KiB) 블록으로 생각한다는 이유로 이에 반대했다.환경 변수POSIX_ME_HARDER는 사용자가 표준에 준거한 [14]동작을 강제할 수 있도록 하기 위해 도입되었습니다.변수 이름은 나중에 로 변경되었습니다.POSIXLY_CORRECT이 변수는 현재 다른 많은 행동 기호에 사용되고 있습니다.[15]
POSIX 지향 운영 체제
표준의 준거 정도에 따라서는, operating system을 POSIX 의 완전 또는 부분적으로 호환성이 있는 것으로 분류할 수 있습니다.
POSIX 인증 완료
다음의 operating system의 최신 버전은, 복수의 POSIX 규격에 준거하고 있는 것이 인정되고 있습니다.즉, 자동 적합성[16] 테스트에 합격하여 인정 기한이 만료되지 않았으며 운영체제가 [17][18]종료되지 않았습니다.
이전 POSIX 인정
이하의 operating system의 일부 버전은, 복수의 POSIX 규격에 준거하고 있는 것이 인정되고 있습니다.이는 자동 적합성 테스트를 통과했음을 의미합니다.인증이 만료되어 [17]일부 운영 체제가 중단되었습니다.
대부분 POSIX 준거
다음은 POSIX 준거로 인증되지 않았지만 대부분 준거하고 있습니다.
- Android (Android NDK에서 [citation needed]이용 가능)
- BeOS(이후 하이쿠)
- 콘티키
- Darwin(macOS 및 iOS의 핵심)
- DragonFly BSD
- FreeBSD[33]
- 일루미네이션
- Linux(대부분 배포)
- 링소스
- MINIX(현재의 MINIX3)
- MPE/iX[34]
- 넷BSD
- 핵RTOS
- 너트X
- 오픈BSD
- 오픈솔라리스[35]
- PSE51 및 PSE52 파티션(옵션)이 있는 임베디드 시스템용 PikeOS RTOS. "파티션(메인프레임)" 참조
- 레독스
- RTEMS – IEEE 규격 1003.13-2003 PSE52에 준거한 POSIX API 지원
- Stratus OpenVOS[36]
- 스카이 OS
- 음절
- 울트라릭스[37]
- VSTA
- VMware ESXi
- Xenix
Microsoft Windows용 POSIX
- Cygwin은 Microsoft Windows용 POSIX 준거 개발 및 런타임 환경을 제공합니다.
- Cygwin의 포크인 MinGW는 POSIX 준거 개발 환경을 덜 제공하고 마이크로소프트의 오래된 Visual C 런타임 라이브러리인 Msvcrt를 통해 호환되는 C 프로그래밍된 애플리케이션을 지원합니다.
- Microsoft POSIX 서브시스템.Windows NT 기반의 운영체제(Windows 2000까지)에 포함되어 있는 옵션의 Windows 서브시스템입니다.POSIX-1은 스레드 또는 소켓이 없는 1990년 개정판 그대로입니다.
- Interix(원래 오픈)NT by Softway Systems, Inc.는 Microsoft POSIX 서브시스템의 업그레이드 및 대체 제품으로, 1999년에 Microsoft가 구입했습니다.처음으로 독립 실행형 추가형 상품으로 놓고 나중에 Windows서비스에서 유닉스(SFU)에 대한 구성 요소로 포함하며 마침내 WindowsServer2003R2와 최근의 윈도우 OS출시에 그 이름"서브 시스템 UNIX기반 응용"(SUA)아래에 한가지 요소로서 그것들을 통합하였다;나중에 중요도가 2012년(윈도 8)[38]과 방울에서 만들었다. 시판된다.페드2013년(2012년 R2, 8.1).특정 Microsoft Windows [citation needed]제품에 대한 POSIX의 완전한 컴플라이언스를 가능하게 합니다.
- WSL이라고도 하는 Windows Subsystem for Linux는 Ubuntu, Debian, OpenSUSE 등의 Linux 이미지를 사용하여 Windows 10에서 Linux 바이너리 실행 파일을 기본적으로 실행하기 위한 호환성 계층으로, Windows Services for UNIX의 업그레이드 및 대체 역할을 합니다.2016년 4월에 베타판으로 발매되었습니다.최초로 배포된 것은 Ubuntu였습니다.
- AT&T Research의 UWIN은 Win32 API 위에 POSIX 레이어를 구현합니다.
- 원래 MS-DOS용으로 개발된 MKS Toolkit은 32비트 및 64비트 Microsoft Windows 시스템에 Unix 및 Linux 소프트웨어를 스크립팅, 연결 및 이식하기 위한 Unix와 같은 환경을 제공하는 MKS Inc.에서 생산 및 유지보수하는 소프트웨어 패키지입니다.그 중 일부는 [39][40]1998년 Windows Services for UNIX(SFU)의 첫 번째 릴리스에 포함되어 있습니다.
- Windows C Runtime Library 및 Windows Sockets API는 파일,[41] 시간, 환경 및 소켓액세스를 위해 일반적으로 사용되는 POSIX API 기능을 구현합니다.단, 지원은 거의 불완전하며 POSIX 준거 [42][43][discuss]구현과 완전히 상호 운용할 수 없습니다.
OS/2용 POSIX
대부분의 OS/2용 POSIX 준거 환경:
- emx+gcc –대부분 POSIX 준거
DOS용 POSIX
DOS의 POSIX 준거 환경에는, 다음과 같은 것이 있습니다.
- emx+gcc –대부분 POSIX 준거
- DJGPP – POSIX에 부분적으로 준거
- DR-DOS 멀티태스킹코어는EMM386 / MULTI – POSIX 스레드 프런트 엔드 API 확장을 이용할 수 있습니다.
호환성 레이어를 통한 준거
다음은 POSIX 호환성이 공식적으로 인정되지는 않았지만, 대부분 POSIX 지원 기능을 일종의 호환성 기능(일반적으로 번역 라이브러리 또는 커널 상단 레이어)을 통해 구현함으로써 표준을 준수합니다.이러한 기능이 없으면 일반적으로 비준수입니다.
- AmigaOS(ixemul 라이브러리 또는 vbcc_PosixLib[44] 경유)
- eCos – POSIX는 표준 배포의 일부이며 많은 애플리케이션에서 사용됩니다.자세한 내용은 아래의 '링크 삭제' 섹션을 참조하십시오.
- IBM i(PASE 호환성 [45]계층 경유)
- MorphOS(내장 ixemul 라이브러리 사용)
- OpenVMS (옵션 POSIX 패키지 사용)
- Bell Labs APE의 Plan 9 - ANSI/POSIX 환경[46]
- RIOT (옵션 POSIX 모듈 사용)
- 심비안 OS(PIPS는 심비안에서는 POSIX)
- Microsoft SFU 3.5 또는 SUA 사용 시 Windows NT 커널
- Windows 2000 Server 또는 Professional Service Pack 3 이후.POSIX에 준거하려면 , Windows NT 및 Windows 2000 Server [47]의 옵션 기능을 유효하게 할 필요가 있습니다.
- Windows XP Professional Service Pack 1 이후
- Windows Server 2003
- Windows Server 2008 및 Ultimate 및 Enterprise 버전의 Windows Vista
- Windows Server 2008 R2 및 Ultimate 및 Enterprise 버전의 Windows 7
- 권장되지 않지만 Windows Server 2012 및 Enterprise 버전의 Windows 8에서 사용할 수 있습니다.
- VAXELN(VAXELN POSIX 런타임 [48]라이브러리를 통해 1003.1 및 1003.4 부분 지원)
「 」를 참조해 주세요.
- 단일 UNIX 사양
- POSIX 신호
- POSIX 스레드
- C POSIX 라이브러리
- 공통 사용자 액세스– 사용자 인터페이스 표준
- POSIX 준거 문자 세트 로케일에서 지원해야 하는 103자 세트 포터블 문자 세트
- 실시간 운영 체제
- Interix – Microsoft Windows NT 기반 운영체제용 풀기능 POSIX 및 Unix 환경 서브시스템
- TRON 프로젝트– POSIX 대체 OS 표준
레퍼런스
- ^ a b c d "POSIX.1 FAQ". The Open Group. 13 June 2020. Retrieved 22 January 2022.
- ^ "P1003.1 - Standard for Information Technology--Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 8". IEEE Standards Association.
- ^ "Introduction". The Open Group Base Specifications Issue 7, 2018 edition. Retrieved 22 July 2021.
- ^ "The origin of the name POSIX". 2011. Retrieved 28 September 2013.
- ^ PASC Status (including POSIX) (Report). IEEE Computer Society. 4 December 2003. Retrieved 1 March 2015.
- ^ "Shell Command Language - The Open Group Base Specifications Issue 7, 2013 Edition". Retrieved 28 April 2020.
- ^ "Test Suites VSX-PCTS2003". The Open Group.
- ^ "librt(3LIB)". docs.oracle.com. man pages section 3: Library Interfaces and Headers. Oracle Corporation. 4 August 1998. Retrieved 18 February 2016.
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 Single UNIX Specification Version 3 - Overview". unix.org.
- ^ "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.
- ^ Stallman, Richard (28 August 1991). "Democracy Triumphs in Disk Units". Newsgroup: gnu.announce. Usenet: 9108281809.AA03552@mole.gnu.ai.mit.edu – via Google Groups.
- ^ "GNU Coding Standards". GNU.
- ^ "POSIX Certified by IEEE and The Open Group - Program Guide". Section 2, How to Achieve Certification. Retrieved 22 January 2022.
- ^ a b "POSIX Certified by IEEE and The Open Group - Program Guide". Section 4, Renewals and Certified Product Updates. Retrieved 22 January 2022.
- ^ "Certified Products by Company". The Open Group. n.d. Retrieved 22 January 2022.
- ^ a b "IBM". The Open Group. Retrieved 23 January 2022.
- ^ "Huawei Technology Co., Ltd". The Open Group. Retrieved 26 May 2017.
- ^ "Hewlett-Packard". The Open Group. Retrieved 26 January 2014.
- ^ a b "POSIX Certification Register". get.posixcertified.ieee.org. Retrieved 23 January 2022.
- ^ "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.
- ^ "SCO OpenServer Release 5". The Open Group. 3 May 1995. Retrieved 24 December 2021.
- ^ "UnixWare ® 7.1.3 and later". The Open Group. 16 May 2003. Retrieved 24 December 2021.
- ^ "Inspur Co., Ltd". The Open Group. Retrieved 26 May 2017.
- ^ "Silicon Graphics, Inc". The Open Group. Retrieved 26 January 2014.
- ^ "The Open Brand - Register of Certified Products". Open Group. 23 July 2003. Archived from the original on 2 August 2003. Retrieved 23 January 2022.
- ^ "QNX Achieves New POSIX Certification" (Press release). QNX. 8 April 2008. Retrieved 16 January 2016.
- ^ "Oracle Corporation". The Open Group. Archived from the original on 12 July 2017. Retrieved 26 January 2014.
- ^ "Hewlett-Packard". The Open Group. Archived from the original on 9 July 2014. Retrieved 26 January 2014.
- ^ Schweikhardt, Jens. "FreeBSD POSIX 2001 Utility Compliance". FreeBSD.
- ^ Mark Halper (7 November 1994). "HP 3000 sales catch market by surprise". Computerworld. Vol. 28, no. 4. IDG Enterprise.
- ^ Solter, Nicholas A.; Jelinek, Jerry; Miner, David (21 March 2011). OpenSolaris Bible. John Wiley & Sons. ISBN 9781118080313.
- ^ "OpenVOS POSIX.1: Conformance Guide". Status Technologies. Retrieved 26 November 2021.
- ^ ULTRIX POSIX Conformance Document (PDF). Digital. June 1990. Retrieved 13 December 2021.
- ^ "Features Removed or Deprecated in Windows Server 2012". Microsoft Docs. 31 August 2016.
- ^ "Windows NT Services for UNIX Add-On Pack". Microsoft. Archived from the original on 8 May 1999.
- ^ "MKS Solves Enterprise Interoperability Challenges" (Press release). Archived from the original on 28 April 1999.
- ^ "Deprecated CRT Functions". Microsoft Docs. 15 October 2009. Retrieved 23 July 2022.
- ^ "Porting Socket Applications to Winsock". Microsoft Docs. 7 January 2021. Retrieved 23 July 2022.
- ^ "Winsock Programmer's FAQ Articles: BSD Sockets Compatibility". Warren Young. 31 August 2015. Retrieved 8 October 2015.
- ^ "Aminet - dev/C/Vbcc_PosixLib.lha".
- ^ "Programming IBM PASE for i" (PDF). ibm.com. IBM. 2013. Retrieved 25 November 2021.
- ^ "APE — ANSI/POSIX Environment". Plan 9 documents. Bell Labs. Archived from the original on 1 June 2016.
- ^ "Chapter 29 - POSIX Compatibility". MS Windows NT Workstation Resource Kit. Microsoft. Archived from the original on 15 January 2008.
- ^ Realtime Products Technical Summary, Fifth Edition (PDF). Digital Equipment Corporation. December 1992. Retrieved 8 December 2021.
외부 링크
![](http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
- "POSIX Certification home". The Open Group/IEEE.