Darwin

TechPedia

개요

DarwinApple Inc.가 개발한 오픈소스 Unix 계열 운영체제 커널 및 기반 시스템이다. macOS, iOS, iPadOS, tvOS, watchOS의 핵심 구성 요소로 사용된다. Darwin은 NeXTSTEPBSD 계열 기술, 그리고 Mach 마이크로커널을 결합한 하이브리드 Unix 운영체제이다.

Darwin은 2000년에 AppleNeXT 인수 이후 개발한 통합 OS 플랫폼의 기반으로 등장했다. Mach 커널(NeXTSTEP에서 사용된 것)을 기반으로 하고, FreeBSDNetBSD의 소스 코드를 통합하여 POSIX 호환성과 고급 I/O, 네트워킹 기능을 갖춘 하이브리드 아키텍처를 구현했다.

Darwin은 오픈소스로 공개되어 있으며, 그 위에 Aqua 그래픽 환경과 Cocoa/Carbon API가 결합되어 macOS 및 iOS 제품군이 완성된다.

역사

기술적 구조

Darwin은 하이브리드 커널 구조를 가진 Unix 기반 OS로, Mach 마이크로커널과 BSD 계층을 결합해 높은 안정성과 이식성을 제공한다.

계층 주요 구성 요소 설명
Mach 계층 Mach 3.0 Kernel 프로세스 스케줄링, 메모리, IPC 관리
BSD 계층 FreeBSD/NetBSD 기반 코드 POSIX 호환 API, 네트워크, 파일 시스템
I/O Kit 계층 IOKit Framework C++ 기반 장치 드라이버 아키텍처
사용자 계층 Core OS, Launchd, Frameworks 사용자 공간 서비스 및 런처

커널 구조

Darwin의 커널은 공식적으로 XNU(“X is Not Unix”)라 불리며, MachBSD를 통합한 하이브리드 구조를 갖는다.

구성 요소 설명
Mach 스케줄링, 메모리, IPC, 메시지 기반 커널
BSD Layer 파일 시스템, 소켓, 프로세스, 신호 처리
I/O Kit 객체지향 C++ 드라이버 프레임워크
Libkern 커널 공용 라이브러리 계층
DriverKit 사용자 공간 드라이버 개발용 프레임워크 (macOS Catalina 이후)

파일 시스템

Darwin은 기본적으로 APFS를 사용하며, 이전에는 HFS+를 사용했다. 또한 UFS, exFAT, NTFS (읽기 전용), FAT32 등을 지원한다.

  • APFS (Apple File System) – 2017년 이후 기본 파일 시스템
    • 스냅샷, 암호화, 복제(clone) 기능 지원
    • SSD 성능 최적화 구조
  • HFS+ – macOS 10.12 이하 버전 기본 FS

네트워크

  • BSD 소켓 기반 네트워크 스택
  • IPv4, IPv6, IPsec, Wi-Fi, Bluetooth, USB, Thunderbolt 지원
  • mDNSResponder(Bonjour) – 제로컨피그 네트워킹 구현

개발 및 빌드 시스템

Darwin은 Apple Open Source를 통해 부분적으로 공개되어 있으며, LLVM, Clang, XNU, libdispatch, launchd 등의 컴포넌트가 포함된다.

  • 빌드 툴체인: Xcode, Clang/LLVM
  • 스크립트 언어 지원: Bash, zsh, Python, Perl
  • API: POSIX, Core Foundation, IOKit

Darwin과 macOS의 관계

Darwin은 macOS의 핵심 구성요소이지만, macOS의 GUI, 프레임워크(Aqua, Cocoa 등)는 비공개 상용 구성이다.

항목 Darwin macOS
커널 XNU (Mach + BSD) XNU (동일)
파일 시스템 APFS APFS
그래픽 환경 없음 (CLI 중심) Aqua (GUI), Metal, Quartz
API 계층 POSIX, IOKit, Core OS Cocoa, Carbon, Core Foundation
라이선스 APSL (Apple Public Source License) 상용 (폐쇄형)

Darwin 버전 대응

Darwin 버전 대응 OS 출시 연도
1.x Mac OS X 10.0–10.1 2001
5.x Mac OS X 10.1 Puma 2001
7.x Mac OS X 10.3 Panther 2003
9.x Mac OS X 10.5 Leopard / iPhone OS 1 2007
13.x OS X 10.9 Mavericks / iOS 7 2013
17.x macOS 10.13 High Sierra / iOS 11 2017
21.x macOS 12 Monterey / iOS 15 2021
24.x macOS 15 Sequoia / iOS 18 2024

보안

Darwin은 macOS와 동일한 고급 보안 구조를 공유한다.

  • Sandboxing – 앱 권한 격리
  • Code Signing – 서명된 코드만 실행
  • System Integrity Protection (SIP) – 루트 권한 보호
  • Gatekeeper – 서명되지 않은 앱 차단
  • TCC (Transparency, Consent, Control) – 사용자 데이터 접근 제어

라이선스

Darwin의 공개 소스 코드는 APSL(Apple Public Source License)로 배포된다. 이는 오픈소스이지만, 수정 배포 시 Apple에 알림을 요구하는 약간의 제한이 있다. FreeBSDMach 코드의 일부는 BSD 라이선스로 유지된다.

구성 요소 라이선스
XNU Kernel APSL + BSD
IOKit, Libkern APSL
BSD Layer BSD 2-Clause
Mach Layer Carnegie Mellon University License

파생 및 활용

영향

같이 보기

참고 문헌

  • Apple Open Source – opensource.apple.com/source/xnu/
  • “Inside Mac OS X: System Overview”, Apple Developer Documentation, 2001
  • Amit Singh, “Mac OS X Internals: A Systems Approach”, Addison-Wesley, 2006
  • “Darwin: The Core of macOS and iOS”, Ars Technica, 2019
  • “The Evolution of XNU”, ACM Queue, 2022