Mach 3.0

Mach 3.0은 카네기 멜런 대학교에서 기존 Mach 계열을 개편하여 개발한 마이크로커널이다. UNIX 파일 시스템과 프로세스 의미론 등 상당수 서비스를 커널 외부의 운영체제 서버로 이동시키고, 커널 자체는 태스크·스레드, IPC, 가상 메모리 및 저수준 하드웨어 추상화에 집중하도록...

분류마이크로커널
개발기관카네기 멀런 대학교
개발 전환1989년경
계보Mach 2.5 → Mach 3.0
커널 기능태스크·스레드, IPC, 가상 메모리
운영체제 서비스사용자 공간 UNIX 서버
통신 모델포트와 메시지
주요 후속Mach4, GNU Mach, Mach-US, Lites
연구 분야모듈형 운영체제, 분산 시스템
상태역사적 커널
원본 소스CMU Mach 3.0 Sources

Mach 3.0은 카네기 멜런 대학교에서 기존 Mach 계열을 개편하여 개발한 마이크로커널이다. UNIX 파일 시스템과 프로세스 의미론 등 상당수 서비스를 커널 외부의 운영체제 서버로 이동시키고, 커널 자체는 태스크·스레드, IPC, 가상 메모리 및 저수준 하드웨어 추상화에 집중하도록 설계했다. GNU Mach 등 후속 마이크로커널의 중요한 기반이 되었다.[1]

Mach 3.0의 커널은 태스크, 스레드, 메시지 전달, 가상 메모리와 저수준 장치 기능을 제공하고, 일반 UNIX 응용 프로그램이 기대하는 파일 시스템과 프로세스 서비스는 별도 서버가 구현하도록 설계되었다. 커널은 포트 권한과 메시지 큐를 이용하여 서버와 응용 프로그램 사이의 통신을 매개한다. 같은 Mach 3.0을 사용하더라도 UNIX 서비스를 하나의 서버로 모을지 여러 독립 서버로 분할할지에 따라 상위 운영체제의 구조가 달라질 수 있다.[2]

이러한 분리는 운영체제 기능의 모듈화와 고장 격리, 사용자 공간에서의 서버 개발을 연구할 수 있게 했지만 IPC와 문맥 전환의 효율성도 중요한 설계 과제로 만들었다. GNU Mach와 GNU Hurd는 이 기술을 다중 서버 운영체제에 활용했으며 Mach-US, Lites 등의 운영체제 연구에서도 서로 다른 UNIX 서버 구성을 시험했다. 현대 XNU 역시 Mach에서 유래한 기능을 사용하지만 BSD와 장치 관리 하위 시스템을 한 커널 안에 결합해 순수 Mach 3.0 구성과는 구별된다.

Mach 3.0의 주요 변화는 파일·소켓·UNIX 프로세스 같은 서비스를 반드시 커널 안에 둘 필요가 없도록 한 것이었다. 커널은 CPU·메모리·IPC 같은 저수준 자원을 관리하고 사용자 공간의 별도 서버가 운영체제 인터페이스를 제공하도록 구성했다. 1990년의 《Unix as an Application Program》은 이런 구조에서 UNIX를 하나의 멀티스레드 서버로 실행한 실제 구현과 성능 평가를 제시한다.[3]

같은 Mach 마이크로커널을 사용하더라도 상위 운영체제 서버는 하나의 BSD UNIX 서버, 여러 특화 서버 또는 연구용 프로토타입으로 구성할 수 있다. GNU Hurd와 Mach-US는 다중 서버 운영체제를 연구한 사례이고, Lites는 BSD 서비스를 하나의 UNIX 서버로 제공하는 계열이다. 이 차이는 커널 API와 완전한 운영체제의 사용자 공간 설계를 별도로 보아야 한다는 점을 보여준다.

역사

Mach 2.5에서의 전환

Mach 3.0의 공개

후속 이식과 연구

마이크로커널 아키텍처

최소 커널 기능

태스크와 스레드

메시지 기반 IPC

포트와 권한

외부 메모리 관리

UNIX 서버

단일 서버 모델

다중 서버 모델

장치 드라이버와 부팅

성능과 시스템 호출

지원 아키텍처

GNU Mach와 Mach4

관련 문서

  1. 관련 자료 ↩
  2. GNU Mach Reference Manual ↩
  3. CMU: Unix as an Application Program ↩