최근 수정 시각 : 2026-06-21 10:20:33

XNU


Unix
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
BSDFreeBSDDragonFly BSD · TrueOS · GhostBSD
NetBSDOpenBSD
XNUDarwinmacOS · iOS · iPadOS · tvOS(audioOS) · watchOS(bridgeOS) · visionOS
NeXTSTEP
System III/
System V
SolarisOpenSolarisIllumosSmartOS · OpenIndiana
IBM AIX · HP-UX
Unix-likeMach · Minix · Redox · VMware ESXi (vSphere · vCenter) · GNU Hurd · Linux · QNX
취소선 처리된 배포판은 개발 중단된 배포판.}}}}}}}}}

파일:Apple 로고.svg

개발 Apple
기반 Mach, BSD
개발 언어 C , C++, 어셈블리어
라이선스 Apple Public Source License 2.0
지원 중인 플랫폼 AMD64, Arm, Arm64
지원 중단된 플랫폼 IA-32, PowerPC
커널 종류 하이브리드 커널
소스 코드 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg

1. 개요2. 커널 구성
2.1. Mach2.2. BSD
3. 여담

1. 개요

XNU 커널은 macOS 및 iOS 운영체제에서의 이용을 위한 Darwin 운영체제의 일부입니다. XNU는 X is Not Unix의 두문자어입니다. XNU는 카네기 멜런 대학교에서 개발한 Mach 커널과 FreeBSD에서 온 컴포넌트들, 드라이버 작성을 위한 C++ API인 IOKit을 조합하여 만들어진 하이브리드 커널입니다. XNU는 x86_64 및 ARM64 환경의 단일 및 다중 프로세서 구성에서 작동합니다.

Apple XNU OSS 프로젝트 README 파일 중에서

XNU는 Darwin의 커널이다. XNU 기반의 Darwin은 Apple의 macOS와 iOS등의 핵심 커널로 사용된다. 공식적으로 POSIX 인증을 받았기에 공식 UNIX리고 이름을 붙일수 있지만, 그 시절의 소스 코드는 거의 대체된지 오래이다.

2. 커널 구성

파일:The_XNU_Kernel_Graphic.png

2.1. Mach

제일 밑바탕이 되는 것은 마이크로커널인 Mach이다. 여기서 Mach는 마하가 아니라 영어식으로 '먹'([mʌk])이라고 읽는다.

2.2. BSD

Mach 커널 위에 BSD 모놀리식(Monolithic) 커널의 구성 요소들이 올라간다. 이 부분은 POSIX API를 제공한다. 또한 Mach 커널 위에서의 유닉스 프로세스 모델, 보안 규칙, 사용자와 그룹 ID, 권한, 네트워크 프로토콜, 가상 파일 시스템(저널링 단에 독립적인 파일 시스템도 포함), HFS/HFS+, 네트워크 파일 시스템, 클라이언트/서버, 암호 프레임워크, 유닉스 시스템 V, 프로세스 간 통신(IPC), 유닉스 audit 시스템, 필수 접근 관리 등을 제공한다.[1]

3. 여담

  • X is Not Unix(X는 Unix가 아니다)라는 이름에도 불구하고, XNU를 기반으로 하는 macOS는 단일 UNIX 규격 인증을 받았다. 그리고 Unix 중에서도 AT&T 코드 베이스 시스템에 해당하는 "유전적 UNIX"로 분류된다. 그러니까 XNU는 사실 UNIX인 데다가, 그 중에서도 정통 UNIX 시스템에 해당한다는 것이다.
이러한 "~ is Not UNIX" 라는 방식의 네이밍은 꽤 유행했는데(Xinu, GNU 등), 당시 '진짜' UNIX를 만들기 위해서는 AT&T에 라이선스 비용을 아주 많이 내야 했다는 시대적 배경이 있었을 것이다. 지금도 UNIX 인증을 받으려면 돈을 많이 내야 하지만, 저 시절 AT&T의 법무팀은 지금의 오라클보다 악명 높은 매우 무서운 존재였기 때문이다.

[1] #

분류