WIPIVERSE

Mach (커널)

Mach은 1985년 카네기 멜런 대학교(Carnegie Mellon University)의 프로젝트로 시작된 마이크로커널(Microkernel) 구조의 운영체제 커널이다. 원래는 연구 목적으로 설계되었으며, 컴퓨터 시스템의 핵심 기능을 최소화하고 나머지 서비스는 사용자 공간 프로세스로 구현하는 방식을 채택하였다. 주요 설계 목표는 이식성, 확장성, 그리고 효율적인 인터프로세스 커뮤니케이션(IPC)이다.

주요 특징

  1. 마이크로커널 구조

    • 커널 내부에는 메모리 관리, 스케줄링, IPC, 멀티스레딩 등을 담당하는 최소한의 기능만 포함한다.
    • 파일 시스템, 네트워크 스택 등 고수준 서비스는 별도의 서버 프로세스로 구현된다.
  2. 인터프로세스 커뮤니케이션(IPC)

    • 포트(port)와 메시지(message) 기반의 IPC 메커니즘을 제공한다.
    • 높은 수준의 모듈화와 보안을 가능하게 한다.
  3. 스레드와 태스크

    • Mach은 스레드(thread)와 태스크(task)를 구분한다.
    • 태스크는 주소 공간과 권한을 관리하고, 스레드는 실제 실행 흐름을 담당한다.
  4. 가상 메모리

    • 페이지 기반 가상 메모리 시스템을 제공한다.
    • 외부 메모리 매니저와 협업하여 메모리 보호와 공유를 지원한다.

역사 및 활용

  • 1991년 NeXT Computer가 NeXTSTEP 운영체제에 Mach 2.5를 채택하면서 상업적 활용이 시작되었다.
  • NeXTSTEP은 이후 애플이 1996년 인수한 후 macOS(당시 Mac OS X)의 핵심 커널인 XNU(“X is Not Unix”)에 Mach 3.0 기반의 마이크로커널 부분과 BSD 커널 부분을 결합한 형태로 사용되고 있다.
  • iOS, watchOS, tvOS 등 애플의 주요 운영체제에서도 동일한 XNU 커널이 사용된다.
  • GNU 프로젝트는 Mach 인터페이스를 차용한 GNU Hurd 운영체제의 기반으로 Mach 3.0을 활용하였다. 다만 GNU Hurd는 아직 널리 배포되지 않았다.
  • 1990년대와 2000년대 초반에는 IBM, Intel 등 여러 기업이 Mach 기반 시스템을 연구·시제품으로 개발했지만, 상용 제품으로의 확장은 제한적이었다.

현재 상태

  • 현대 macOS와 iOS에서 사용되는 XNU 커널은 Mach 마이크로커널의 핵심 기능을 유지하면서, BSD 레이어와 현대적인 드라이버 프레임워크를 통합한 하이브리드 커널 구조를 갖는다.
  • 오픈소스 프로젝트인 Mach는 여전히 Carnegie Mellon University와 Apple Inc.이 각각 관리하고 있으며, 소스 코드는 공개 라이선스(Apple Public Source License 등) 하에 접근 가능하다.

참고 문헌

  • Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Operating System Concepts, 9th ed., Wiley, 2012.
  • John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach, 6th ed., Morgan Kaufmann, 2017.
  • Apple Open Source, “XNU – the kernel of macOS and iOS”, https://opensource.apple.com/source/xnu/

※ 위 내용은 현재까지 확인된 공신력 있는 자료에 기반한 객관적인 설명이다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기