PC-UNIX

음… 솔직히 말하면 이게 상당히 애매한 용어이다. 왜 애매한 용어인지를 알려주겠다는 식의 글이라 보시면 될 거 같다.

PC-UNIX는 PC에서도 동작을 하는 유닉스를 말한다. 근데 이게 용어로 써있는 책을 잘 뒤져봐라.. 미국과 유럽 계열에서는 거의 없을 것이다. 주로 아시아 계열의 책이나 용어집에서는 반드시 나온다. (위키백과에서도 영어로 써있지도 않다. ㅡㅅㅡ;;)

이 용어를 주로 쓰는 곳은 바로 일본이다. ㅡㅅㅡ 주로 운영체제에 대한 서적을 뒤져보면 PC에서 동작하도록 나온 유닉스를 말하며, 원래 명칭으로는 Unix-like system의 일부분중 PC에서 돌아가는 녀석들을 모아다가 죄다 PC-UNIX라고 써놨다.

원서보면 거의 헷갈리는데 이 용어가 나중에 산업기사/기사 보는 분들은 꼭 한번씩은 접한다. 그러다 보면 이 용어갖고 여러모로 말이 무지 많이 돌기도 한다. (근데 현업에서만 개발하는 인간들은 그런 거 필요없다. ㅡㅅㅡ)

이 용어에 대한 일본측 원서에서는 이 운영체제들에 대해 이와 비슷하게 정의하고 있다. [고가의 대형 컴퓨터를 동작시키기 위한 Unix를 PC에서 이용할 수 있도록 아키텍쳐 지원과 메모리 관리 기능의 수정 등을 통하여 PC에서 동작이 가능하도록 만든다. 단, 유닉스에서 사용할 수 있는 기능들은 거의 그대로 이용할 수 있도록 지원하는 것을 전제로 한다.] 라고들 써 있다. 아니면 이 문장 순서의 변경이 있긴 하겠지만 기본적으로는 PC에서 동작 가능하도록 설정은 다 맞춰주면서 기능은 그대로 가져간단 것이다. 뭐, 유닉스 시스템이 그만큼 성능적으로는 인증되어 있는 시스템이니 그럴 수 밖에 없겠지만..

일단 여기에 속하는 듯하게 적어놓은(?) 유닉스 계열의 시스템들은 다음과 같다.

  • PANIX
  • XENIX
  • Linux
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Solaris/OpenSolaris

…좀이라도 유닉스 시스템을 아는 사람들은 바로 보고 눈치챘을 것이다. 여기에 있을 필요가 없는 녀석이 하나 눈에 띈다는 것을…ㅡㅅㅡ;; 그리고 대놓고 타분류화된 녀석이 또 하나 있다…ㅡㅂㅡ;;

애당초 리눅스의 탄생이 PC에서 돌리는 유닉스였고, 솔라리스는 x86 플랫폼 지원을 하다 보니 어쩌다 PC도 지원한다. 게다가 10부터 오픈소스화 되는 바람에 PC에서 돌아가야 하는 상황이었고, 오픈솔라리스는 원래부터 대상이 PC다. ㅡㅅㅡ

뭐, 이것저것 골때리는 용어이긴 한데.. 그냥 PC 구동용 유닉스라고만 대충 생각하고 넘기면 될 듯 하다..

POSIX(Portable Operatiing System Interface)…?

POSIX(Portable Operatiing System Interface)는 서로 다른 유닉스 운영체제의 공통 API를 정리하여 이식성이 높은 유닉스 운영체제 프로그램 개발을 위한 목적으로 정의된 인터페이스 규격입니다. 규격의 정의는 IEEE에 정의가 되어 있고, 최신 규격으로는 2.0 버전까지 정의되어 있습니다.

유닉스의 장점인 높은 이식성은 바로 이 규격을 통하여 이용되는 장점이죠… 커널 수준의 시스템 콜뿐만 아니라 사용자 레벨 프로그램, 프로세스 환경, 파일과 디렉토리 관련, 시스템 데이터베이스, 압축 포맷 등등의 다양한 분야에서 이용되는 표준 규격 인터페이스이기 때문에 여러 유닉스, 리눅스에서도 거의 동일하게 프로그램 소스를 컴파일해서 이용할 수 있는 장점을 가지게 되는 겁니다.

실제로 사용하는 데 있어서 차이점이 있다면 각 운영체제마다 가지는 환경적인 특징들만 차이가 날 것이지 쓰는데는 별 지장이 없다는 것을 알게 될 겁니다. 유닉스, 리눅스 프로그램들의 경우에는 프로그램 바이너리 파일만 받아서 그대로 make 돌려도 거의 바로 이용할 수 있는 게 바로 이 POSIX 규격에 맞춘 프로그램 바이너리이기 때문이죠. 소스 코드만 받아서 바로 컴파일 해서 쓰는 프로그램들도 표준 C 컴파일러조차 POSIX 규격에 맞춰서 시스템마다 동일하게 적용되어 있기 때문입니다. 간혹 페도라라던가 AIX와 같이 독자 환경이 있는 경우에는 좀 손을 봐서 처리해야 겠지만 규격에 준수가 되어 있는 대부분의 유닉스, 리눅스에서는 별 문제가 없습니다….ㅇㅅㅇ;;

윈도우 NT 계열에서도 POSIX 서브시스템을 탑재하고 있어서, POSIX 응용 프로그램을 서브시스템에서 실행할 수 있었습니다. 이게 윈도우 2000까지는 POSIX 서브시스템을 탑제하고 있었으나, XP에서 폐지되었습니다. 이후에 2003 서버에서부터 POSIX 2.0을 준수하는 서브시스템을 통하여 POSIX를 지원하는 형식으로 갖추고 있게 되었습니다. 윈도우에 보면 프로그램 추가/제거에 보면 유닉스 서브시스템이라고 되어 있는 것이 이 POSIX 지원 기능이죠. ㅇㅅㅇ;;

헷갈리면 안되는 게 윈도우 XP에 프로그램 추가 -> 윈도우 추가 제거에 보면 유닉스 시스템에서 프린터 공유하는 기능이 있습니다. 이걸 착각해서 예기하는 분이 있긴 한데.. 이거 아닙니다…ㅡㅅㅡ;;; 옛날부터 있던 프린터 공유 기능입니다.