macOS나 Linux 시스템을 말할 때 posix 혹은 unix 시스템이라고들 한다. 그런데 뭔가 이상하다. 다른 단어라면 서로 다른 뜻을 가질 텐데 왜 두 이름으로 모두 불리는걸까?
정확히 말하자면 macOS와 Linux는 모두 unix 계열 시스템이다. 그리고 macOS는 posix 인증을 받은 운영체제이고 linux는 인증을 받지 않았지만 posix 표준을 따르는 운영체제다.
그렇다면 unix와 posix는 본래 어떤 뜻이고 어떤 배경에서 탄생했을까?
태초에 Unix가 탄생했다
지금은 당연히 화면에 브라우저 창을 여러개 띄워놓고 음악을 들으면서 웹서핑 하지만 예전에는 이런 멀티태스킹이 존재하지 않았다. 당시 존재하던 운영체제인 Multics는 다중 시분할을 지원했지만 매우 높은 성능을 요구했기 때문에 미니 컴퓨터에서는 작동하기엔 무리였다.
이때 켄 톰슨이 Multics를 미니 컴퓨터에서 돌리기 위해 개조하면서 unix가 시작되었다.
벨 연구소에서는 계속해서 unix 를 연구하기 시작했고 당시 c언어가 개발 되며, unix version 4에서 어셈블리 언어 대신 c 언어를 사용하기 시작했다. c 언어로 작성함으로써 기존에 어셈블리 언어로 작성했을 때보다 적은 코드를 작성하며 다른 컴퓨터에 이식성을 향상시키기 시작했다.
파생되는 Unix, systemV와 BSD로
unix가 버전 5로 올라갔을 때 캘리포니아 대학교 버클리 캠퍼스의 대학원생 빌 조이가 pdp - 11에 설치된 unix를 발전시키면서 BSD(Berkeley software distribution)를 탄생시켰다. 이 때 부터 운영체제는 BSD와 at&t의 systemV로 나뉘어져 발전하기 시작했다.
BSD는 FreeBSD, netBSD 등 여러 운영체제로 파생되었고, 지금의 macOS가 바로 FreeBSD를 발전시킨 운영체제이다. 뿐만 아니라 BSD를 바탕으로 solaris, 그러나 BSD는 Unix version 5에서 파생되었기 때문에 작성된 코드에 대해 at&t에서 나온 회사인 USL과 소송이 일어나게 되었다.
리눅스의 등장
1991년 리누스 토발즈가 직접 작업해서 만들어진 linux는 출시 당시 BSD의 소송과 겹쳐 폭발적인 성장을 이루었다. 당시 BSD가 더 안정적이고 성능이 좋았지만 오픈소스 개발자들의 관심과 여러 회사의 지원으로 성공적으로 점유율을 높혔다. 리눅스는 커널이 공개되고 그 커널을 바탕으로 여러 운영체제로 파생되며 지금의 debian, ubuntu, centOS, rocky 등에 다다랐다.
그렇다면 Posix는 무엇인가?
Posix는 Portable operating system interface 와 unix의 약자로 말 그대로 unix시스템의 인터페이스를 규정해놓은 것이라 할 수 있다.
Unix 출시 이후 여러 회사에서 각자의 하드웨어에 맞게 커스텀 되던 중 이식성이 안 좋아지는 것을 개선하기 위해 IEEE(전자 전기 공학자 협회)에서 만든 표준으로 시스템 콜 인터페이스, 파일 디렉토리, 환경 변수 등등 여러 형식을 규정해 놓았으며 이를 따랐을 경우 unix 계열 운영체제라 불린다.
Unix는 현존 운영체제의 씨앗이다
따라서 macOS는 unix에서 파생되었기 때문에 당연히 posix표준에 맞았으며 posix 인증을 받기도 했따. 반면 linux는 인증을 받지는 않았지만 운영체제의 인터페이스가 unix의 영향을 받아 posix표준을 준수하기 때문에 unix 계열 운영체제라 불리는 것이다.