GNU Mach

GNU Mach는 GNU 프로젝트가 GNU Hurd의 기반으로 유지보수하는 자유 소프트웨어 마이크로커널이다. Mach 3.0 호환 인터페이스를 기반으로 태스크와 스레드, 메모리 관리, 포트 및 프로세스 간 통신 기능을 제공하고, 파일 시스템과 UNIX 서비스의 상당 부분은 Hurd 서버...

분류GNU 운영체제 마이크로커널
개발GNU 프로젝트와 Hurd 개발자
계보Mach 3.0 → Mach4 → GNU Mach
커널 구조마이크로커널
핵심 기능태스크·스레드, 포트 IPC, 가상 메모리
상위 운영체제GNU Hurd
플랫폼x86 및 64비트 이식 개발
배포 예Debian GNU/Hurd, Guix GNU/Hurd
라이선스GNU GPL 계열
개발 상태개발 중
공식 웹사이트GNU Mach

GNU Mach는 GNU 프로젝트가 GNU Hurd의 기반으로 유지보수하는 자유 소프트웨어 마이크로커널이다. Mach 3.0 호환 인터페이스를 기반으로 태스크와 스레드, 메모리 관리, 포트 및 프로세스 간 통신 기능을 제공하고, 파일 시스템과 UNIX 서비스의 상당 부분은 Hurd 서버에서 구현한다. 기존 Mach 연구의 후속 구현인 동시에 Debian GNU/Hurd 등 실제 GNU 시스템의 핵심 구성 요소다.[1]

GNU Mach는 태스크와 스레드, 가상 메모리와 포트 기반 IPC를 관리하는 마이크로커널이다. 그 위에서 동작하는 GNU Hurd의 서버가 파일 시스템, 프로세스, 인증 및 네트워크와 관련된 상위 기능을 제공하고 GNU C 라이브러리가 UNIX·POSIX 인터페이스와 서버 통신을 연결한다. 이런 역할 구분 덕분에 GNU Mach는 운영체제 전체와 동일한 이름이 아니라 GNU/Hurd 시스템의 저수준 실행 기반을 나타낸다.[2]

GNU Mach의 소스는 CMU의 Mach 3.0과 유타 대학교 Mach4에서 이어지는 기술을 계승해 GNU 프로젝트에서 유지보수해 왔다. 드라이버와 플랫폼 계층의 재사용을 위해 OSKit을 도입하는 실험도 이루어졌지만, GNU Hurd와의 지속적인 통합을 위해 별도의 관리가 계속되었다. Debian GNU/Hurd, Arch Hurd와 Guix GNU/Hurd는 동일한 GNU Mach·Hurd 계보 위에 서로 다른 배포 체계와 사용자 공간을 결합한 사례다.[3]

GNU Mach는 완전한 UNIX 사용자 공간을 커널 내부에 제공하는 운영체제가 아니라, Hurd 서버가 사용할 커널 자원과 통신 인터페이스를 제공하는 구성 요소다. 파일 경로를 해석하거나 POSIX 프로세스 의미론을 구현하는 작업은 Hurd 서버와 GNU C 라이브러리가 분담한다. 이러한 방식은 커널 기능을 확장하는 것과 운영체제 서비스를 새로 구현하는 일을 분리할 수 있게 한다.[4]

GNU Mach는 Mach4의 머신 의존 코드와 드라이버 이식 기술을 계승해 왔으며 OSKit 기반 드라이버 개선을 시도한 시기도 있었다. x86 계열의 장치 지원과 64비트 포트 작업 등으로 시스템 활용 범위를 넓히는 개발이 진행되었지만, 모든 플랫폼이 동일한 완성도나 패키지 지원을 갖는 것은 아니다. 실행 가능한 운영체제로 배포하려면 GNU Mach 위에 Hurd 서버, 표준 라이브러리, 설치 프로그램과 패키지 저장소가 결합되어야 한다.[5]

역사

CMU Mach의 계승

Mach4 기반 개발

OSKit-Mach 시기

현대 GNU Mach

설계 목표

마이크로커널의 독립성

자유 소프트웨어

커널 구조

태스크와 스레드

메시지와 포트

가상 메모리

장치 인터페이스

스케줄링

GNU Hurd와의 통합

부트스트랩

서버 실행

C 라이브러리

아키텍처 지원

x86

x86-64와 포트 연구

도구 체인과 빌드

라이선스

개발 현황

관련 문서

  1. 관련 자료 ↩
  2. GNU Mach 프로젝트 ↩
  3. GNU Mach 문서 ↩
  4. GNU Mach Overview ↩
  5. GNU/Hurd 시스템 포트 ↩