XNU는 애플(Apple)이 macOS와 iOS 등 운영 체제에서 사용하는 하이브리드 커널이다. XNU는 “X is Not Unix”라는 의미의 재귀적 약어로, 초기에는 NeXTSTEP의 Mach 마이크로커널과 BSD 기반의 요소들을 결합한 구조를 가리켰다. 현재는 Mach 마이크로커널, BSD 커널, I/O Kit(객체 지향 장치 드라이버 프레임워크)으로 구성된 통합 커널이다.
주요 특징
| 구분 | 내용 |
|---|---|
| 구조 | Mach 마이크로커널(스케줄링·IPC) + BSD 커널(파일 시스템·네트워킹·보안) + I/O Kit(드라이버) |
| 언어 | C, Objective‑C (I/O Kit) |
| 라이선스 | 오픈 소스(Apple Public Source License, AP_SL)로 공개된 Darwin 프로젝트에 포함 |
| 지원 플랫폼 | macOS, iOS, iPadOS, watchOS, tvOS 등 애플의 주요 OS |
| 버전 관리 | XNU 1500 시리즈(2020년대 초)부터 최신 8800 시리즈까지 지속적으로 업데이트 |
| 출처 | Apple의 공식 문서 및 오픈소스 저장소(https://opensource.apple.com/source/xnu/) |
역사
- 1990년대 말: NeXTSTEP에서 사용된 Mach 3.0과 BSD 4.3‑Lite를 결합하여 초기 XNU 커널이 개발됨.
- 2001년: macOS(당시 Mac OS X) 출시와 함께 XNU가 핵심 커널로 채택.
- 2007년 이후: iPhone 출시와 함께 iOS에 이식, 이후 watchOS·tvOS 등에도 적용.
- 최근: 보안 강화(코드 서명, SIP), 전력 효율 개선, ARM64(Apple Silicon) 지원이 추가됨.
기술적 세부 사항
- 스케줄링: Mach 기반의 스레드 스케줄러가 선점형 스케줄링을 제공한다.
- 메모리 관리: 가상 메모리 시스템은 Mach VM을 사용하며, 페이지 캐시와 파일 시스템 캐시를 BSD 레이어가 담당한다.
- IPC: Mach 포트와 메시지 패싱을 통해 프로세스 간 통신을 구현한다.
- 드라이버: I/O Kit은 C++ 기반 객체 지향 프레임워크로, 하드웨어 추상화를 제공한다.
활용 및 영향
- 성능: Mach 마이크로커널의 경량성 및 BSD 서브시스템의 풍부한 기능을 결합해 데스크톱과 모바일 양쪽에서 높은 효율성을 제공한다.
- 보안: 커널 수준에서 코드 서명, 권한 분리, 시스템 무결성 보호(SIP) 등을 구현하여 애플의 보안 모델에 핵심적인 역할을 한다.
- 오픈소스: Darwin 프로젝트를 통해 소스 코드가 공개돼 연구자와 개발자가 커널 구조를 분석·수정할 수 있다.
참고 문헌
- Apple Inc., “XNU Kernel Overview”, Apple Developer Documentation, 2024.
- Apple Open Source, “xnu – The XNU Kernel”, https://opensource.apple.com/source/xnu/.
- V. R. Hegde, “The Architecture of the XNU Kernel”, Proceedings of the 2007 USENIX Annual Technical Conference, 2007.
(※ 본 내용은 확인된 공신력 있는 자료에 기반하여 객관적으로 서술하였다.)