Mach-US
Mach-US(Mach Multiserver)는 카네기 멀런 대학교 Mach 프로젝트에서 개발한 마이크로커널 기반의 다중 서버 운영체제 연구 시스템이다. 파일 시스템, 네트워크, 프로세스 관리와 터미널 서비스 등을 여러 사용자 공간 서버로 나누고 응용 프로그램의 에뮬레이션 라이브러리를...
| 정식 명칭 | Mach Multiserver |
|---|---|
| 분류 | 다중 서버 UNIX 계열 운영체제 연구 |
| 개발 | 카네기 멀런 대학교·OSF 관련 연구진 |
| 기반 커널 | Mach 3.0 |
| 시기 | 1990년대 초 |
| 핵심 구조 | 복수 사용자 공간 운영체제 서버 |
| 서버 | 파일, 네트워크, 프로세스, 터미널 등 |
| IPC | Mach 메시지·포트 |
| UNIX 인터페이스 | 에뮬레이션 라이브러리 |
| 상태 | 역사적 연구 종료 |
| 원본 문서 | CMU Mach-US |
Mach-US(Mach Multiserver)는 카네기 멀런 대학교 Mach 프로젝트에서 개발한 마이크로커널 기반의 다중 서버 운영체제 연구 시스템이다. 파일 시스템, 네트워크, 프로세스 관리와 터미널 서비스 등을 여러 사용자 공간 서버로 나누고 응용 프로그램의 에뮬레이션 라이브러리를 통해 UNIX 호환 API를 제공했다. Mach 기반의 단일 UNIX 서버와 달리 시스템 서비스를 독립 서버로 분리한 설계를 연구하는 데 중점을 두었다.[1]
Mach-US는 Mach 3.0 위에 여러 독립적인 서버를 두고 응용 프로그램의 시스템 요청을 각 서버에 전달하는 다중 서버 운영체제를 연구했다. 파일 시스템, 네트워크, 프로세스, 터미널 및 인증 서비스가 분리되어 제공되었으며, 각 프로세스에 적재되는 에뮬레이션 라이브러리가 UNIX API의 의미를 서버 호출로 재구성했다. 서버를 하나로 모은 BSD UNIX 단일 서버와 달리 교체 가능한 시스템 하위 구성 요소를 연구하기 위한 구조였다.[2]
프로젝트는 CMU와 OSF Research Institute의 개발자가 참여하여 운영체제의 구성 가능성, 서버 간 객체 인터페이스 및 원격 메서드 호출의 성격을 검토했다. 사용자 프로그램에는 Mach 2.5·4.3BSD 계열 API를 제공하는 방식을 사용해 기존 UNIX 소프트웨어와의 연속성을 확보하려 했다. GNU Hurd 역시 Mach에서 사용자 공간 다중 서버를 사용하는 계보에 속하지만 Hurd의 트랜슬레이터 및 시스템 인터페이스와 Mach-US의 구현은 서로 별개다.[3]
Mach-US의 각 사용자 공간 서버는 자신이 담당하는 운영체제 자원에 대한 인터페이스를 제공하고 다른 서버와 IPC로 협력한다. 사용자 프로그램은 에뮬레이션 라이브러리를 통해 UNIX 시스템 호출과 비슷한 함수를 사용하며, 이 호출은 필요에 따라 해당 서버로 전달된다. 단순히 파일 시스템 전체를 한 서버에 놓는 구성과 달리 네트워크·인증·프로세스 관련 기능을 더 세분화할 수 있었다.[4]
이 구조의 핵심 연구 과제는 서버를 나누었을 때 발생하는 통신 비용과 보호 경계, 운영체제 객체의 일관성 유지였다. Mach-US는 GNU Hurd와 기술적인 문제의식과 Mach 기반을 공유하지만, 구현한 서버 인터페이스와 개발 조직은 별개였다. Mach 3.0 이후의 운영체제 계보에서 사용자 공간 다중 서버가 어떤 모습으로 실현될 수 있었는지를 보여주는 중요한 사례다.