Darwin
Darwin은 Apple의 운영체제 기반을 이루는 공개 소스 시스템 소프트웨어이자 유닉스 계열 운영체제의 기반 기술이다. Mach와 BSD 계통의 기능을 함께 사용하는 XNU 커널과 UNIX 사용자 공간 구성 요소를 중심으로 하며, macOS 등 Apple 운영체제의 저수준 기반을 형성...
| 분류 | 공개 소스 UNIX 계열 운영체제 기반 |
|---|---|
| 개발 | Apple 및 공개 소스 기여자 |
| 첫 공개 | 2000년 4월 5일 |
| 최초 공개판 | Darwin 1.0 |
| 기술 전신 | NeXTSTEP, Mach, BSD |
| 커널 | XNU |
| 커널 구성 | Mach·BSD·I/O Kit |
| 사용자 공간 | BSD·UNIX 시스템 라이브러리 및 명령 도구 |
| 실행 파일 형식 | Mach-O |
| 대표 상위 제품 | macOS, iOS, iPadOS, watchOS, tvOS, visionOS |
| 주요 아키텍처 | PowerPC·Intel(역사적), ARM64 |
| 라이선스 | APSL 및 구성 요소별 라이선스 |
| 원본 소스 | Apple Open Source |
Darwin은 Apple의 운영체제 기반을 이루는 공개 소스 시스템 소프트웨어이자 유닉스 계열 운영체제의 기반 기술이다. Mach와 BSD 계통의 기능을 함께 사용하는 XNU 커널과 UNIX 사용자 공간 구성 요소를 중심으로 하며, macOS 등 Apple 운영체제의 저수준 기반을 형성한다. Darwin 자체와 macOS를 동일하게 취급해서는 안 되며, 일반적인 macOS의 그래픽 인터페이스와 여러 프레임워크는 Darwin의 공개 소스 영역 밖에 있다.[1]
Darwin의 출발점은 Apple이 NeXT를 인수한 뒤 Macintosh 운영체제를 UNIX 기반으로 새롭게 구성한 과정에 있다. NeXTSTEP의 Mach 기반 시스템과 BSD 사용자 공간을 재사용하고 이를 Apple의 장치 관리·네트워크·시스템 도구와 결합했으며, 2000년 4월 5일 Darwin 1.0으로 일부 기반 소스 코드를 공개했다. 공개 당시 Darwin에는 PowerPC와 Intel 플랫폼용 구현이 포함되어 있었으며 외부 개발자가 운영체제의 저수준 코드를 검토·수정할 수 있는 기반을 제공했다.[2]
Darwin의 커널 XNU는 Mach에서 유래한 태스크·스레드·메시지 전달과 가상 메모리, BSD에서 발전한 프로세스·네트워크·파일 시스템 인터페이스, I/O Kit의 장치 관리 구조를 통합한다. Mach 3.0처럼 UNIX 서비스를 모두 독립적인 사용자 공간 서버로 분리하는 구조보다는 여러 주요 하위 시스템을 하나의 커널로 결합하는 방식이다. 이 특징은 Darwin을 Mach 기술을 계승한 별도 운영체제 기반이자 BSD의 시스템 인터페이스를 활용한 UNIX 계열로 이해하게 한다.[3]
Darwin에 포함된 공개 소스 구성 요소는 개발·배포 버전마다 범위가 다르며, Apple의 상위 제품을 그대로 재구성하는 데 필요한 모든 프레임워크와 드라이버가 제공되는 것은 아니다. 따라서 macOS의 Finder·Aqua 및 Cocoa 등과 Darwin 자체의 커널·사용자 공간을 구분하는 것이 중요하다. 외부 공동체는 OpenDarwin과 PureDarwin 등을 통해 공개된 시스템 기반을 독립적으로 구성하거나 유지하려는 활동을 전개했다.
같은 XNU·Darwin의 저수준 기술은 Mac의 macOS뿐 아니라 iPhone의 iOS, iPadOS, watchOS, tvOS와 visionOS에도 여러 형태로 이어진다. 하지만 각 운영체제는 제품별 사용자 인터페이스, 보안 정책, 실행할 수 있는 응용 프로그램과 지원되는 장치가 다르다. Darwin을 이러한 운영체제들의 공통 기반으로 설명할 수는 있지만 모든 제품을 동일한 운영체제 버전의 단순 재배포라고 보아서는 안 된다.