Portable Operating System Interface + X

POSIX는 IEEE(Institute of Electrical and Electronics Engineers)가 제정한 유닉스의 애플리케이션 프로그래밍 인터페이스(API) 규격이다. 이 규격의 명칭은 "Portable Operating System Interface"에 "X"가 추가된 형태로, 읽는 발음에는 몇 가지 이견이 있으나, 몇몇 거장들의 예를 따라 "포직스"라고 읽는 것이 대세다.

POSIX는 초창기 실용적인 범용 컴퓨터 기기들이 각기 다른 유닉스 시스템에서 운영되던 시절, 유닉스 시스템 간의 호환성과 이식성을 확보하기 위해 설정된 표준이다. 이후 UNIX에서 영향을 받아 탄생한 많은 운영 체제들이 유닉스 호환성 표준을 따르게 되었으며, 현재 많은 운영 체제들이 유닉스 호환성을 유지하고 있다.

POSIX 규격을 따르면 유닉스와 직접적인 연관이 없어도 유닉스 호환(Unix-like) 운영 체제라고 부른다. 예를 들어, 리눅스는 유닉스와는 별도로 개발되었으나 POSIX 표준을 거의 다 준수하기 때문에 유닉스 호환 운영 체제로 간주된다. 다만, 공식 인증을 받는 경우는 드물며, 넓은 의미에서 호환 운영 체제라고 할 수 있다.

Unix-like OS들은 POSIX 표준을 따르는 방식이 다를 수 있다. 일부는 적극적으로 POSIX 표준을 지키면서 인증을 받기도 하고, 일부는 대부분의 표준을 따르지만 인증까지는 받지 않으며, 또 다른 경우에는 호환성을 고려하여 어느 정도 따르면서 인증을 받지 않는 경우도 있다.

BSD와 macOS의 경우, BSD는 유전적 유닉스 계열이기 때문에 POSIX 호환이 자연스럽다. macOS는 초기에는 BSD를 기반으로 하였으나, 스티브 잡스의 복귀 후 NeXTSTEP과의 통합을 통해 완전한 호환성을 갖추게 되었고, Mac OS X Leopard부터는 정식 인증을 받았다. 현재 macOS Ventura는 Intel 버전과 Apple Silicon 버전 모두 UNIX 03 인증을 유지하고 있다.

버전

  • POSIX.1
  • POSIX.1b
  • POSIX.1c
  • POSIX.2
  • POSIX.1-2001
  • POSIX.1-2008
  • POSIX.1-2017

MS Windows 운영 체제에서

한 때 Microsoft의 윈도우는 유닉스 소프트웨어 지원을 위해 POSIX 1.0에 준하는 서브시스템을 탑재하였으나, 실질적인 기능은 부족하였다. Windows NT 커널 기반의 Windows XP가 일반 사용자를 위한 운영 체제로 변모하면서 POSIX 지원이 제거되었다. Windows Server 2003 R2부터는 POSIX 2.0에 준하는 서브시스템을 지원하였으나, 제어판에서 SUA(Subsystem for UNIX-based Applications)를 활성화해야 했다. 이후 Windows 8에서는 SUA가 미탑재되면서 POSIX 지원이 제거되었고, 한동안 Windows에서 POSIX 환경을 이용하려면 Cygwin을 사용해야 했다. 그러나 Windows 10 Anniversary Update부터는 WSL(Windows Subsystem for Linux)이 탑재되어 POSIX 환경을 지원하게 되었다.

기타

POSIX의 일부로 정규 표현식이 포함되어 있으나, 속도상의 이유로 많은 경우 PCRE(Perl Compatible Regular Expressions)와 같은 더 빠른 알고리즘으로 대체되었다. PHP에서는 예전에는 POSIX 기반의 `ereg` 계열 함수가 널리 사용되었으나, PCRE 기반의 `preg` 계열 함수로 대체되었고, PHP 7부터는 `ereg` 계열 함수가 제거되었다.