macOS는 유닉스입니까? (그리고 그것은 무엇을 의미합니까?)

macOS는 유닉스 기반 시스템일까요, 아니면 단순한 유닉스일까요? 아니면 유닉스와 유사한 계열에 속하는 것일까요? 이 복잡한 질문에 대해 명확히 하고, 그 과정에서 POSIX 및 SUS와 같은 중요한 표준들에 대해서도 알아보겠습니다.

macOS: 유닉스인가, 아닌가?

이 주제는 여러 가지 궁금증을 불러일으킵니다. macOS의 기원은 어디일까요? 현재의 macOS에는 유닉스의 영향이 얼마나 남아 있을까요? 그리고 이것이 중요한 이유는 무엇일까요? 유닉스, 유닉스 계열 등의 용어를 정의하기 전에, 누가 어떤 기준으로 이를 판단하는지에 대해 먼저 이해해야 합니다.

이제 처음부터 살펴봅시다.

유닉스는 50여 년 전에 AT&T 소유의 연구 개발 기관인 벨 연구소에서 탄생했습니다. 1973년, 유닉스는 C 프로그래밍 언어로 재작성되었고, 버전 4로 빠르게 발전했습니다. 이러한 변화는 운영 체제의 이식성을 높여 다른 하드웨어 플랫폼으로 쉽게 옮길 수 있도록 만들었습니다. 같은 해, 핵심 유닉스 설계자 중 두 명인 켄 톰슨데니스 리치는 컨퍼런스에서 운영 체제에 대한 논문을 발표했습니다. 발표 직후, 그들은 운영 체제 사본을 요청받기 시작했습니다.

동의 판결에 따라 AT&T는 1956년부터 “일반 통신 사업자 통신 서비스 제공 외의 사업”을 할 수 없었습니다. 유닉스는 AT&T가 이익을 얻을 수 있는 대상이 아니었습니다. 그래서 AT&T는 당시로서는 놀라운 결정을 내렸습니다. 소스 코드를 자유롭게 라이선스하여 유닉스를 배포한 것입니다. 소액 요금에는 배송 및 포장 비용과 “합리적인 로열티”가 포함되었습니다.

유닉스의 확산

유닉스는 어떠한 지원도 없이 “있는 그대로” 제공되었습니다. 그 결과, 유닉스 커뮤니티는 회원들을 돕기 위해 협력하기 시작했으며, 유닉스를 개선하고 확장했습니다. 즉, 소스 코드를 가져와 수정하고 커뮤니티의 도움을 받을 수 있었습니다. 이는 마치 익숙한 패턴처럼 느껴집니다. 다양한 유닉스 버전들이 등장하기 시작했고, 각 버전은 특정 조직의 요구에 맞게 조정되었습니다.

밥 패브리, UC 버클리의 컴퓨터 과학 교수는 1973년 운영 체제 원칙에 관한 심포지엄의 프로그램 위원회에 있었습니다. 그는 톰슨과 리치의 “The UNIX Time-Sharing System” 발표를 들었습니다.

패브리는 운영 체제 사본을 요청했고, 1974년에 유닉스는 UC 버클리의 컴퓨터 과학 연구 그룹(CSRG)에서 PDP/11에서 구동되기 시작했습니다. 흥미롭게도, 켄 톰슨은 1년 동안 그곳에서 시간을 보내면서 대학 고유의 유닉스 버전을 만드는 데 기여했습니다. UC 버클리에서 변경 및 추가된 사항들은 BSD(Berkeley Software Distribution)로 알려지게 되었습니다. 결국 이것들은 BSD라고 알려진 완전한 유닉스 시스템 배포판으로 발전했습니다. 4.2BSD와 같은 버전 번호는 다른 릴리스를 나타냅니다.

1984년, AT&T는 1956년 동의 판결의 제약에서 벗어나 운영 체제를 판매할 수 있게 되었습니다. 하지만 여기에는 TCP/IP, vi, 그리고 C 셸인 csh와 같은 BSD 코드가 포함되어 있었습니다. 이러한 교차 협력에도 불구하고 라이선스에는 어려움이 있었습니다. BSD에는 오픈 소스가 아닌 AT&T 코드가 포함되어 있었지만, BSD 요소도 있었습니다.

AT&T 코드가 없는 BSD 버전이 이러한 문제를 해결하기 위해 개발되었습니다. 하지만 AT&T 코드가 제거되자 커널의 약 20%가 누락되었습니다. 윌리엄 졸리츠는 누락된 부분을 채웠고, 해당 버전의 유닉스는 386BSD로 출시되었습니다. 386BSD 프로젝트는 중단되었지만, 1993년 소스 코드 기반으로 인해 NetBSDFreeBSD 프로젝트가 탄생했습니다.

이것이 우리에게 퍼즐의 한 조각인 FreeBSD를 가져다주었습니다.

다음 단계

1985년 애플에서 해고된 후, 스티브 잡스는 NeXT를 설립했습니다. NeXT는 워크스테이션 제품군을 위한 운영 체제를 제공하기 위해 NeXTSTEP을 개발했습니다. 이 운영 체제는 BSD를 코드 기반으로 사용했지만, 완전히 다른 커널을 도입했습니다.

NeXT는 수정된 버전의 마이크로커널인 Mach와 4.3BSD를 결합하여 NeXTSTEP을 만들었습니다. 이는 퍼즐의 두 번째 부분입니다. Mach는 Carnegie Mellon에서 분산 및 병렬 컴퓨팅 연구를 위해 개발되었습니다. 연구팀은 운영 체제로 BSD를 사용하고 자체 운영 체제를 작성하는 대신, 커널을 교체했습니다.

XNU

1996년 Apple, Inc.는 NeXT, Inc.를 인수하면서 NeXTSTEP을 확보했습니다. Apple은 마침내 macOS로 발전하게 될 운영 체제를 개발하기 시작했습니다. Mach 커널을 업그레이드하고 OSF/1 운영 체제를 위해 Open Software Foundation에서 개발하고 사용한 더 발전된 버전으로 교체했습니다. Apple은 또한 FreeBSD 배포판에서 업데이트되고 개선된 버전으로 BSD 구성 요소를 업그레이드했습니다.

Apple은 BSD 커널의 일부 요소를 다시 Mach 커널로 통합했습니다. 또한, 모놀리식 커널과 마이크로커널 아키텍처의 두 가지 특성을 결합한 하이브리드 커널을 개발했습니다.

I/O 키트는 Apple이 NeXTSTEP의 DriverKit을 기반으로 개발한 것으로, 매번 커널을 수정하지 않고도 드라이버를 추가할 수 있게 해주었습니다.

XNU는 퍼즐의 세 번째 조각입니다.

POSIX 및 SUS 표준

1996년, 두 개의 표준 기관인 X/OpenOpen Software FoundationOpen Group이라는 형태로 합병되었습니다.

Open Group은 인증을 담당합니다.