XNU
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
XNU는 NeXTSTEP 운영 체제를 위해 개발된 하이브리드 커널로, Mach 커널, 4.3BSD 컴포넌트, 드라이버 키트를 조합하여 만들어졌다. 1996년 애플이 NeXT를 인수하면서 Mach 컴포넌트가 3.0으로, BSD 컴포넌트는 FreeBSD 코드로 업그레이드되었으며, 드라이버 키트는 I/O Kit로 대체되었다. XNU는 macOS, Darwin, iOS 등 다양한 운영 체제에서 사용되며, ARM64 및 x86-64 프로세서를 지원한다. XNU는 Mach의 모듈성과 메모리 보호, BSD의 유닉스 프로세스 모델, I/O Kit를 통한 장치 드라이버 프레임워크를 제공하며, 공유 자원 보호를 위해 다양한 동기화 기법을 사용한다.
더 읽어볼만한 페이지
- 모놀리식 커널 - 리눅스 커널
리눅스 커널은 1991년 리누스 토르발스가 개발을 시작한 UNIX에서 영감을 받은 운영 체제 커널로, GPLv2 라이선스를 채택하여 자유로운 사용과 배포를 허용하며 다양한 하드웨어 아키텍처를 지원하고 모듈형 구조를 통해 장치 드라이버 추가가 가능하다. - MacOS - 메일 (애플)
메일은 애플에서 개발한 이메일 클라이언트로, macOS에 통합되어 다양한 기능과 인터페이스 변화를 거쳤으며, iCloud 동기화, 이메일 추적 차단, 이메일 전송 취소, 예약 발송 등을 지원한다. - MacOS - 개러지밴드
애플이 개발한 개러지밴드는 로직 프로 기술을 기반으로 한 음악 제작 소프트웨어로, 가상 악기, MIDI 편집 기능, 팟캐스트 제작, 악기 레슨 등 다양한 기능을 제공하며 macOS와 iOS에서 아마추어부터 전문가까지 폭넓게 사용된다.
XNU - [IT 관련 정보]에 관한 문서 | |
---|---|
일반 정보 | |
![]() | |
개발사 | 애플 |
최초 출시일 | 1996년 12월 |
최신 버전 | 알 수 없음 |
최신 평가판 | 알 수 없음 |
소스 모델 | 오픈 소스 소프트웨어 |
지원 플랫폼 | 현재: x86-64, 64비트 ARM, 32비트 ARM (32비트 ARM 지원은 비공개 소스) 과거: PowerPC (32비트 및 64비트), IA-32 |
커널 종류 | 하이브리드 커널 |
라이선스 | 애플 공공 소스 라이선스 2.0 |
웹사이트 | XNU GitHub 소스 코드 |
이전 버전 | Mach, Nukernel |
프로그래밍 언어 | C, C++ |
2. 역사
XNU는 카네기 멜론 대학교에서 개발된 Mach 커널과 BSD 운영체제의 요소를 결합하여 만들어진 OS 커널이다. NeXT에서 처음 개발되었으며, 애플이 NeXT를 인수하면서 해당 기술을 발전시켰다.
2. 1. NeXTSTEP 시절
NeXT가 NeXTSTEP OS를 위해 개발한 XNU는 카네기 멜론 대학교에서 개발한 '''Mach 커널 2.5'''에 '''4.3BSD 컴포넌트'''를 추가하고, '''드라이버 키트'''라고 불리는 드라이버 기술을 위한 객체 지향 API를 조합한 하이브리드 커널이었다.[1]2. 2. 애플 인수 후
애플이 NeXT를 인수하면서, '''Mach 컴포넌트'''는 3.0으로, '''BSD 컴포넌트'''는 FreeBSD 프로젝트의 코드로 업그레이드되었다. 또한, Driver Kit는 드라이버 작성을 위한 C++(C++) API인 '''I/O Kit'''로 대체되었다.3. 커널 디자인
XNU는 모놀리식 커널과 마이크로커널의 특징을 모두 갖춘 하이브리드 커널이다. 마이크로 커널의 메시지 전달 기능을 통해 모듈성을 높이고, 운영 체제의 더 많은 부분이 메모리 보호 혜택을 받을 수 있도록 한다. 또한, 중요한 작업에는 모놀리식 커널의 빠른 속도를 유지한다.
XNU는 ARM64 및 x86-64 프로세서에서 실행되며, 단일 프로세서 모델과 대칭형 멀티프로세싱(SMP) 모델을 모두 지원한다. PowerPC 지원은 Mac OS X Snow Leopard 버전을 기점으로 제거되었으며, IA-32 지원은 Mac OS X Lion 버전을 기점으로 제거되었다. 32비트 ARM 지원은 iOS 11 버전을 기점으로 제거되었다.[17]
3. 1. Mach
XNU 커널의 기반이 되는 Mach는 마이크로커널로 설계되어 운영 체제의 핵심 기능을 분리된 프로세스에서 실행할 수 있어 높은 유연성을 제공한다. Mach 코어 위에서 여러 운영 체제를 동시에 실행할 수도 있다. 그러나 커널 모드와 사용자 모드 간의 전환, 그리고 마이크로 커널과 서비스 데몬의 주소 공간 사이에서 메시지를 매핑하고 복사하는 과정에서 발생하는 오버헤드로 인해 성능 저하가 발생할 수 있다.macOS 개발자들은 이러한 성능 문제를 해결하기 위해 BSD의 기능을 Mach 커널에 통합하는 방식을 택했다. 그 결과, XNU는 Mach 마이크로 커널과 전통적인 BSD 커널의 장단점을 모두 가지는 하이브리드 커널이 되었다.
Mach는 다음과 같은 주요 기능을 제공한다.
3. 2. BSD
POSIX API (BSD 시스템 호출), Mach 태스크 기반의 유닉스 프로세스 모델, 기본적인 보안 정책, 사용자 및 그룹 ID, 권한, 네트워크 프로토콜 스택(프로토콜), 가상 파일 시스템 코드 (저널링 계층 포함), 계층적 파일 시스템 (HFS, HFS+) 및 애플 파일 시스템(APFS)과 같은 여러 로컬 파일 시스템, 네트워크 파일 시스템(NFS) 클라이언트 및 서버, 암호화 프레임워크, 유닉스 System V 프로세스 간 통신(IPC), 감사 서브시스템, 강제 접근 제어, 그리고 일부 잠금 기본 요소를 제공한다.[7] XNU에 존재하는 BSD 코드는 가장 최근에 FreeBSD 커널과 동기화되었다. 비록 상당 부분이 상당히 수정되었지만, 애플과 FreeBSD 프로젝트 사이에서 코드 공유가 여전히 발생한다.[8]3. 3. K32/K64
맥 OS X 10.6 스노 레퍼드(다윈 버전 10) 이후 버전의 XNU는 32비트 K32와 64비트 K64로 나뉜다.[24] K32는 사용자 공간에서 64비트 애플리케이션을 구동할 수 있지만, K64는 XNU를 64비트 커널 공간에서 구동할 수 있게 해준다. K64는 K32에 비해 다음과 같은 장점을 가진다.[25]- 32GB 이상의 램(RAM)을 관리할 수 있다.
- 캐시 버퍼 크기를 32비트 커널이 허용하는 것보다 크게 만들 수 있어 입출력(I/O) 성능을 향상시킬 수 있다.
- 고성능 네트워크 장치나 여러 GPU를 사용할 때 성능이 향상된다. 이는 주변 장치들이 매우 큰 직접 메모리 접근(DMA) 버퍼를 가지더라도 커널이 모두 64비트 공간에 할당할 수 있기 때문이다.
64비트 커널을 지원하는 컴퓨터에서는 '6'과 '4' 키를 누른 상태에서 부팅하면 K64로 부팅된다.[13] K64는 32비트 응용 프로그램은 실행할 수 있지만, 32비트 커널 확장(KEXT)은 실행할 수 없다. 따라서 32비트 커널 확장을 사용하려면 K64로 포팅해야 한다.
OS X Mountain Lion(10.8) 이상 버전의 XNU는 64비트 커널만 제공한다.
3. 4. I/O Kit
I/O Kit는 임베디드 C++ 기반의 장치 드라이버 개발 프레임워크이다.[14] 객체 지향 프로그래밍 설계를 통해 모든 종류의 드라이버에 공통적인 기능을 프레임워크 내에서 제공하므로, 장치 드라이버 개발에 필요한 시간과 코드를 단축할 수 있다. I/O Kit는 멀티스레딩 및 대칭형 멀티프로세싱(SMP)을 지원하며, 핫 플러그 가능한 장치와 자동적이고 동적인 장치 구성을 지원한다.사용자 모드에서 드라이버를 실행할 수 있도록 하여 시스템 안정성을 향상시킨다. 사용자 모드 드라이버가 충돌해도 커널은 충돌하지 않지만, 커널 모드 드라이버가 충돌하면 커널도 충돌한다. 커널 모드 드라이버의 예로는 디스크 어댑터 및 네트워크 어댑터 드라이버, 그래픽 드라이버, USB 및 FireWire 호스트 컨트롤러 인터페이스 드라이버, VirtualBox, Parallels Desktop for Mac, VMware Fusion과 같은 가상 머신 소프트웨어 드라이버가 있다. macOS Catalina 이후 버전에서는 DriverKit을 사용하여 이러한 유형의 드라이버 중 일부를 사용자 모드에서 실행할 수 있게 되었다.[15]
4. 공유 자원 보호
다중 프로세서 시스템을 안전하게 운영하기 위해 파일, 데이터 구조 등 공유 자원에 대한 접근은 같은 시간 내에 자원이 변경되지 않도록 직렬화해야 한다. 동시적인 접근을 방지하기 위한 기법으로 원자적 연산, 스핀락, 임계 구역, 상호 배제, 시리얼라이징 토큰을 사용할 수 있다.[1]
참조
[1]
웹사이트
Porting UNIX/Linux Applications to Mac OS X: Glossary
https://developer.ap[...]
Apple Computer
2017-06-07
[2]
웹사이트
XNU GitHub source code README
https://github.com/a[...]
2021-12-16
[3]
AV media
WWDC 2000 Session 106 – Mac OS X: Kernel
https://www.youtube.[...]
[4]
웹사이트
The libkern C++ Runtime
https://developer.ap[...]
[5]
웹사이트
What is Mac OS X?
http://osxbook.com/b[...]
2015-03-04
[6]
conference
A Trusted, Scalable, Real-Time Operating System Environment
https://pdfs.semanti[...]
[7]
메일링리스트
Re: freebsd-advocacy Digest, Vol 248, Issue 1
http://lists.freebsd[...]
2008-08-02
[8]
웹사이트
FreeBSD Quarterly Status Report (Grand Central Dispatch – FreeBSD port)
http://www.freebsd.o[...]
2009-04
[9]
뉴스
Mac OS X 10.6 Snow Leopard: the Ars Technica review, page 5
https://arstechnica.[...]
[10]
웹사이트
Mac OS X 10.6 Snow Leopard: the Ars Technica review
https://arstechnica.[...]
2009-08-31
[11]
문서
Mac OS X Server v10.6: Macs that use the 64-bit kernel
http://support.apple[...]
[12]
웹사이트
What's New in Mac OS X: Mac OS X v10.6
https://developer.ap[...]
Apple, Inc.
[13]
문서
Mac OS X Server v10.6: Starting up with the 32-bit or 64-bit kernel
http://support.apple[...]
[14]
웹사이트
XNU: The Kernel
http://osxbook.com/b[...]
2011-09-09
[15]
웹사이트
DriverKit
https://developer.ap[...]
[16]
웹사이트
Porting UNIX/Linux Applications to Mac OS X: Glossary
http://developer.app[...]
Apple Computer
2009-03-27
[17]
웹사이트
iPhone processor found: 620MHz ARM CPU
http://www.engadget.[...]
2007-07-01
[18]
뉴스
Mac OS X 10.6 Snow Leopard: the Ars Technica review, page 5
http://arstechnica.c[...]
[19]
문서
What's New in Mac OS X: Mac OS X v10.6
http://developer.app[...]
[20]
문서
Mac OS X Server v10.6: Starting up with the 32-bit or 64-bit kernel
http://support.apple[...]
[21]
웹인용
Porting UNIX/Linux Applications to Mac OS X: Glossary
http://developer.app[...]
Apple Computer
2016-04-20
[22]
메일링리스트
Re: freebsd-advocacy Digest, Vol 248, Issue 1
http://lists.freebsd[...]
2008-08-02
[23]
웹인용
FreeBSD Quarterly Status Report (Grand Central Dispatch - FreeBSD port)
http://www.freebsd.o[...]
2009-04
[24]
뉴스
Mac OS X 10.6 Snow Leopard: the Ars Technica review, page 5
http://arstechnica.c[...]
[25]
문서
What's New in Mac OS X: Mac OS X v10.6
http://developer.app[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com