[목차] == 개요 == '''P'''ortable '''O'''perating '''S'''ystem '''I'''nterface + '''X'''[* UNIX의 X ] POSIX는 [[IEEE]]가 제정한 [[유닉스]]의 [[애플리케이션 프로그래밍 인터페이스]]([[API]]) 규격이다. 이 규격을 따르면 유닉스와 직접적인 연관이 없어도 유닉스 호환(Unix-like) [[운영 체제]]라고 부른다. [[리눅스]]가 이런 케이스인데, 유닉스와는 별도로 개발되었지만 POSIX 표준을 거의 다 준수하기 때문에 리눅스는 유닉스 호환 운영 체제로 본다. 다만 공식 인증을 받은 경우는 흔치 않으며, 넓게 봐서 호환 운영 체제라는 얘기. 유닉스의 일종인 4.4[[BSD]]-Lite Release 2와 [[FreeBSD]]에 기반하여 역시 유닉스의 일종인 [[macOS]]도 POSIX를 따른다. macOS는 10.5 버전부터 아예 정식 인증을 받았다. [[macOS 11]] Big Sur 또한 Intel 맥과 Apple Silicon 맥 모두 [[https://www.opengroup.org/openbrand/register/apple.htm|UNIX 03 인증]]을 받았다. == 버전 == * POSIX.1 * POSIX.1b * POSIX.1c * POSIX.2 * POSIX.1-2001 * POSIX.1-2008 * POSIX.1-2017 == Windows 운영 체제에서 == 한 때 윈도우도 유닉스 지원을 위해 POSIX 1.0에 준하는 서브시스템을 탑재하였으나, [[Windows NT]] 커널 기반의 [[Windows XP]]가 일반 사용자를 위한 운영 체제로 변모하면서 POSIX 지원이 제거되었다. [[Windows Server 2003]] R2부터는 POSIX 2.0에 준하는 서브 시스템을 지원하나 [[제어판]]에서 SUA(Subsystem for UNIX-based Applications)를 활성화해야 한다.[* [[Windows Vista]]와 [[Windows 7|7]]도 얼티밋 에디션 또는 엔터프라이즈 에디션일 경우 제어판에서 SUA를 활성화할 수 있다.] 이후 [[Windows 8]]에서[* 서버 운영체제는 [[Windows Server 2012 R2]]부터.] SUA가 미탑재되면서 POSIX 지원도 제거되었다. 이 때문에 한동안 Windows에서 POSIX 환경을 이용하려면 Cygwin을 이용하는 방법밖에는 없었다가, [[Windows 10]] Anniversary Update에 들어서 WSL(Windows Subsystem for Linux)이라는 [[유닉스/MS 윈도우|리눅스 서브시스템]]을 다시 탑재하여 POSIX 환경을 이용할 수 있게 되었다.[* 단, WSL1 버전에서는 실제로 리눅스 시스템 콜(이를 POSIX API라고 볼 때)을 Windows API로 구현하는, 즉 일종의 번역 작업을 거쳤으므로 원래의 서브시스템의 정의하고 그나마 비슷하다고 해줄 수 있었으나, WSL2 부터는 Hyper-V 기반으로 동작하기 때문에 아예 실제 리눅스 커널이 가상화로 돌아간다. 따라서 이건 원래 의미로서의 서브시스템이라고 하기 더더욱 애매하기는 하다.] == 기타 == [[정규 표현식]]이 POSIX의 일부이지만, 워낙 오래된 규격이라 속도상의 손해가 있어 상당수가 더 빠른 알고리즘을 쓰는 PCRE[* [[Perl]] Compatible Regular Expressions]로 갈아탄 상태이다. [[PHP]]에서 예전에 정규표현식 함수로 널리 쓰였던 ereg 계열 함수가 POSIX 기반의 정규표현식 함수였으나, PCRE 기반의 preg 계열 함수로 대체되면서 한동안 [[레거시]] 요소로 남아있다가 PHP 7부터는 제거되었다. [[분류:UNIX]]