POSIX
Linux/Linux 일반 :
2009. 9. 9. 19:21
반응형
http://en.wikipedia.org/wiki/POSIX
이식 가능 운영 체제 인터페이스(移植可能運營體制 interface, portable operating system interface), 또는 포식스 또는 포직스(POSIX /ˈpɒzɪks/ 파직스[*])는 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다.
POSIX의 마지막 글자 X는 유닉스 호환 운영체제에 보통 X가 붙는 것에서 유래한다.
규격의 내용은 커널로의 C 언어 인터페이스인 시스템 콜 뿐 아니라, 프로세스 환경, 파일과 디렉터리, 시스템 데이터베이스(암호 파일 등), tar 압축 포맷 등 다양한 분야를 아우른다.
유닉스 계열 외에 마이크로소프트 윈도 NT는 POSIX 1.0에 준하는 POSIX 서브 시스템을 탑재하고 있으며, POSIX 응용 프로그램을 서브 시스템에서 실행할 수 있다. 이는 주로 미국 정부기관의 컴퓨터 시스템 도입조건(FIPS)에서 POSIX 준거할 것을 요구하기 때문이다. 윈도 2000까지 POSIX 서브시스템을 탑재하고 있었지만 윈도 XP에서 폐지되었다.
POSIX를 쓰는 이유
말그대로 이식이 가능하게 하기 위해서 입니다.
쉽게 C++은 한가지가 아니라고 생각하시면 됩니다. C++언어는 한가지이지만, 각 시스템에 맞는 컴파일러 별로 해석하는게 조금씩 다르게 되죠. 덕분에 한가지 프로그램을 개발 하더라도 윈도우에서 실행되는 프로그램을 짜고 리눅스에서 꼭 실행 되라는 법은 없습니다.
예를 들어 C++에 있는 기본 라이브러리인 iostream을 해석하는 방법이 시스템마다 다르게 되면 프로그래머가 원하지 않는 결과가 나올 수도 있게 되겠죠 ^^; (cin이 입력을 받는게 아니고 출력을 해버린다는 엉뚱한 생각을 해 보면;;) 또 다른 예로는 연산자 우선순위를 다르게 한다든지... 등등
뭐 이런 비슷한 이유로 표준이라는 것을 만들게 됩니다. 이럴때는 이렇게 해야한다.!!
POSIX가 이런 역할을 하지요.. 이럴때는 이렇게 하게 만들어 놓자!~! 이렇게 되면 아주 똑같이 해석을 하지는 않지만 얼추 비슷한 결과가 나오겠지요.
웹에 비유하자면(조금은 다른 의미가 되겠지만) 같은 페이지를 만들었는데 익스플로러에서는 잘 보이는데 파이어폭스나 오페라에서는 이상하게 보일 수 있는게 바로 이와 비슷한 경우입니다. 분명 똑같은 결과를 보여주는데 다르게 보이는것입니다. ...
말그대로 이식이 가능하게 하기 위해서 입니다.
쉽게 C++은 한가지가 아니라고 생각하시면 됩니다. C++언어는 한가지이지만, 각 시스템에 맞는 컴파일러 별로 해석하는게 조금씩 다르게 되죠. 덕분에 한가지 프로그램을 개발 하더라도 윈도우에서 실행되는 프로그램을 짜고 리눅스에서 꼭 실행 되라는 법은 없습니다.
예를 들어 C++에 있는 기본 라이브러리인 iostream을 해석하는 방법이 시스템마다 다르게 되면 프로그래머가 원하지 않는 결과가 나올 수도 있게 되겠죠 ^^; (cin이 입력을 받는게 아니고 출력을 해버린다는 엉뚱한 생각을 해 보면;;) 또 다른 예로는 연산자 우선순위를 다르게 한다든지... 등등
뭐 이런 비슷한 이유로 표준이라는 것을 만들게 됩니다. 이럴때는 이렇게 해야한다.!!
POSIX가 이런 역할을 하지요.. 이럴때는 이렇게 하게 만들어 놓자!~! 이렇게 되면 아주 똑같이 해석을 하지는 않지만 얼추 비슷한 결과가 나오겠지요.
웹에 비유하자면(조금은 다른 의미가 되겠지만) 같은 페이지를 만들었는데 익스플로러에서는 잘 보이는데 파이어폭스나 오페라에서는 이상하게 보일 수 있는게 바로 이와 비슷한 경우입니다. 분명 똑같은 결과를 보여주는데 다르게 보이는것입니다. ...
반응형
'Linux > Linux 일반' 카테고리의 다른 글
Linux Kernel 소스분석. (0) | 2009.09.10 |
---|---|
터치스크린과 리눅스 디바이스 드라이버 (0) | 2009.08.03 |
make 의 에러(Errors Generated by Make) (0) | 2009.08.02 |