POSIX 서브시스템

By 01/11/2018Windows Internal

POSIX 서브시스템

  • Windows Server 2008

 

POSIX는 Portable Operating System Interface based on UNIX 의 약어로 유닉스 스타일 운영체제 인터페이스용 국제 표준 모음이다. 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 구격이다.

 

윈도우 초기에 많은 POSIX.1 만을 구현하였으며 이것은 U.S 정부의 조달 요구 사항을 맞추기 위해 포함되었다. Windows NT 3.5와 3.41, 4 는 FIPS 151-2에 따라 공식적으로 테스트되고 인증 받았다. POSIX.1 규약은 윈도우의 필수 목표였기 때문에 운영체제는 기본 시스템 지원이 POSIX.1 서브시스템의 구현 허용을 만족시키게 설계되었다.

 

윈도우 비스타와 윈도우 서버 2008은 유닉스 기반 애플리케이션 윈도우 서브시스템(SUA)을 제공한다. 이는 거의 2000개의 유닉스 함수와 300개의 유닉스와 유사한 툴과 유틸리티를 포함하는 향상된 POSIX 서브시스템 환경이다. (윈도우 XP, 서버 2003부터 POSIX대신 SUA 사용)

 

향상된 POSIX 서브시스템은 POSIX.1에 정의된 초기 기능에 많은 API와 라이브러리를 추가한 POSIX.2 표준을 지원하기 때문에 유닉스 애플리케이션의 윈도우 이식을 지원한다. 부가적으로 64비트 바이너리에 대한 지원도 추가되었으며 혼합 모드 지원을 추가하였다. 이는 유닉스 기반 애플리케이션이 POSIX API와 함께 윈도우 API를 호출할 수 있다는 점을 의미한다.

 

윈도우에서 POSIX 애플리케이션을 컴파일하고 링크할 때는 윈도우 SDK에 있는 POSIX 헤더와 라이브러리가 필요하다. POSIX 실행 파일은 POSIX 서브시스템 라이브러리 psxdll.dll에 대응하게 링크 된다.

 

윈도우는 요청이 있을 때 POSIX 서브시스템이 시작되게 구성돼 있으므로 POSIX 애플리케이션을 처음 실행할 때 POSIX 서브시스템 프로세스(Psxss.exe)가 반드시 실행된다. 서브시스템 프로세스는 시스템이 재시작할 때까지 남아 있다.

 

POSIX 이미지는 스스로 실행 될 수 없는 대신 Posix.exe라는 이미지가 POSIX 애플리케이션을 자식 프로세스로 생성해 실행해 준다.

 

 

[참고자료]

Windows Internals

 

OS, Windows, 윈도우아키텍처, Windowsinternals, OS아키텍처, 윈도우서버, WindowsServer, 윈도우커널, 환경서브시스템, POSIX, sqlmvp, SQL Angeles

Leave a Reply

%d bloggers like this: