Darwin
Jan 25, 2026
핵심 개념
섹션 제목: “핵심 개념”macOS와 iOS의 커널 환경으로, Mach 마이크로커널과 BSD UNIX 커널을 결합한 하이브리드 계층 시스템이다. 마이크로커널의 장점을 유지하면서 성능 문제를 해결하기 위해 하이브리드 구조를 채택했다.
macOS/iOS 아키텍처 계층
섹션 제목: “macOS/iOS 아키텍처 계층” 사용자 경험 User Experience
애플리케이션 프레임워크 Application Frameworks
코어 프레임워크 Core Frameworks
커널 환경 Darwin
Darwin 구조
섹션 제목: “Darwin 구조” 애플리케이션 사용자 앱
라이브러리 인터페이스 시스템 라이브러리
시스템 콜 Mach traps + BSD system calls
커널 서비스 메모리 관리, 스케줄링, IPC
I/O kit, kexts 커널 확장
Mach 커널 마이크로커널 기반
두 가지 시스템 콜 인터페이스
섹션 제목: “두 가지 시스템 콜 인터페이스”| 인터페이스 | 설명 |
|---|---|
| Mach system calls (traps) | Mach 커널의 기본 서비스 접근 |
| BSD system calls | POSIX 기능 제공 |
Mach 커널의 역할
섹션 제목: “Mach 커널의 역할”- 메모리 관리
- CPU 스케줄링
- IPC 기능: 메시지 패싱, 원격 프로시저 호출(RPC)
- 커널 추상화 제공: 태스크(Mach 프로세스), 스레드, 메모리 객체, 포트(IPC용)
I/O kit과 kexts
섹션 제목: “I/O kit과 kexts”- I/O kit: 장치 드라이버 개발용
- kexts (kernel extensions): 동적 로드 가능 모듈 (macOS 용어)
성능 문제 해결
섹션 제목: “성능 문제 해결”별도 주소 공간의 서비스 간 메시지 패싱 오버헤드 문제를 해결하기 위해:
- Darwin은 Mach와 BSD를 단일 주소 공간에 결합
- 결과: 메시지 패싱 오버헤드 감소 + 마이크로커널의 유연성 유지
macOS vs iOS 차이
섹션 제목: “macOS vs iOS 차이”| 특성 | macOS | iOS |
|---|---|---|
| 대상 | 데스크톱/랩톱 | iPhone/iPad |
| 메모리 관리 | 더 유연함 | 더 엄격함 |
| 보안 설정 | 덜 엄격함 | 더 엄격함 |
| POSIX/BSD API | 개발자에게 공개 | 접근 제한 |
트레이드오프
섹션 제목: “트레이드오프”| 장점 | 단점 |
|---|---|
| 마이크로커널의 모듈성/유연성 유지 | 복잡한 구조 |
| 단일 주소 공간으로 성능 문제 해결 | 두 커널 간 인터페이스 관리 필요 |
| 두 가지 시스템 콜 인터페이스로 다양한 요구 충족 | |
| I/O kit으로 드라이버 개발 용이 |
관련 개념
섹션 제목: “관련 개념”- 마이크로커널 (Microkernel) - Darwin의 기반인 Mach가 속하는 마이크로커널 구조
- 하이브리드 시스템 (Hybrid Systems) - Darwin이 채택한 여러 구조를 결합한 접근 방식
- Mach 운영체제 - Darwin의 핵심인 Mach 마이크로커널의 전체 구조
- 적재 가능 커널 모듈 (LKM) - Darwin의 kexts와 유사한 동적 커널 확장 방식
- Android 구조 - Darwin과 마찬가지로 Linux 기반의 계층화된 하이브리드 시스템
- Operating System Concepts, 10th Edition, Chapter 2, p.87-89