POSIX(Portable Operating System Interface)

POSIX

Portable Operating System Interface

  • portable : 이식 가능한
  • Operationg System : 운영 체제
  • Interface : 인터페이스
  • X : POSIX 전체 이름에서 유닉스(UNIX) 계열임을 암시하는 관습적 접미사

서로 다른 UNIX 계열 운영체제 간의 애플리케이션 호환성을 높이기 위해

IEEE가 책정한 유닉스 기반의 표준 API 규격으로 ‘X’는 UNIX(유닉스) 호환 운영체제를 의미하는 관습

1. 이름의 탄생 비화 (리처드 스톨먼,  Richard Stallman의 제안)

https://en.wikipedia.org/wiki/POSIX

  • 원래 이름
    IEEE 내부에서는 원래 ‘IEEE-IX’라고 부르려고 했습니다.
  • 스톨먼의 개입
    자유 소프트웨어 재단(FSF)의 리처드 스톨먼이 “IEEE-IX는 발음하기 너무 어렵다”며,
    ‘Portable Operating System’의 약자에 유닉스 느낌의 ‘IX’를 붙인 POSIX(포직스)를 제안했습니다.
  • 채택 이유
    이 이름이 훨씬 부르기 쉽고 기억에 잘 남는다는 이유로 위원회에서 즉시 채택되었습니다.

2. 구체적으로 무엇을 정의하는가?

단순히 API 함수 이름만 정하는 것이 아니라 다음 세 가지 핵심 요소를 모두 포함합니다.

  • C 언어 API
    open(), read(), write() 같은 시스템 콜의 함수 이름, 인자, 반환 값, 오류 처리 방식까지 동작 전반을 규정합니다.
  • 셸(Shell) 및 유틸리티
    ls, grep, cd 같은 기본 명령어들이 어떤 옵션을 지원하고 어떤 결과를 출력해야 하는지 정의합니다.
  • 파일 시스템 및 프로세스
    /usr, /tmp 같은 파일 경로 구조와 프로세스 생성(fork)·종료 방식 등 OS의 근간이 되는 동작 방식을 표준화 합니다.

3. 실무에서의 의미: “한 번 짜서 어디든 돌린다”

  • 개발 효율성
    POSIX 표준을 준수하여 프로그램을 만들면, 코드를 거의 수정하지 않고도 Linux, macOS, BSD 등 다양한 운영체제에서 바로 컴파일하여 실행할 수 있습니다.
  • 호환성 확인
    어떤 시스템이 “POSIX 준수(Compliant)”라고 하면, 개발자는 “내 프로그램이 이 OS에서도 문제없이 돌아가겠구나”라고 신뢰할 수 있게 됩니다.
  • 호환성의 한계
    다만 Windows는 기본적으로 POSIX를 준수하지 않습니다.
    WSL(Windows Subsystem for Linux)을 통해 부분적으로 지원하지만,
    네이티브 Windows 환경에서는 동일한 코드가 동작하지 않을 수 있다는 점을 염두에 두어야 합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤