콘텐츠로 이동

Darwin

Jan 25, 2026

macOS와 iOS의 커널 환경으로, Mach 마이크로커널BSD UNIX 커널을 결합한 하이브리드 계층 시스템이다. 마이크로커널의 장점을 유지하면서 성능 문제를 해결하기 위해 하이브리드 구조를 채택했다.

사용자 경험 User Experience
애플리케이션 프레임워크 Application Frameworks
코어 프레임워크 Core Frameworks
커널 환경 Darwin
애플리케이션 사용자 앱
라이브러리 인터페이스 시스템 라이브러리
시스템 콜 Mach traps + BSD system calls
커널 서비스 메모리 관리, 스케줄링, IPC
I/O kit, kexts 커널 확장
Mach 커널 마이크로커널 기반
인터페이스설명
Mach system calls (traps)Mach 커널의 기본 서비스 접근
BSD system callsPOSIX 기능 제공
  • 메모리 관리
  • CPU 스케줄링
  • IPC 기능: 메시지 패싱, 원격 프로시저 호출(RPC)
  • 커널 추상화 제공: 태스크(Mach 프로세스), 스레드, 메모리 객체, 포트(IPC용)
  • I/O kit: 장치 드라이버 개발용
  • kexts (kernel extensions): 동적 로드 가능 모듈 (macOS 용어)

별도 주소 공간의 서비스 간 메시지 패싱 오버헤드 문제를 해결하기 위해:

  • Darwin은 Mach와 BSD를 단일 주소 공간에 결합
  • 결과: 메시지 패싱 오버헤드 감소 + 마이크로커널의 유연성 유지
특성macOSiOS
대상데스크톱/랩톱iPhone/iPad
메모리 관리더 유연함더 엄격함
보안 설정덜 엄격함더 엄격함
POSIX/BSD API개발자에게 공개접근 제한
장점단점
마이크로커널의 모듈성/유연성 유지복잡한 구조
단일 주소 공간으로 성능 문제 해결두 커널 간 인터페이스 관리 필요
두 가지 시스템 콜 인터페이스로 다양한 요구 충족
I/O kit으로 드라이버 개발 용이
  • Operating System Concepts, 10th Edition, Chapter 2, p.87-89