PureDarwin

PureDarwin은 Apple의 공개 소스 운영체제 기반인 Darwin을 독립적으로 부팅해 사용할 수 있는 운영체제로 구성하려는 공동체 프로젝트다. XNU 커널과 Darwin 사용자 공간, 툴체인 및 부팅 도구를 결합하며 실제 하드웨어와 가상 머신용 이미지를 연구한다. 공개된 Darw...

분류Darwin 기반 공개 소스 운영체제 프로젝트
기반 운영체제Darwin
커널XNU
커널 계보Mach, BSD UNIX
개발 방식공개 소스 공동체
핵심 목표독립 부팅 가능한 Darwin 구성
사용자 공간공개 Darwin 라이브러리와 도구
실행 환경가상 머신 및 개발용 하드웨어
관련 프로젝트OpenDarwin
macOS 호환성일부 공통 API, macOS 전체와 구별
개발 상태독립적인 공개 소스 프로젝트
저장소PureDarwin

PureDarwin은 Apple의 공개 소스 운영체제 기반인 Darwin을 독립적으로 부팅해 사용할 수 있는 운영체제로 구성하려는 공동체 프로젝트다. XNU 커널과 Darwin 사용자 공간, 툴체인 및 부팅 도구를 결합하며 실제 하드웨어와 가상 머신용 이미지를 연구한다. 공개된 Darwin 기술로부터 운영체제를 재구성하는 프로젝트로서 macOS의 비공개 응용 프로그램을 모두 포함하는 배포판과는 다르다.[1]

PureDarwin은 Apple이 공개하는 Darwin 커널·사용자 공간 소스에서 실행 가능한 운영체제를 조립하는 문제에 집중한다. XNU가 실행 자원과 메모리, BSD 계열 시스템 인터페이스를 제공하고 사용자 공간의 라이브러리·셸·시스템 서비스와 빌드 도구가 그 위에 결합된다. 커널만 컴파일하는 것으로 일반적인 운영체제 환경이 완성되지는 않으므로 부팅 이미지, 사용자 공간 초기화, 동적 링커와 파일 시스템 구성이 중요한 개발 대상이다.[2]

Darwin은 Mach 기술을 포함한 XNU와 BSD에서 발전한 UNIX 시스템 기반으로, Linux나 FreeBSD의 바이너리 환경과 그대로 동일하지 않다. PureDarwin은 이 Apple 계열 구조를 일반 컴퓨터나 가상 머신에서 연구할 수 있게 하려는 접근을 취하며, 공개되지 않은 macOS 그래픽 환경과 각종 독점 서비스를 포함하지 않는다. 역사적으로 OpenDarwin 등 선행 프로젝트의 목표와 유사하지만 별도의 소스 구성과 커뮤니티 활동을 갖춘 시도로 구별된다.

PureDarwin의 중요한 과제는 Apple이 공개하는 커널과 사용자 공간 소스 코드가 그 자체로 완성된 macOS 설치 이미지와 동일하지 않다는 점에서 출발한다. XNU를 부팅시키는 과정뿐 아니라 동적 링커와 시스템 라이브러리, 셸 및 도구, 서비스 초기화 기능을 통합해야 실행 가능한 운영체제가 된다. 따라서 PureDarwin은 단순한 테마 변경판이 아니라 Darwin을 독립적인 시스템으로 구성하기 위한 프로젝트다.[3]

macOS와는 Mach·BSD 커널 기술과 Mach-O 형식 등 저수준의 일부 기술을 공유하지만, Finder나 Cocoa를 비롯한 비공개 구성 요소 전체를 제공하는 운영체제는 아니다. PureDarwin의 빌드·실행 경험은 Apple의 커널 아키텍처, 시스템 호출·라이브러리 및 드라이버 의존성을 살펴보는 연구에 활용할 수 있다. OpenDarwin은 비슷한 목표를 가진 역사적 공동 개발 활동으로, PureDarwin과는 별개로 구분된다.

역사

OpenDarwin과의 역사적 관계

개발의 재개와 개선

시스템 구성

XNU 커널

Darwin 사용자 공간

빌드와 도구 체인

부팅과 설치 이미지

가상화와 하드웨어 지원

Mach-O와 시스템 라이브러리

응용 프로그램 지원

macOS와의 차이

관련 문서

  1. 관련 기술 문서 ↩
  2. PureDarwin 공개 저장소 ↩
  3. PureDarwin GitHub ↩